summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOscar Fuentes <ofv@wanadoo.es>2009-11-02 19:11:03 +0000
committerOscar Fuentes <ofv@wanadoo.es>2009-11-02 19:11:03 +0000
commitc710219d1c6a89ec5b0392146316f9bcea3ba278 (patch)
tree986082457202000b1bc0316619df49f8cdc7b6d5
parent69e584d12b5392c535b5648c39ad3bf5c28c5c7c (diff)
downloadbcm5719-llvm-c710219d1c6a89ec5b0392146316f9bcea3ba278.tar.gz
bcm5719-llvm-c710219d1c6a89ec5b0392146316f9bcea3ba278.zip
CMake: Report an error if there is an unknown .cpp file in a source
directory. This is useful in case someone who works with the config&make build system forgot to add a file to its CMakeLists.txt. Instead of obtaining undefined references at link time, cmake will complain at configure time on the first build after a svn update. llvm-svn: 85817
-rw-r--r--llvm/cmake/modules/LLVMProcessSources.cmake15
1 files changed, 15 insertions, 0 deletions
diff --git a/llvm/cmake/modules/LLVMProcessSources.cmake b/llvm/cmake/modules/LLVMProcessSources.cmake
index 12a8968c724..b753735cd55 100644
--- a/llvm/cmake/modules/LLVMProcessSources.cmake
+++ b/llvm/cmake/modules/LLVMProcessSources.cmake
@@ -22,6 +22,7 @@ endmacro(add_header_files)
function(llvm_process_sources OUT_VAR)
set( sources ${ARGN} )
+ llvm_check_source_file_list( ${sources} )
# Create file dependencies on the tablegenned files, if any. Seems
# that this is not strictly needed, as dependencies of the .cpp
# sources on the tablegenned .inc files are detected and handled,
@@ -37,3 +38,17 @@ function(llvm_process_sources OUT_VAR)
endif()
set( ${OUT_VAR} ${sources} PARENT_SCOPE )
endfunction(llvm_process_sources)
+
+
+function(llvm_check_source_file_list)
+ set(listed ${ARGN})
+ file(GLOB globbed *.cpp)
+ foreach(g ${globbed})
+ get_filename_component(fn ${g} NAME)
+ list(FIND listed ${fn} idx)
+ if( idx LESS 0 )
+ message(SEND_ERROR "Found unknown source file ${g}
+Please update ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt\n")
+ endif()
+ endforeach()
+endfunction(llvm_check_source_file_list)
OpenPOWER on IntegriCloud