[PATCH] D31363: [libc++] Remove cmake glob for source files

Shoaib Meenai via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Sep 14 12:24:59 PDT 2017


smeenai updated this revision to Diff 115259.
smeenai added a comment.
Herald added a subscriber: fedor.sergeev.

Address comments


https://reviews.llvm.org/D31363

Files:
  benchmarks/CMakeLists.txt
  lib/CMakeLists.txt


Index: lib/CMakeLists.txt
===================================================================
--- lib/CMakeLists.txt
+++ lib/CMakeLists.txt
@@ -1,13 +1,48 @@
 set(LIBCXX_LIB_CMAKEFILES_DIR "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}"  PARENT_SCOPE)
 
-# Get sources
-# FIXME: Don't use glob here
-file(GLOB LIBCXX_SOURCES ../src/*.cpp)
+include(LLVMProcessSources)
+set(LIBCXX_SOURCES
+      ../src/algorithm.cpp
+      ../src/any.cpp
+      ../src/bind.cpp
+      ../src/chrono.cpp
+      ../src/condition_variable.cpp
+      ../src/debug.cpp
+      ../src/exception.cpp
+      ../src/functional.cpp
+      ../src/future.cpp
+      ../src/hash.cpp
+      ../src/ios.cpp
+      ../src/iostream.cpp
+      ../src/locale.cpp
+      ../src/memory.cpp
+      ../src/mutex.cpp
+      ../src/new.cpp
+      ../src/optional.cpp
+      ../src/random.cpp
+      ../src/regex.cpp
+      ../src/shared_mutex.cpp
+      ../src/stdexcept.cpp
+      ../src/string.cpp
+      ../src/strstream.cpp
+      ../src/system_error.cpp
+      ../src/thread.cpp
+      ../src/typeinfo.cpp
+      ../src/utility.cpp
+      ../src/valarray.cpp
+      ../src/variant.cpp
+      ../src/vector.cpp)
+llvm_check_source_file_list(${LIBCXX_SOURCES} SOURCE_DIR ../src)
 if(WIN32)
-  file(GLOB LIBCXX_WIN32_SOURCES ../src/support/win32/*.cpp)
+  set(LIBCXX_WIN32_SOURCES
+        ../src/support/win32/locale_win32.cpp
+        ../src/support/win32/support.cpp)
+  llvm_check_source_file_list(${LIBCXX_WIN32_SOURCES} SOURCE_DIR ../src/support/win32)
   list(APPEND LIBCXX_SOURCES ${LIBCXX_WIN32_SOURCES})
 elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "SunOS")
-  file(GLOB LIBCXX_SOLARIS_SOURCES ../src/support/solaris/*.cpp)
+  set(LIBCXX_SOLARIS_SOURCES
+        ../src/support/solaris/xlocale.cpp)
+  llvm_check_source_file_list(${LIBCXX_SOLARIS_SOURCES} SOURCE_DIR ../src/support/solaris)
   list(APPEND LIBCXX_SOURCES ${LIBCXX_SOLARIS_SOURCES})
 endif()
 
@@ -283,9 +318,15 @@
 add_custom_target(cxx DEPENDS ${LIBCXX_TARGETS})
 
 if (LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY)
-  file(GLOB LIBCXX_EXPERIMENTAL_SOURCES ../src/experimental/*.cpp)
+  set(LIBCXX_EXPERIMENTAL_SOURCES
+        ../src/experimental/memory_resource.cpp)
+  llvm_check_source_file_list(${LIBCXX_EXPERIMENTAL_SOURCES} SOURCE_DIR ../src/experimental)
   if (LIBCXX_ENABLE_FILESYSTEM)
-    file(GLOB LIBCXX_FILESYSTEM_SOURCES ../src/experimental/filesystem/*.cpp)
+    set(LIBCXX_FILESYSTEM_SOURCES
+          ../src/experimental/filesystem/directory_iterator.cpp
+          ../src/experimental/filesystem/operations.cpp
+          ../src/experimental/filesystem/path.cpp)
+    llvm_check_source_file_list(${LIBCXX_FILESYSTEM_SOURCES} SOURCE_DIR ../src/experimental/filesystem)
   endif()
   add_library(cxx_experimental STATIC ${LIBCXX_EXPERIMENTAL_SOURCES} ${LIBCXX_FILESYSTEM_SOURCES})
   if (LIBCXX_ENABLE_SHARED)
Index: benchmarks/CMakeLists.txt
===================================================================
--- benchmarks/CMakeLists.txt
+++ benchmarks/CMakeLists.txt
@@ -143,7 +143,16 @@
 #==============================================================================
 # Register Benchmark tests
 #==============================================================================
-file(GLOB BENCHMARK_TESTS "*.bench.cpp")
+include(LLVMProcessSources)
+set(BENCHMARK_TESTS
+      algorithms.bench.cpp
+      filesystem.bench.cpp
+      string.bench.cpp
+      stringstream.bench.cpp
+      unordered_set_operations.bench.cpp
+      util_smartptr.bench.cpp
+      vector_operations.bench.cpp)
+llvm_check_source_file_list(${BENCHMARK_TESTS})
 foreach(test_path ${BENCHMARK_TESTS})
   get_filename_component(test_file "${test_path}" NAME)
   string(REPLACE ".bench.cpp" "" test_name "${test_file}")


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D31363.115259.patch
Type: text/x-patch
Size: 3744 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170914/5eb1ad05/attachment.bin>


More information about the cfe-commits mailing list