From f3269a94e729b02e9d7c07257c45b098506cca22 Mon Sep 17 00:00:00 2001 From: Petr Hosek Date: Fri, 26 May 2023 22:11:24 +0000 Subject: [BOLT][CMake] Redo the build and install targets The existing BOLT install targets are broken on Windows becase they don't properly handle the output extension. We cannot use the existing LLVM macros since those make assumptions that don't hold for BOLT. This change instead implements custom macros following the approach used by Clang and LLD. Differential Revision: https://reviews.llvm.org/D151595 --- bolt/cmake/modules/AddBOLT.cmake | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 bolt/cmake/modules/AddBOLT.cmake (limited to 'bolt/cmake') diff --git a/bolt/cmake/modules/AddBOLT.cmake b/bolt/cmake/modules/AddBOLT.cmake new file mode 100644 index 0000000..1f69b904 --- /dev/null +++ b/bolt/cmake/modules/AddBOLT.cmake @@ -0,0 +1,36 @@ +include(GNUInstallDirs) +include(LLVMDistributionSupport) + +macro(add_bolt_executable name) + add_llvm_executable(${name} ${ARGN}) + set_target_properties(${name} PROPERTIES FOLDER "BOLT") +endmacro() + +macro(add_bolt_tool name) + if (NOT BOLT_BUILD_TOOLS) + set(EXCLUDE_FROM_ALL ON) + endif() + + add_bolt_executable(${name} ${ARGN}) + + if (BOLT_BUILD_TOOLS) + get_target_export_arg(${name} BOLT export_to_bolttargets) + install(TARGETS ${name} + ${export_to_bolttargets} + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + COMPONENT bolt) + + if(NOT LLVM_ENABLE_IDE) + add_llvm_install_targets(install-${name} + DEPENDS ${name} + COMPONENT bolt) + endif() + set_property(GLOBAL APPEND PROPERTY BOLT_EXPORTS ${name}) + endif() +endmacro() + +macro(add_bolt_tool_symlink name dest) + llvm_add_tool_symlink(BOLT ${name} ${dest} ALWAYS_GENERATE) + # Always generate install targets + llvm_install_symlink(BOLT ${name} ${dest} ALWAYS_GENERATE COMPONENT bolt) +endmacro() -- cgit v1.1