From: Michael Gottesman Date: Sun, 10 Jul 2016 02:43:47 +0000 (+0000) Subject: [cmake] Create the LLVM_BUILD_UTILS option. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=76b8ab51811b53d9d857dcf46328cd3cfa27a623;p=llvm [cmake] Create the LLVM_BUILD_UTILS option. This option is the equivalent option to LLVM_BUILD_TOOLS but for executables created via add_llvm_utility. This is a useful tool for improving compile time in situations where LLVM is used as a library and no testing tools are needed. It follows the exact same implemention model as LLVM_BUILD_TOOLS. Since the option is by default set to on, no behavior is changed unless one sets it from the command line to be false. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275007 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/CMakeLists.txt b/CMakeLists.txt index ed3e1b8a07c..ac59748993a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -391,6 +391,8 @@ option(LLVM_BUILD_TOOLS "Build the LLVM tools. If OFF, just generate build targets." ON) option(LLVM_INCLUDE_UTILS "Generate build targets for the LLVM utils." ON) +option(LLVM_BUILD_UTILS + "Build LLVM utility binaries. If OFF, just generate build targets." ON) option(LLVM_BUILD_RUNTIME "Build the LLVM runtime libraries." ON) diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake index 9f161ff9572..26e43960014 100644 --- a/cmake/modules/AddLLVM.cmake +++ b/cmake/modules/AddLLVM.cmake @@ -800,11 +800,16 @@ macro(add_llvm_example name) set_target_properties(${name} PROPERTIES FOLDER "Examples") endmacro(add_llvm_example name) - +# This is a macro that is used to create targets for executables that are needed +# for development, but that are not intended to be installed by default. macro(add_llvm_utility name) + if ( NOT LLVM_BUILD_UTILS ) + set(EXCLUDE_FROM_ALL ON) + endif() + add_llvm_executable(${name} DISABLE_LLVM_LINK_LLVM_DYLIB ${ARGN}) set_target_properties(${name} PROPERTIES FOLDER "Utils") - if( LLVM_INSTALL_UTILS ) + if( LLVM_INSTALL_UTILS AND LLVM_BUILD_UTILS ) install (TARGETS ${name} RUNTIME DESTINATION bin COMPONENT ${name})