diff options
author | Oscar Fuentes <ofv@wanadoo.es> | 2008-11-14 22:06:14 +0000 |
---|---|---|
committer | Oscar Fuentes <ofv@wanadoo.es> | 2008-11-14 22:06:14 +0000 |
commit | 1bbdd4645be3642f55d7bdcd21e13e23e59cd884 (patch) | |
tree | 9c89fea259bef114d5cd7fd1ee756e35c17f198d /cmake | |
parent | 7e6a1bc0fa35202ddfd2229821370d6061e3e1f9 (diff) |
CMake: Fixed dependencies of .cpp source files on .td and tablegenned
files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59325 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'cmake')
-rwxr-xr-x | cmake/modules/AddLLVM.cmake | 3 | ||||
-rwxr-xr-x | cmake/modules/AddPartiallyLinkedObject.cmake | 2 | ||||
-rw-r--r-- | cmake/modules/LLVMProcessSources.cmake | 13 | ||||
-rw-r--r-- | cmake/modules/TableGen.cmake | 3 |
4 files changed, 20 insertions, 1 deletions
diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake index 3ca2d12a96..d8fd08b473 100755 --- a/cmake/modules/AddLLVM.cmake +++ b/cmake/modules/AddLLVM.cmake @@ -1,6 +1,8 @@ +include(LLVMProcessSources) include(LLVMConfig) macro(add_llvm_library name) + llvm_process_sources( ${ARGN} ) add_library( ${name} ${ARGN} ) set( llvm_libs ${llvm_libs} ${name} PARENT_SCOPE) set( llvm_lib_targets ${llvm_lib_targets} ${name} PARENT_SCOPE ) @@ -14,6 +16,7 @@ endmacro(add_llvm_library name) macro(add_llvm_executable name) + llvm_process_sources( ${ARGN} ) add_executable(${name} ${ARGN}) if( LLVM_USED_LIBS ) foreach(lib ${LLVM_USED_LIBS}) diff --git a/cmake/modules/AddPartiallyLinkedObject.cmake b/cmake/modules/AddPartiallyLinkedObject.cmake index d607306dfe..001bcdc6a5 100755 --- a/cmake/modules/AddPartiallyLinkedObject.cmake +++ b/cmake/modules/AddPartiallyLinkedObject.cmake @@ -1,3 +1,4 @@ +include(LLVMProcessSources) macro(target_name_of_partially_linked_object lib var) if( MSVC ) @@ -15,6 +16,7 @@ macro(add_partially_linked_object lib) set(pll ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/${lib}.o) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/temp_lib) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/temp_lib) + llvm_process_sources( ${ARGN} ) add_library( ${lib} STATIC ${ARGN}) if( LLVM_COMMON_DEPENDS ) add_dependencies( ${lib} ${LLVM_COMMON_DEPENDS} ) diff --git a/cmake/modules/LLVMProcessSources.cmake b/cmake/modules/LLVMProcessSources.cmake new file mode 100644 index 0000000000..0dad3fb740 --- /dev/null +++ b/cmake/modules/LLVMProcessSources.cmake @@ -0,0 +1,13 @@ +include(AddFileDependencies) + +function(llvm_process_sources) + set( sources ${ARGN} ) + # 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, + # but just in case... + foreach( s ${sources} ) + set( f ${CMAKE_CURRENT_SOURCE_DIR}/${s} ) + add_file_dependencies( ${f} ${TABLEGEN_OUTPUT} ) + endforeach(s) +endfunction(llvm_process_sources) diff --git a/cmake/modules/TableGen.cmake b/cmake/modules/TableGen.cmake index 6d69e8ae91..aed65589c2 100644 --- a/cmake/modules/TableGen.cmake +++ b/cmake/modules/TableGen.cmake @@ -3,9 +3,10 @@ # Adds the name of the generated file to TABLEGEN_OUTPUT. macro(tablegen ofn) + file(GLOB all_tds "*.td") add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${ofn} COMMAND ${LLVM_TABLEGEN} ${ARGN} -I ${CMAKE_CURRENT_SOURCE_DIR} -I ${CMAKE_SOURCE_DIR}/lib/Target -I ${LLVM_MAIN_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${LLVM_TARGET_DEFINITIONS} -o ${ofn} - DEPENDS tblgen ${CMAKE_CURRENT_SOURCE_DIR}/${LLVM_TARGET_DEFINITIONS} + DEPENDS tblgen ${all_tds} COMMENT "Building ${ofn}..." ) set(TABLEGEN_OUTPUT ${TABLEGEN_OUTPUT} ${CMAKE_CURRENT_BINARY_DIR}/${ofn}) |