summaryrefslogtreecommitdiffstats
path: root/llvm/cmake
diff options
context:
space:
mode:
authorNAKAMURA Takumi <geek4civic@gmail.com>2015-08-27 16:10:47 +0000
committerNAKAMURA Takumi <geek4civic@gmail.com>2015-08-27 16:10:47 +0000
commite6bc093b42ffcf55a6b7e7d6eb5dd8c1cada64f1 (patch)
treef6ef29f1758ff63325cdaf1bb9bd772b4e0c1f0b /llvm/cmake
parent15d1fa1bccc0a7d90cdacc5844858d0899767597 (diff)
downloadbcm5719-llvm-e6bc093b42ffcf55a6b7e7d6eb5dd8c1cada64f1.tar.gz
bcm5719-llvm-e6bc093b42ffcf55a6b7e7d6eb5dd8c1cada64f1.zip
[CMake] OBJLIB-ize *-tblgen.
This improves dependency chain of; (LLVMSupport && LLVMTableGen) && (*.cpp in *-tblgen) && (linking *-tblgen) with; (LLVMSupport && LLVMTableGen && *.cpp) && (linking *-tblgen) llvm-svn: 246156
Diffstat (limited to 'llvm/cmake')
-rw-r--r--llvm/cmake/modules/AddLLVM.cmake13
-rw-r--r--llvm/cmake/modules/TableGen.cmake4
2 files changed, 17 insertions, 0 deletions
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
index 59c46f812c6..2e22077e812 100644
--- a/llvm/cmake/modules/AddLLVM.cmake
+++ b/llvm/cmake/modules/AddLLVM.cmake
@@ -565,6 +565,19 @@ macro(add_llvm_executable name)
llvm_process_sources( ALL_FILES ${ARGN} )
add_windows_version_resource_file(ALL_FILES ${ALL_FILES})
+ # Generate objlib
+ if(LLVM_ENABLE_OBJLIB)
+ # Generate an obj library for both targets.
+ set(obj_name "obj.${name}")
+ add_library(${obj_name} OBJECT EXCLUDE_FROM_ALL
+ ${ALL_FILES}
+ )
+ llvm_update_compile_flags(${obj_name})
+ set(ALL_FILES "$<TARGET_OBJECTS:${obj_name}>")
+
+ set_target_properties(${obj_name} PROPERTIES FOLDER "Object Libraries")
+ endif()
+
if( EXCLUDE_FROM_ALL )
add_executable(${name} EXCLUDE_FROM_ALL ${ALL_FILES})
else()
diff --git a/llvm/cmake/modules/TableGen.cmake b/llvm/cmake/modules/TableGen.cmake
index 85d720e91fd..fcb445afc58 100644
--- a/llvm/cmake/modules/TableGen.cmake
+++ b/llvm/cmake/modules/TableGen.cmake
@@ -73,6 +73,10 @@ endfunction()
macro(add_tablegen target project)
set(${target}_OLD_LLVM_LINK_COMPONENTS ${LLVM_LINK_COMPONENTS})
set(LLVM_LINK_COMPONENTS ${LLVM_LINK_COMPONENTS} TableGen)
+
+ # FIXME: It leaks to user, callee of add_tablegen.
+ set(LLVM_ENABLE_OBJLIB ON)
+
add_llvm_utility(${target} ${ARGN})
set(LLVM_LINK_COMPONENTS ${${target}_OLD_LLVM_LINK_COMPONENTS})
OpenPOWER on IntegriCloud