at 23.11-beta 5.4 kB view raw
1diff --git a/CMakeLists.txt b/CMakeLists.txt 2index 4b953b212829..a10b69aa67dc 100644 3--- a/CMakeLists.txt 4+++ b/CMakeLists.txt 5@@ -8,6 +8,7 @@ cmake_minimum_required(VERSION 3.4.3) 6 # Check if compiler-rt is built as a standalone project. 7 if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR COMPILER_RT_STANDALONE_BUILD) 8 project(CompilerRT C CXX ASM) 9+ include(GNUInstallDirs) 10 set(COMPILER_RT_STANDALONE_BUILD TRUE) 11 endif() 12 13diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake 14index 139b6140011c..502354a37d67 100644 15--- a/cmake/Modules/AddCompilerRT.cmake 16+++ b/cmake/Modules/AddCompilerRT.cmake 17@@ -439,7 +439,7 @@ macro(add_compiler_rt_resource_file target_name file_name component) 18 add_custom_target(${target_name} DEPENDS ${dst_file}) 19 # Install in Clang resource directory. 20 install(FILES ${file_name} 21- DESTINATION ${COMPILER_RT_INSTALL_PATH} 22+ DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_PREFIX} 23 COMPONENT ${component}) 24 add_dependencies(${component} ${target_name}) 25 26@@ -456,7 +456,7 @@ macro(add_compiler_rt_script name) 27 add_custom_target(${name} DEPENDS ${dst}) 28 install(FILES ${dst} 29 PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE 30- DESTINATION ${COMPILER_RT_INSTALL_PATH}/bin) 31+ DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_BINDIR}) 32 endmacro(add_compiler_rt_script src name) 33 34 # Builds custom version of libc++ and installs it in <prefix>. 35diff --git a/cmake/Modules/CompilerRTDarwinUtils.cmake b/cmake/Modules/CompilerRTDarwinUtils.cmake 36index a25540bf46d1..77ea739fea74 100644 37--- a/cmake/Modules/CompilerRTDarwinUtils.cmake 38+++ b/cmake/Modules/CompilerRTDarwinUtils.cmake 39@@ -375,7 +375,7 @@ macro(darwin_add_embedded_builtin_libraries) 40 set(DARWIN_macho_embedded_LIBRARY_OUTPUT_DIR 41 ${COMPILER_RT_OUTPUT_DIR}/lib/macho_embedded) 42 set(DARWIN_macho_embedded_LIBRARY_INSTALL_DIR 43- ${COMPILER_RT_INSTALL_PATH}/lib/macho_embedded) 44+ ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/macho_embedded) 45 46 set(CFLAGS_armv7 "-target thumbv7-apple-darwin-eabi") 47 set(CFLAGS_i386 "-march=pentium") 48diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake 49index b208f0852408..cacf4e8fb69d 100644 50--- a/cmake/base-config-ix.cmake 51+++ b/cmake/base-config-ix.cmake 52@@ -46,11 +46,11 @@ if (LLVM_TREE_AVAILABLE) 53 else() 54 # Take output dir and install path from the user. 55 set(COMPILER_RT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH 56- "Path where built compiler-rt libraries should be stored.") 57+ "Path where built compiler-rt build artifacts should be stored.") 58 set(COMPILER_RT_EXEC_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/bin CACHE PATH 59 "Path where built compiler-rt executables should be stored.") 60- set(COMPILER_RT_INSTALL_PATH ${CMAKE_INSTALL_PREFIX} CACHE PATH 61- "Path where built compiler-rt libraries should be installed.") 62+ set(COMPILER_RT_INSTALL_PATH "" CACHE PATH 63+ "Prefix where built compiler-rt artifacts should be installed, comes before CMAKE_INSTALL_PREFIX.") 64 option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests." OFF) 65 option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered" OFF) 66 # Use a host compiler to compile/link tests. 67@@ -70,9 +70,9 @@ if(NOT DEFINED COMPILER_RT_OS_DIR) 68 string(TOLOWER ${CMAKE_SYSTEM_NAME} COMPILER_RT_OS_DIR) 69 endif() 70 set(COMPILER_RT_LIBRARY_OUTPUT_DIR 71- ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR}) 72+ ${COMPILER_RT_OUTPUT_DIR}/${CMAKE_INSTALL_FULL_LIBDIR}/${COMPILER_RT_OS_DIR}) 73 set(COMPILER_RT_LIBRARY_INSTALL_DIR 74- ${COMPILER_RT_INSTALL_PATH}/lib/${COMPILER_RT_OS_DIR}) 75+ ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/${COMPILER_RT_OS_DIR}) 76 77 if(APPLE) 78 # On Darwin if /usr/include doesn't exist, the user probably has Xcode but not 79diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt 80index f7efb102ab63..ab8a94d9ff40 100644 81--- a/include/CMakeLists.txt 82+++ b/include/CMakeLists.txt 83@@ -47,12 +47,12 @@ set_target_properties(compiler-rt-headers PROPERTIES FOLDER "Compiler-RT Misc") 84 install(FILES ${SANITIZER_HEADERS} 85 COMPONENT compiler-rt-headers 86 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ 87- DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/sanitizer) 88+ DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/sanitizer) 89 # Install xray headers. 90 install(FILES ${XRAY_HEADERS} 91 COMPONENT compiler-rt-headers 92 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ 93- DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/xray) 94+ DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/xray) 95 96 if (NOT CMAKE_CONFIGURATION_TYPES) # don't add this for IDEs. 97 add_custom_target(install-compiler-rt-headers 98diff --git a/lib/dfsan/CMakeLists.txt b/lib/dfsan/CMakeLists.txt 99index 2c486bff821b..0ee715da95f8 100644 100--- a/lib/dfsan/CMakeLists.txt 101+++ b/lib/dfsan/CMakeLists.txt 102@@ -44,4 +44,4 @@ add_custom_command(OUTPUT ${dfsan_abilist_filename} 103 DEPENDS done_abilist.txt libc_ubuntu1404_abilist.txt) 104 add_dependencies(dfsan dfsan_abilist) 105 install(FILES ${dfsan_abilist_filename} 106- DESTINATION ${COMPILER_RT_INSTALL_PATH}) 107+ DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_PREFIX})