Revision: 70027
          http://sourceforge.net/p/brlcad/code/70027
Author:   starseeker
Date:     2017-07-29 21:03:13 +0000 (Sat, 29 Jul 2017)
Log Message:
-----------
This may get distcheck running again... needs more testing

Modified Paths:
--------------
    brlcad/trunk/misc/CMake/BRLCAD_Util.cmake
    brlcad/trunk/misc/CMake/source_archive_setup.cmake.in

Modified: brlcad/trunk/misc/CMake/BRLCAD_Util.cmake
===================================================================
--- brlcad/trunk/misc/CMake/BRLCAD_Util.cmake   2017-07-29 20:01:37 UTC (rev 
70026)
+++ brlcad/trunk/misc/CMake/BRLCAD_Util.cmake   2017-07-29 21:03:13 UTC (rev 
70027)
@@ -198,82 +198,70 @@
 
 endfunction(CHECK_SOURCE_DIR_FULLPATH ITEM_PATH)
 
-macro(CMAKEFILES)
-  if(NOT BRLCAD_IS_SUBBUILD)
+function(CMFILE ITEM)
 
-    # CMake flags to add_library/add_executable aren't going to be valid 
filenames - just
-    # yank them up front.
-    set(ITEMS ${ARGN})
-    list(REMOVE_ITEM ITEMS SHARED STATIC OBJECT WIN32 UNKNOWN IMPORTED MODULE 
INTERFACE EXCLUDE_FROM_ALL)
-    list(FILTER ITEMS EXCLUDE REGEX ".*TARGET_OBJECTS.*")
-    foreach(ITEM ${ITEMS})
-      # Handled target flags, proceeding with tests.
-      get_filename_component(ITEM_PATH "${ITEM}" PATH)
-      get_filename_component(ITEM_NAME "${ITEM}" NAME)
-      if(NOT "${ITEM_PATH}" STREQUAL "")
+  get_filename_component(ITEM_PATH "${ITEM}" PATH)
+  if(NOT "${ITEM_PATH}" STREQUAL "")
+    # The hard case - path specified, need some validation.
 
-       # If this becomes a problem with the third party build
-       # systems at some point in the future, we may have to
-       # exclude src/other paths from this check.
-       CHECK_SOURCE_DIR_FULLPATH("${ITEM_PATH}")
+    # If this becomes a problem with the third party build
+    # systems at some point in the future, we may have to
+    # exclude src/other paths from this check.
+    CHECK_SOURCE_DIR_FULLPATH("${ITEM_PATH}")
 
-       # Ignore files specified using full paths, since they
-       # should be generated files and are not part of the
-       # source code repository.
-       get_filename_component(ITEM_ABS_PATH "${ITEM_PATH}" ABSOLUTE)
+    # Ignore files specified using full paths, since they
+    # should be generated files and are not part of the
+    # source code repository.
+    get_filename_component(ITEM_ABS_PATH "${ITEM_PATH}" ABSOLUTE)
+    if("${ITEM_PATH}" STREQUAL "${ITEM_ABS_PATH}")
+      return()
+    endif("${ITEM_PATH}" STREQUAL "${ITEM_ABS_PATH}")
+  endif(NOT "${ITEM_PATH}" STREQUAL "")
 
-       if(NOT "${ITEM_PATH}" STREQUAL "${ITEM_ABS_PATH}")
+  # Handle fatal cases
+  if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${ITEM}")
+    message(FATAL_ERROR "Trying to ignore directory: 
${CMAKE_CURRENT_SOURCE_DIR}/${ITEM}")
+  endif(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${ITEM}")
+  if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${ITEM}")
+    message(FATAL_ERROR "Attempting to ignore non-existent file ${ITEM}, in 
directory \"${CMAKE_CURRENT_SOURCE_DIR}\"")
+  endif(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${ITEM}")
 
-         # Don't list things that aren't there
-         if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${ITEM}")
-           message(FATAL_ERROR "Attempting to ignore non-existent file 
${ITEM}, in directory \"${CMAKE_CURRENT_SOURCE_DIR}\"")
-         endif(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${ITEM}")
+  # We're good - log it
+  set_property(GLOBAL APPEND PROPERTY CMAKE_IGNORE_FILES 
"${CMAKE_CURRENT_SOURCE_DIR}/${ITEM}")
 
-         # Append files and directories to their respective lists.
-         if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${ITEM}")
-           set_property(GLOBAL APPEND PROPERTY CMAKE_IGNORE_DIRS 
"${ITEM_ABS_PATH}/${ITEM_NAME}")
-         else(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${ITEM}")
-           set_property(GLOBAL APPEND PROPERTY CMAKE_IGNORE_FILES 
"${ITEM_ABS_PATH}/${ITEM_NAME}")
-         endif(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${ITEM}")
-         set_property(GLOBAL APPEND PROPERTY CMAKE_IGNORE_FILES 
"${ITEM_ABS_PATH}")
+  # Track the directories as well
+  get_property(IGNORE_PATHS GLOBAL PROPERTY CMAKE_IGNORE_DIRS)
+  get_filename_component(NPATH "${CMAKE_CURRENT_SOURCE_DIR}/${ITEM}" PATH)
+  while(NOT "${NPATH}" STREQUAL "${CMAKE_SOURCE_DIR}")
+    list(APPEND IGNORE_PATHS "${NPATH}")
+    get_filename_component(NPATH "${NPATH}" PATH)
+  endwhile(NOT "${NPATH}" STREQUAL "${CMAKE_SOURCE_DIR}")
+  list(REMOVE_DUPLICATES IGNORE_PATHS)
+  set_property(GLOBAL PROPERTY CMAKE_IGNORE_DIRS "${IGNORE_PATHS}")
 
-         # Add the parent directories of the specified file or directory as 
well -
-         # the convention is that once at least one file or directory in a 
path is recorded
-         # by the build logic, the parent directories along that path have 
also been recorded.
-         while(NOT "${ITEM_PATH}" STREQUAL "")
-           get_filename_component(ITEM_NAME "${ITEM_PATH}" NAME)
-           get_filename_component(ITEM_PATH "${ITEM_PATH}" PATH)
-           if(NOT "${ITEM_PATH}" STREQUAL "")
-             get_filename_component(ITEM_ABS_PATH "${ITEM_PATH}" ABSOLUTE)
-             if(NOT "${ITEM_NAME}" STREQUAL "..")
-               set_property(GLOBAL APPEND PROPERTY CMAKE_IGNORE_FILES 
"${ITEM_ABS_PATH}")
-             endif(NOT "${ITEM_NAME}" STREQUAL "..")
-           endif(NOT "${ITEM_PATH}" STREQUAL "")
-         endwhile(NOT "${ITEM_PATH}" STREQUAL "")
+endfunction(CMFILE ITEM)
 
-       endif(NOT "${ITEM_PATH}" STREQUAL "${ITEM_ABS_PATH}")
+function(CMAKEFILES)
+  if(NOT BRLCAD_IS_SUBBUILD)
 
-      else(NOT "${ITEM_PATH}" STREQUAL "")
+    # CMake flags to add_library/add_executable aren't going to be valid 
filenames - just
+    # yank them up front.
+    set(ITEMS ${ARGN})
+    list(REMOVE_ITEM ITEMS SHARED STATIC OBJECT WIN32 UNKNOWN IMPORTED MODULE 
INTERFACE EXCLUDE_FROM_ALL)
+    if(ITEMS)
+      list(FILTER ITEMS EXCLUDE REGEX ".*TARGET_OBJECTS.*")
+    endif(ITEMS)
 
-       # The easy case - no path specified, so assume the current source 
directory.
-       if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${ITEM}")
-         message(FATAL_ERROR "Attempting to ignore non-existent file ${ITEM}, 
in directory \"${CMAKE_CURRENT_SOURCE_DIR}\"")
-       endif(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${ITEM}")
+    foreach(ITEM ${ITEMS})
+      CMFILE("${ITEM}")
+    endforeach(ITEM ${ITEMS})
 
-       if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${ITEM}")
-         set_property(GLOBAL APPEND PROPERTY CMAKE_IGNORE_DIRS 
"${CMAKE_CURRENT_SOURCE_DIR}/${ITEM_NAME}")
-       else(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${ITEM}")
-         set_property(GLOBAL APPEND PROPERTY CMAKE_IGNORE_FILES 
"${CMAKE_CURRENT_SOURCE_DIR}/${ITEM_NAME}")
-       endif(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${ITEM}")
-
-      endif(NOT "${ITEM_PATH}" STREQUAL "")
-    endforeach(ITEM ${ITEMS})
   endif(NOT BRLCAD_IS_SUBBUILD)
-endmacro(CMAKEFILES FILESLIST)
+endfunction(CMAKEFILES FILESLIST)
 
 # Routine to tell distcheck to ignore a series of items in a directory.  Items 
may themselves
 # be directories.  Primarily useful when working with src/other dist lists.
-macro(CMAKEFILES_IN_DIR filestoignore targetdir)
+function(CMAKEFILES_IN_DIR filestoignore targetdir)
   if(NOT BRLCAD_IS_SUBBUILD)
     set(CMAKE_IGNORE_LIST "")
     foreach(filepath ${${filestoignore}})
@@ -281,7 +269,7 @@
     endforeach(filepath ${filestoignore})
     CMAKEFILES(${CMAKE_IGNORE_LIST})
   endif(NOT BRLCAD_IS_SUBBUILD)
-endmacro(CMAKEFILES_IN_DIR)
+endfunction(CMAKEFILES_IN_DIR)
 
 #-----------------------------------------------------------------------------
 # It is sometimes convenient to be able to supply both a filename and a

Modified: brlcad/trunk/misc/CMake/source_archive_setup.cmake.in
===================================================================
--- brlcad/trunk/misc/CMake/source_archive_setup.cmake.in       2017-07-29 
20:01:37 UTC (rev 70026)
+++ brlcad/trunk/misc/CMake/source_archive_setup.cmake.in       2017-07-29 
21:03:13 UTC (rev 70027)
@@ -53,7 +53,6 @@
 if(NOT EXISTS 
"@CMAKE_BINARY_DIR@/CMakeTmp/create_builddir_source_archive.done")
   file(GLOB_RECURSE pre_existing_files 
"@CMAKE_BINARY_DIR@/source_archive_contents/*")
   file(STRINGS "@CMAKE_BINARY_DIR@/cmakefiles.cmake" source_tree_files)
-  file(STRINGS "@CMAKE_BINARY_DIR@/cmakedirs.cmake" ignored_dirctories)
   if(EXISTS "@CMAKE_BINARY_DIR@/cpack_ignore.cmake")
     file(STRINGS "@CMAKE_BINARY_DIR@/cpack_ignore.cmake" ignored_src_files)
   endif(EXISTS "@CMAKE_BINARY_DIR@/cpack_ignore.cmake")
@@ -68,39 +67,9 @@
     endif(IS_DIRECTORY ${ITEM})
   endforeach(ITEM ${source_tree_files})
 
-  # Collect all files from ignored directories
-  set(dir_filelist)
-  foreach(ITEM ${ignored_dirctories})
-    file(GLOB_RECURSE dir_files "${ITEM}/*")
-    foreach(DITEM ${dir_files})
-      if(NOT IS_DIRECTORY ${DITEM} AND NOT "${DITEM}" MATCHES ".svn/")
-       list(APPEND dir_filelist ${DITEM})
-      endif(NOT IS_DIRECTORY ${DITEM} AND NOT "${DITEM}" MATCHES ".svn/")
-    endforeach(DITEM ${dir_files})
-  endforeach(ITEM ${ignored_dirctories})
-
-
-  if(ignored_src_files)
-    message("Removing ignored files...")
-  endif(ignored_src_files)
-
-  # If we have a list of files to ignore from repo-verify, build it
-  # into full paths
-  set(ignored_srcs_full)
-  foreach(ITEM ${ignored_src_files})
-    list(APPEND ignored_srcs_full "@CMAKE_SOURCE_DIR@/${ITEM}")
-  endforeach(ITEM ${ignored_src_files})
-
-  # Remove the ignored files from the globbed file list, which is where
-  # they might have crept in
-  if(ignored_srcs_full)
-    list(REMOVE_ITEM dir_filelist ${ignored_srcs_full})
-  endif(ignored_srcs_full)
-
-  # Combine the source lists into the final list
-  set(final_list ${source_tree_files} ${dir_filelist})
+  # Sort the final list
+  set(final_list ${source_tree_files})
   list(SORT final_list)
-  list(REMOVE_DUPLICATES final_list)
 
   # Do the actual copy
   message("Copying files...")

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
BRL-CAD Source Commits mailing list
brlcad-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to