summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOscar Fuentes <ofv@wanadoo.es>2008-11-14 22:06:14 +0000
committerOscar Fuentes <ofv@wanadoo.es>2008-11-14 22:06:14 +0000
commit1bbdd4645be3642f55d7bdcd21e13e23e59cd884 (patch)
tree9c89fea259bef114d5cd7fd1ee756e35c17f198d
parent7e6a1bc0fa35202ddfd2229821370d6061e3e1f9 (diff)
downloadllvm-1bbdd4645be3642f55d7bdcd21e13e23e59cd884.tar.gz
llvm-1bbdd4645be3642f55d7bdcd21e13e23e59cd884.tar.bz2
llvm-1bbdd4645be3642f55d7bdcd21e13e23e59cd884.tar.xz
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
-rwxr-xr-xcmake/modules/AddLLVM.cmake3
-rwxr-xr-xcmake/modules/AddPartiallyLinkedObject.cmake2
-rw-r--r--cmake/modules/LLVMProcessSources.cmake13
-rw-r--r--cmake/modules/TableGen.cmake3
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})