aboutsummaryrefslogtreecommitdiff
path: root/bolt/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'bolt/cmake')
-rw-r--r--bolt/cmake/modules/AddBOLT.cmake36
1 files changed, 36 insertions, 0 deletions
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()