1include(LLVMDistributionSupport) 2 3macro(add_lld_library name) 4 cmake_parse_arguments(ARG 5 "SHARED" 6 "" 7 "" 8 ${ARGN}) 9 if(ARG_SHARED) 10 set(ARG_ENABLE_SHARED SHARED) 11 endif() 12 llvm_add_library(${name} ${ARG_ENABLE_SHARED} ${ARG_UNPARSED_ARGUMENTS}) 13 set_target_properties(${name} PROPERTIES FOLDER "lld libraries") 14 15 if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) 16 get_target_export_arg(${name} LLD export_to_lldtargets) 17 install(TARGETS ${name} 18 COMPONENT ${name} 19 ${export_to_lldtargets} 20 LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} 21 ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} 22 RUNTIME DESTINATION bin) 23 24 if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES) 25 add_llvm_install_targets(install-${name} 26 DEPENDS ${name} 27 COMPONENT ${name}) 28 endif() 29 set_property(GLOBAL APPEND PROPERTY LLD_EXPORTS ${name}) 30 endif() 31endmacro(add_lld_library) 32 33macro(add_lld_executable name) 34 add_llvm_executable(${name} ${ARGN}) 35 set_target_properties(${name} PROPERTIES FOLDER "lld executables") 36endmacro(add_lld_executable) 37 38macro(add_lld_tool name) 39 if (NOT LLD_BUILD_TOOLS) 40 set(EXCLUDE_FROM_ALL ON) 41 endif() 42 43 add_lld_executable(${name} ${ARGN}) 44 45 if (LLD_BUILD_TOOLS) 46 get_target_export_arg(${name} LLD export_to_lldtargets) 47 install(TARGETS ${name} 48 ${export_to_lldtargets} 49 RUNTIME DESTINATION bin 50 COMPONENT ${name}) 51 52 if(NOT CMAKE_CONFIGURATION_TYPES) 53 add_llvm_install_targets(install-${name} 54 DEPENDS ${name} 55 COMPONENT ${name}) 56 endif() 57 set_property(GLOBAL APPEND PROPERTY LLD_EXPORTS ${name}) 58 endif() 59endmacro() 60 61macro(add_lld_symlink name dest) 62 add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE) 63 # Always generate install targets 64 llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE) 65endmacro() 66