diff options
| author | NAKAMURA Takumi <geek4civic@gmail.com> | 2015-08-27 16:10:47 +0000 |
|---|---|---|
| committer | NAKAMURA Takumi <geek4civic@gmail.com> | 2015-08-27 16:10:47 +0000 |
| commit | e6bc093b42ffcf55a6b7e7d6eb5dd8c1cada64f1 (patch) | |
| tree | f6ef29f1758ff63325cdaf1bb9bd772b4e0c1f0b /llvm/cmake | |
| parent | 15d1fa1bccc0a7d90cdacc5844858d0899767597 (diff) | |
| download | bcm5719-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.cmake | 13 | ||||
| -rw-r--r-- | llvm/cmake/modules/TableGen.cmake | 4 |
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}) |

