diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt --- a/clang/CMakeLists.txt +++ b/clang/CMakeLists.txt @@ -305,9 +305,6 @@ "LLVM_LINK_LLVM_DYLIB=OFF") endif() -# The libdir suffix must exactly match whatever LLVM's configuration used. -set(CLANG_LIBDIR_SUFFIX "${LLVM_LIBDIR_SUFFIX}") - set(CLANG_TOOLS_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}" CACHE PATH "Path for binary subdirectory (defaults to '${CMAKE_INSTALL_BINDIR}')") mark_as_advanced(CLANG_TOOLS_INSTALL_DIR) @@ -890,7 +887,7 @@ process_llvm_pass_plugins() endif() -set(CLANG_INSTALL_LIBDIR_BASENAME "lib${CLANG_LIBDIR_SUFFIX}") +set(CLANG_INSTALL_LIBDIR_BASENAME "${CMAKE_LIBDIR_BASENAME}") configure_file( ${CLANG_SOURCE_DIR}/include/clang/Config/config.h.cmake diff --git a/clang/cmake/caches/Android-stage2.cmake b/clang/cmake/caches/Android-stage2.cmake --- a/clang/cmake/caches/Android-stage2.cmake +++ b/clang/cmake/caches/Android-stage2.cmake @@ -4,7 +4,7 @@ set(CMAKE_BUILD_TYPE Release CACHE STRING "") set(LLVM_ENABLE_THREADS OFF CACHE BOOL "") set(LLVM_ENABLE_ASSERTIONS ON CACHE BOOL "") -set(LLVM_LIBDIR_SUFFIX 64 CACHE STRING "") +set(CMAKE_INSTALL_LIBDIR "lib64" CACHE STRING "") set(LLVM_ENABLE_LIBCXX ON CACHE BOOL "") set(ANDROID_RUNTIMES_ENABLE_ASSERTIONS ON CACHE BOOL "") diff --git a/clang/cmake/caches/Android.cmake b/clang/cmake/caches/Android.cmake --- a/clang/cmake/caches/Android.cmake +++ b/clang/cmake/caches/Android.cmake @@ -13,7 +13,7 @@ set(LLVM_BUILD_TOOLS OFF CACHE BOOL "") set(LLVM_ENABLE_ASSERTIONS ON CACHE BOOL "") set(LLVM_ENABLE_THREADS OFF CACHE BOOL "") -set(LLVM_LIBDIR_SUFFIX 64 CACHE STRING "") +set(CMAKE_INSTALL_LIBDIR "lib64" CACHE STRING "") set(LLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD OFF CACHE BOOL "") set(LLVM_TOOL_OPENMP_BUILD OFF CACHE BOOL "") set(LLVM_ENABLE_LIBCXX ON CACHE BOOL "") diff --git a/clang/cmake/modules/AddClang.cmake b/clang/cmake/modules/AddClang.cmake --- a/clang/cmake/modules/AddClang.cmake +++ b/clang/cmake/modules/AddClang.cmake @@ -119,8 +119,8 @@ install(TARGETS ${lib} COMPONENT ${lib} ${export_to_clangtargets} - LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} - ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") if (NOT LLVM_ENABLE_IDE) diff --git a/clang/lib/Headers/CMakeLists.txt b/clang/lib/Headers/CMakeLists.txt --- a/clang/lib/Headers/CMakeLists.txt +++ b/clang/lib/Headers/CMakeLists.txt @@ -420,7 +420,7 @@ add_header_target("windows-resource-headers" ${windows_only_files}) add_header_target("utility-resource-headers" ${utility_files}) -set(header_install_dir lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include) +set(header_install_dir ${CMAKE_INSTALL_LIBDIR}/clang/${CLANG_VERSION}/include) ############################################################# # Install rules for the catch-all clang-resource-headers target diff --git a/clang/runtime/CMakeLists.txt b/clang/runtime/CMakeLists.txt --- a/clang/runtime/CMakeLists.txt +++ b/clang/runtime/CMakeLists.txt @@ -84,10 +84,12 @@ -DLLVM_LIT_ARGS=${LLVM_LIT_ARGS} -DCOMPILER_RT_OUTPUT_DIR=${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION} -DCOMPILER_RT_EXEC_OUTPUT_DIR=${LLVM_RUNTIME_OUTPUT_INTDIR} - -DCOMPILER_RT_INSTALL_PATH:PATH=lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION} + -DCOMPILER_RT_INSTALL_PATH:PATH="${CMAKE_LIBDIR_BASENAME}/clang/${CLANG_VERSION}" -DCOMPILER_RT_INCLUDE_TESTS=${LLVM_INCLUDE_TESTS} - -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} - -DLLVM_LIBDIR_SUFFIX=${LLVM_LIBDIR_SUFFIX} + -DCMAKE_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}" + -DCMAKE_INSTALL_BINDIR="${CMAKE_INSTALL_BINDIR}" + -DCMAKE_INSTALL_LIBDIR="${CMAKE_INSTALL_LIBDIR}" + -DCMAKE_INSTALL_INCLUDEDIR="${CMAKE_INSTALL_INCLUDEDIR}" -DLLVM_RUNTIME_OUTPUT_INTDIR=${LLVM_RUNTIME_OUTPUT_INTDIR} -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} -DCMAKE_OSX_SYSROOT:PATH=${CMAKE_OSX_SYSROOT} diff --git a/clang/tools/libclang/CMakeLists.txt b/clang/tools/libclang/CMakeLists.txt --- a/clang/tools/libclang/CMakeLists.txt +++ b/clang/tools/libclang/CMakeLists.txt @@ -232,7 +232,7 @@ COMPONENT libclang-python-bindings DESTINATION - "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages") + "${CMAKE_INSTALL_LIBDIR}/python${PythonVersion}/site-packages") endforeach() if(NOT LLVM_ENABLE_IDE) add_custom_target(libclang-python-bindings) diff --git a/clang/tools/scan-build-py/CMakeLists.txt b/clang/tools/scan-build-py/CMakeLists.txt --- a/clang/tools/scan-build-py/CMakeLists.txt +++ b/clang/tools/scan-build-py/CMakeLists.txt @@ -88,7 +88,7 @@ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/${lib}) list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/${lib}) install(FILES lib/libscanbuild/${lib} - DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libscanbuild + DESTINATION "${CMAKE_INSTALL_LIBDIR}/libscanbuild" COMPONENT scan-build-py) endforeach() @@ -106,7 +106,7 @@ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/resources/${resource}) list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/resources/${resource}) install(FILES lib/libscanbuild/resources/${resource} - DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libscanbuild/resources + DESTINATION "${CMAKE_INSTALL_LIBDIR}/libscanbuild/resources" COMPONENT scan-build-py) endforeach() @@ -122,7 +122,7 @@ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libear/${lib}) list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libear/${lib}) install(FILES lib/libear/${lib} - DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libear + DESTINATION "${CMAKE_INSTALL_LIBDIR}/libear" COMPONENT scan-build-py) endforeach() diff --git a/cmake/Modules/GNUInstallPackageDir.cmake b/cmake/Modules/GNUInstallPackageDir.cmake --- a/cmake/Modules/GNUInstallPackageDir.cmake +++ b/cmake/Modules/GNUInstallPackageDir.cmake @@ -29,5 +29,5 @@ _GNUInstallPackageDir_cache_convert_to_path("${var}" "${description}") endmacro() -_GNUInstallPackageDir_cache_path(CMAKE_INSTALL_PACKAGEDIR "lib${LLVM_LIBDIR_SUFFIX}/cmake" +_GNUInstallPackageDir_cache_path(CMAKE_INSTALL_PACKAGEDIR "${CMAKE_INSTALL_LIBDIR}/cmake" "Directories containing installed CMake modules (lib/cmake)") diff --git a/cmake/Modules/LLVMLibdirSuffix.cmake b/cmake/Modules/LLVMLibdirSuffix.cmake --- a/cmake/Modules/LLVMLibdirSuffix.cmake +++ b/cmake/Modules/LLVMLibdirSuffix.cmake @@ -1,5 +1,8 @@ # Must go before the first `include(GNUInstallDirs)`. if (NOT DEFINED CMAKE_INSTALL_LIBDIR AND DEFINED LLVM_LIBDIR_SUFFIX) + message(DEPRECATION + "\"LLVM_LIBDIR_SUFFIX\" is deprecated. " + "Please set \"CMAKE_INSTALL_LIBDIR\" directly instead.") set(CMAKE_INSTALL_LIBDIR "lib${LLVM_LIBDIR_SUFFIX}") endif() diff --git a/compiler-rt/cmake/Modules/CompilerRTAIXUtils.cmake b/compiler-rt/cmake/Modules/CompilerRTAIXUtils.cmake --- a/compiler-rt/cmake/Modules/CompilerRTAIXUtils.cmake +++ b/compiler-rt/cmake/Modules/CompilerRTAIXUtils.cmake @@ -62,7 +62,7 @@ # setting _install_rpath on AIX for reference. if(LLVM_LIBRARY_OUTPUT_INTDIR AND CMAKE_INSTALL_PREFIX) set(output_dir "${LLVM_LIBRARY_OUTPUT_INTDIR}") - set(install_dir "${CMAKE_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}") + set(install_dir "${CMAKE_INSTALL_LIBDIR}") else() get_compiler_rt_output_dir(${COMPILER_RT_DEFAULT_TARGET_ARCH} output_dir) get_compiler_rt_install_dir(${COMPILER_RT_DEFAULT_TARGET_ARCH} install_dir) diff --git a/compiler-rt/cmake/Modules/CompilerRTUtils.cmake b/compiler-rt/cmake/Modules/CompilerRTUtils.cmake --- a/compiler-rt/cmake/Modules/CompilerRTUtils.cmake +++ b/compiler-rt/cmake/Modules/CompilerRTUtils.cmake @@ -377,7 +377,7 @@ file(TO_CMAKE_PATH ${LLVM_CMAKE_DIR_FROM_LLVM_CONFIG} LLVM_CMAKE_DIR) else() file(TO_CMAKE_PATH ${LLVM_BINARY_DIR} LLVM_BINARY_DIR_CMAKE_STYLE) - set(LLVM_CMAKE_DIR "${LLVM_BINARY_DIR_CMAKE_STYLE}/lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm") + set(LLVM_CMAKE_DIR "${LLVM_BINARY_DIR_CMAKE_STYLE}/${CMAKE_LIBDIR_BASENAME}/cmake/llvm") endif() set(LLVM_CMAKE_INCLUDE_FILE "${LLVM_CMAKE_DIR}/LLVMConfig.cmake") @@ -393,7 +393,7 @@ unset(LLVM_CMAKE_INCLUDE_FILE) set(LLVM_LIBRARY_OUTPUT_INTDIR - ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) + "${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${CMAKE_LIBDIR_BASENAME}") endif() # Finally set the cache variable now that `llvm-config` has also had a chance diff --git a/compiler-rt/cmake/base-config-ix.cmake b/compiler-rt/cmake/base-config-ix.cmake --- a/compiler-rt/cmake/base-config-ix.cmake +++ b/compiler-rt/cmake/base-config-ix.cmake @@ -45,7 +45,7 @@ # Setup the paths where compiler-rt runtimes and headers should be stored. set(COMPILER_RT_OUTPUT_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION}) set(COMPILER_RT_EXEC_OUTPUT_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR}) - set(COMPILER_RT_INSTALL_PATH lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}) + set(COMPILER_RT_INSTALL_PATH "${CMAKE_INSTALL_LIBDIR}/clang/${CLANG_VERSION}") option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests." ${LLVM_INCLUDE_TESTS}) option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered" @@ -101,11 +101,14 @@ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) set(COMPILER_RT_OUTPUT_LIBRARY_DIR ${COMPILER_RT_OUTPUT_DIR}/lib) - extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" lib) -else(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) + # Don't use "${CMAKE_INSTALL_LIBDIR}", because the intended use-case is that + # "${COMPILER_RT_INSTALL_PATH}" is already non-trival and probably includes + # "${CMAKE_INSTALL_LIBDIR}". + extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "lib") +else() set(COMPILER_RT_OUTPUT_LIBRARY_DIR ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR}) - extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "lib/${COMPILER_RT_OS_DIR}") + extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "${CMAKE_INSTALL_LIBDIR}/${COMPILER_RT_OS_DIR}") endif() set(COMPILER_RT_INSTALL_LIBRARY_DIR "${default_install_path}" CACHE PATH "Path where built compiler-rt libraries should be installed.") diff --git a/compiler-rt/docs/BuildingCompilerRT.rst b/compiler-rt/docs/BuildingCompilerRT.rst --- a/compiler-rt/docs/BuildingCompilerRT.rst +++ b/compiler-rt/docs/BuildingCompilerRT.rst @@ -79,14 +79,3 @@ Path where Compiler-RT data should be installed. If a relative path, relative to ``COMPILER_RT_INSTALL_PATH``. - -.. _LLVM-specific variables: - -LLVM-specific options ---------------------- - -.. option:: LLVM_LIBDIR_SUFFIX:STRING - - Extra suffix to append to the directory where libraries are to be - installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64`` - to install libraries to ``/usr/lib64``. diff --git a/flang/cmake/modules/AddFlang.cmake b/flang/cmake/modules/AddFlang.cmake --- a/flang/cmake/modules/AddFlang.cmake +++ b/flang/cmake/modules/AddFlang.cmake @@ -71,8 +71,8 @@ install(TARGETS ${name} COMPONENT ${name} ${export_to_flangtargets} - LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} - ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") if (NOT LLVM_ENABLE_IDE) diff --git a/libc/CMakeLists.txt b/libc/CMakeLists.txt --- a/libc/CMakeLists.txt +++ b/libc/CMakeLists.txt @@ -1,5 +1,7 @@ cmake_minimum_required(VERSION 3.13.4) +include(GNUInstallDirs) + # Default to C++17 set(CMAKE_CXX_STANDARD 17) diff --git a/libc/lib/CMakeLists.txt b/libc/lib/CMakeLists.txt --- a/libc/lib/CMakeLists.txt +++ b/libc/lib/CMakeLists.txt @@ -10,9 +10,9 @@ ) if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR) - set(LIBC_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}) + set(LIBC_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}) else() - set(LIBC_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}) + set(LIBC_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}) endif() install( diff --git a/libcxx/CMakeLists.txt b/libcxx/CMakeLists.txt --- a/libcxx/CMakeLists.txt +++ b/libcxx/CMakeLists.txt @@ -427,9 +427,9 @@ unset(default_install_path) if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) - set(default_install_path "lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}") + set(default_install_path "${CMAKE_INSTALL_LIBDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}") else() - set(default_install_path "lib${LLVM_LIBDIR_SUFFIX}") + set(default_install_path "${CMAKE_INSTALL_LIBDIR}") endif() set(LIBCXX_INSTALL_LIBRARY_DIR "${default_install_path}" CACHE PATH "Path where built libc++ libraries should be installed.") diff --git a/libcxx/docs/BuildingLibcxx.rst b/libcxx/docs/BuildingLibcxx.rst --- a/libcxx/docs/BuildingLibcxx.rst +++ b/libcxx/docs/BuildingLibcxx.rst @@ -262,7 +262,7 @@ .. option:: LIBCXX_INSTALL_LIBRARY_DIR:PATH - **Default**: ``lib${LLVM_LIBDIR_SUFFIX}`` + **Default**: ``${CMAKE_INSTALL_LIBDIR}`` Path where built libc++ libraries should be installed. If a relative path, relative to ``CMAKE_INSTALL_PREFIX``. @@ -425,12 +425,6 @@ LLVM-specific options --------------------- -.. option:: LLVM_LIBDIR_SUFFIX:STRING - - Extra suffix to append to the directory where libraries are to be - installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64`` - to install libraries to ``/usr/lib64``. - .. option:: LLVM_BUILD_32_BITS:BOOL Build 32-bits executables and libraries on 64-bits systems. This option is diff --git a/libcxxabi/CMakeLists.txt b/libcxxabi/CMakeLists.txt --- a/libcxxabi/CMakeLists.txt +++ b/libcxxabi/CMakeLists.txt @@ -187,9 +187,9 @@ "Path where built libc++abi runtime libraries should be installed.") if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) - set(default_install_path "lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}") + set(default_install_path "${CMAKE_INSTALL_LIBDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}") else() - set(default_install_path "lib${LLVM_LIBDIR_SUFFIX}") + set(default_install_path "${CMAKE_INSTALL_LIBDIR}") endif() set(LIBCXXABI_INSTALL_LIBRARY_DIR "${default_install_path}" CACHE PATH "Path where built libc++abi libraries should be installed.") diff --git a/libunwind/CMakeLists.txt b/libunwind/CMakeLists.txt --- a/libunwind/CMakeLists.txt +++ b/libunwind/CMakeLists.txt @@ -118,9 +118,9 @@ "Path where built libunwind runtime libraries should be installed.") if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) - set(default_install_path "lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}") + set(default_install_path "${CMAKE_INSTALL_LIBDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}") else() - set(default_install_path "lib${LLVM_LIBDIR_SUFFIX}") + set(default_install_path "${CMAKE_INSTALL_LIBDIR}") endif() set(LIBUNWIND_INSTALL_LIBRARY_DIR "${default_install_path}" CACHE PATH "Path where built libunwind libraries should be installed.") diff --git a/libunwind/docs/BuildingLibunwind.rst b/libunwind/docs/BuildingLibunwind.rst --- a/libunwind/docs/BuildingLibunwind.rst +++ b/libunwind/docs/BuildingLibunwind.rst @@ -144,7 +144,7 @@ .. option:: LIBUNWIND_INSTALL_LIBRARY_DIR:PATH - **Default**: ``lib${LLVM_LIBDIR_SUFFIX}`` + **Default**: ``${CMAKE_INSTALL_LIBDIR}`` Path where built libunwind libraries should be installed. If a relative path, relative to ``CMAKE_INSTALL_PREFIX``. diff --git a/lld/cmake/modules/AddLLD.cmake b/lld/cmake/modules/AddLLD.cmake --- a/lld/cmake/modules/AddLLD.cmake +++ b/lld/cmake/modules/AddLLD.cmake @@ -18,8 +18,8 @@ install(TARGETS ${name} COMPONENT ${name} ${export_to_lldtargets} - LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} - ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES) diff --git a/lldb/cmake/modules/AddLLDB.cmake b/lldb/cmake/modules/AddLLDB.cmake --- a/lldb/cmake/modules/AddLLDB.cmake +++ b/lldb/cmake/modules/AddLLDB.cmake @@ -109,7 +109,7 @@ endif() if(PARAM_SHARED) - set(install_dest lib${LLVM_LIBDIR_SUFFIX}) + set(install_dest "${CMAKE_INSTALL_LIBDIR}") if(PARAM_INSTALL_PREFIX) set(install_dest ${PARAM_INSTALL_PREFIX}) endif() diff --git a/lldb/cmake/modules/LLDBGenerateConfig.cmake b/lldb/cmake/modules/LLDBGenerateConfig.cmake --- a/lldb/cmake/modules/LLDBGenerateConfig.cmake +++ b/lldb/cmake/modules/LLDBGenerateConfig.cmake @@ -19,7 +19,7 @@ check_library_exists(compression compression_encode_buffer "" HAVE_LIBCOMPRESSION) -set(LLDB_INSTALL_LIBDIR_BASENAME "lib${LLDB_LIBDIR_SUFFIX}") +get_filename_component(LLDB_INSTALL_LIBDIR_BASENAME "${CMAKE_INSTALL_LIBDIR}" NAME) # These checks exist in LLVM's configuration, so I want to match the LLVM names # so that the check isn't duplicated, but we translate them into the LLDB names diff --git a/lldb/source/API/CMakeLists.txt b/lldb/source/API/CMakeLists.txt --- a/lldb/source/API/CMakeLists.txt +++ b/lldb/source/API/CMakeLists.txt @@ -1,3 +1,5 @@ +include(ExtendPath) + get_property(LLDB_ALL_PLUGINS GLOBAL PROPERTY LLDB_PLUGINS) if(LLDB_BUILD_FRAMEWORK) @@ -114,7 +116,8 @@ # (LLVM_LINK_LLVM_DYLIB). Add an additional rpath $ORIGIN/../../../../lib so # that _lldb.so can be loaded from Python. if(LLDB_ENABLE_PYTHON AND (BUILD_SHARED_LIBS OR LLVM_LINK_LLVM_DYLIB) AND UNIX AND NOT APPLE) - set_property(TARGET liblldb APPEND PROPERTY INSTALL_RPATH "\$ORIGIN/../../../../lib${LLVM_LIBDIR_SUFFIX}") + extend_path(install_rpath "\$ORIGIN/../../../../" "${CMAKE_INSTALL_LIBDIR}") + set_property(TARGET liblldb APPEND PROPERTY INSTALL_RPATH "${install_rpath}") endif() if(Python3_RPATH) diff --git a/lldb/tools/intel-features/CMakeLists.txt b/lldb/tools/intel-features/CMakeLists.txt --- a/lldb/tools/intel-features/CMakeLists.txt +++ b/lldb/tools/intel-features/CMakeLists.txt @@ -30,4 +30,4 @@ ) install(TARGETS lldbIntelFeatures - LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}) + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -65,9 +65,6 @@ # Must go before the first `include(GNUInstallDirs)`. include(LLVMLibdirSuffix) -# Must go after `include(LLVMLibdirSuffix)`. -set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" ) - # Must go after `project(..)`. include(GNUInstallDirs) include(GNUBinaryDirs) @@ -1004,7 +1001,7 @@ add_subdirectory(${TENSORFLOW_AOT_PATH}/xla_aot_runtime_src ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/tf_runtime) install(TARGETS tf_xla_runtime EXPORT LLVMExports - ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT tf_xla_runtime) + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT tf_xla_runtime) set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS tf_xla_runtime) # Once we add more modules, we should handle this more automatically. if (DEFINED LLVM_OVERRIDE_MODEL_HEADER_INLINERSIZEMODEL) diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake --- a/llvm/cmake/modules/AddLLVM.cmake +++ b/llvm/cmake/modules/AddLLVM.cmake @@ -844,8 +844,8 @@ get_target_export_arg(${name} LLVM export_to_llvmexports ${umbrella}) install(TARGETS ${name} ${export_to_llvmexports} - LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} - ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT ${name} + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT ${name} RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${name}) if (NOT LLVM_ENABLE_IDE) @@ -2007,7 +2007,7 @@ set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX}) set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX}) - set(output_dir lib${LLVM_LIBDIR_SUFFIX}) + set(output_dir "${CMAKE_INSTALL_FULL_LIBDIR}") if(WIN32 AND "${type}" STREQUAL "SHARED") set(output_dir "${CMAKE_INSTALL_BINDIR}") endif() @@ -2278,15 +2278,15 @@ if (APPLE) set(_install_name_dir INSTALL_NAME_DIR "@rpath") - set(_install_rpath "@loader_path/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) + set(_install_rpath "@loader_path/../${CMAKE_INSTALL_LIBDIR}" ${extra_libdir}) elseif(${CMAKE_SYSTEM_NAME} MATCHES "AIX" AND BUILD_SHARED_LIBS) # $ORIGIN is not interpreted at link time by aix ld. # Since BUILD_SHARED_LIBS is only recommended for use by developers, # hardcode the rpath to build/install lib dir first in this mode. # FIXME: update this when there is better solution. - set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) + set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_FULL_LIBDIR}" ${extra_libdir}) elseif(UNIX) - set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) + set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}" ${extra_libdir}) if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)") set_property(TARGET ${name} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,-z,origin ") diff --git a/llvm/cmake/modules/AddOCaml.cmake b/llvm/cmake/modules/AddOCaml.cmake --- a/llvm/cmake/modules/AddOCaml.cmake +++ b/llvm/cmake/modules/AddOCaml.cmake @@ -147,9 +147,9 @@ endforeach() if( APPLE ) - set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}") + set(ocaml_rpath "@executable_path/../../../${CMAKE_INSTALL_LIBDIR}") elseif( UNIX ) - set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}") + set(ocaml_rpath "\\$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR}") endif() list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}") diff --git a/llvm/cmake/modules/CMakeLists.txt b/llvm/cmake/modules/CMakeLists.txt --- a/llvm/cmake/modules/CMakeLists.txt +++ b/llvm/cmake/modules/CMakeLists.txt @@ -125,7 +125,7 @@ ) list(REMOVE_DUPLICATES LLVM_CONFIG_INCLUDE_DIRS) -extend_path(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}" "lib\${LLVM_LIBDIR_SUFFIX}") +extend_path(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}" "${CMAKE_INSTALL_LIBDIR}") set(LLVM_CONFIG_LIBRARY_DIRS "${LLVM_CONFIG_LIBRARY_DIR}" # FIXME: Should there be other entries here? diff --git a/llvm/cmake/modules/LLVMConfig.cmake.in b/llvm/cmake/modules/LLVMConfig.cmake.in --- a/llvm/cmake/modules/LLVMConfig.cmake.in +++ b/llvm/cmake/modules/LLVMConfig.cmake.in @@ -103,8 +103,6 @@ set(LLVM_ON_UNIX @LLVM_ON_UNIX@) -set(LLVM_LIBDIR_SUFFIX @LLVM_LIBDIR_SUFFIX@) - set(LLVM_INCLUDE_DIRS "@LLVM_CONFIG_INCLUDE_DIRS@") set(LLVM_LIBRARY_DIRS "@LLVM_CONFIG_LIBRARY_DIRS@") @@ -119,6 +117,14 @@ set(LLVM_MAIN_INCLUDE_DIR "@LLVM_CONFIG_MAIN_INCLUDE_DIR@") set(LLVM_LIBRARY_DIR "@LLVM_CONFIG_LIBRARY_DIR@") +# Backwards compatibility for anything using the deprecated `LLVM_LIBDIR_SUFFIX` +# downstream. +if("${LLVM_LIBRARY_DIR}" MATCHES "lib([^/]*)$") + set(LLVM_LIBDIR_SUFFIX "${CMAKE_MATCH_0}") +else() + set(LLVM_LIBDIR_SUFFIX "") +endif() + # This is a secondary one for generated files set(LLVM_INCLUDE_DIR "@LLVM_CONFIG_INCLUDE_DIR@") diff --git a/llvm/docs/CMake.rst b/llvm/docs/CMake.rst --- a/llvm/docs/CMake.rst +++ b/llvm/docs/CMake.rst @@ -247,11 +247,6 @@ Control which runtimes are enabled. For example you may want to work on libc++ or libc++abi by specifying ``-DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi"``. -**LLVM_LIBDIR_SUFFIX**:STRING - Extra suffix to append to the directory where libraries are to be - installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64`` - to install libraries to ``/usr/lib64``. - **LLVM_PARALLEL_{COMPILE,LINK}_JOBS**:STRING Building the llvm toolchain can use a lot of resources, particularly linking. These options, when you use the Ninja generator, allow you @@ -284,6 +279,10 @@ The path to install executables, relative to the *CMAKE_INSTALL_PREFIX*. Defaults to "bin". +**CMAKE_INSTALL_LIBDIR**:PATH + The path to install libraries, relative to the *CMAKE_INSTALL_PREFIX*. + Defaults to "lib". + **CMAKE_INSTALL_INCLUDEDIR**:PATH The path to install header files, relative to the *CMAKE_INSTALL_PREFIX*. Defaults to "include". @@ -831,6 +830,21 @@ Only matters if *LLVM_BUILD_EXAMPLES* is enabled. Defaults to "examples". +Deprecated variables +~~~~~~~~~~~~~~~~~~~~ + +These will go away soon. Please try to avoid using them. + +**LLVM_LIBDIR_SUFFIX**:STRING + + **Deprecated**: Use ``LLVM_LIBRARY_DIR`` or ``CMAKE_INSTALL_LIBDIR`` instead. + Only defined downstream for legacy consumers, not during the build of LLVM + itself. + + Extra suffix to append to the directory where libraries are to be + installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64`` + to install libraries to ``/usr/lib64``. See also ``CMAKE_INSTALL_LIBDIR``. + CMake Caches ============ diff --git a/llvm/tools/llvm-config/BuildVariables.inc.in b/llvm/tools/llvm-config/BuildVariables.inc.in --- a/llvm/tools/llvm-config/BuildVariables.inc.in +++ b/llvm/tools/llvm-config/BuildVariables.inc.in @@ -22,7 +22,8 @@ #define LLVM_LDFLAGS "@LLVM_LDFLAGS@" #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@" #define LLVM_BUILDMODE "@LLVM_BUILDMODE@" -#define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@" +#define LLVM_LIBDIR_BASENAME "@CMAKE_LIBDIR_BASENAME@" +#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@" #define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@" #define LLVM_INSTALL_PACKAGE_DIR "@LLVM_INSTALL_PACKAGE_DIR@" #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@" diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp --- a/llvm/tools/llvm-config/llvm-config.cpp +++ b/llvm/tools/llvm-config/llvm-config.cpp @@ -337,7 +337,7 @@ switch (DevelopmentTreeLayout) { case CMakeStyle: ActiveBinDir = ActiveObjRoot + "/bin"; - ActiveLibDir = ActiveObjRoot + "/lib" + LLVM_LIBDIR_SUFFIX; + ActiveLibDir = ActiveObjRoot + "/" + LLVM_LIBDIR_BASENAME; ActiveCMakeDir = ActiveLibDir + "/cmake/llvm"; break; case CMakeBuildModeStyle: @@ -345,10 +345,10 @@ ActivePrefix = ActiveObjRoot; ActiveBinDir = ActiveObjRoot + "/" + build_mode + "/bin"; ActiveLibDir = - ActiveObjRoot + "/" + build_mode + "/lib" + LLVM_LIBDIR_SUFFIX; + ActiveObjRoot + "/" + build_mode + "/" + LLVM_LIBDIR_BASENAME; // The CMake directory isn't separated by build mode. ActiveCMakeDir = - ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX + "/cmake/llvm"; + ActivePrefix + "/" + LLVM_LIBDIR_BASENAME + "/cmake/llvm"; break; } @@ -367,7 +367,11 @@ sys::fs::make_absolute(ActivePrefix, Path); ActiveBinDir = std::string(Path.str()); } - ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX; + { + SmallString<256> Path(LLVM_INSTALL_LIBDIR); + sys::fs::make_absolute(ActivePrefix, Path); + ActiveLibDir = std::string(Path.str()); + } { SmallString<256> Path(LLVM_INSTALL_PACKAGE_DIR); sys::fs::make_absolute(ActivePrefix, Path); diff --git a/llvm/utils/gn/secondary/llvm/tools/llvm-config/BUILD.gn b/llvm/utils/gn/secondary/llvm/tools/llvm-config/BUILD.gn --- a/llvm/utils/gn/secondary/llvm/tools/llvm-config/BUILD.gn +++ b/llvm/utils/gn/secondary/llvm/tools/llvm-config/BUILD.gn @@ -71,6 +71,7 @@ } values = [ + "CMAKE_INSTALL_LIBDIR=lib", "CMAKE_INSTALL_INCLUDEDIR=include", "LLVM_SRC_ROOT=" + rebase_path("//llvm"), "LLVM_OBJ_ROOT=" + rebase_path(root_out_dir), diff --git a/mlir/CMakeLists.txt b/mlir/CMakeLists.txt --- a/mlir/CMakeLists.txt +++ b/mlir/CMakeLists.txt @@ -43,7 +43,7 @@ endif() set(CMAKE_LIBRARY_OUTPUT_DIRECTORY - "${CMAKE_CURRENT_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}") + "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_LIBDIR_BASENAME}") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin") endif() diff --git a/mlir/cmake/modules/AddMLIR.cmake b/mlir/cmake/modules/AddMLIR.cmake --- a/mlir/cmake/modules/AddMLIR.cmake +++ b/mlir/cmake/modules/AddMLIR.cmake @@ -533,13 +533,13 @@ install(TARGETS ${name} COMPONENT ${name} ${export_to_mlirtargets} - LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} - ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" # Note that CMake will create a directory like: # objects-${CMAKE_BUILD_TYPE}/obj.LibName # and put object files there. - OBJECTS DESTINATION lib${LLVM_LIBDIR_SUFFIX} + OBJECTS DESTINATION "${CMAKE_INSTALL_LIBDIR}" ) if (NOT LLVM_ENABLE_IDE) diff --git a/mlir/cmake/modules/AddMLIRPython.cmake b/mlir/cmake/modules/AddMLIRPython.cmake --- a/mlir/cmake/modules/AddMLIRPython.cmake +++ b/mlir/cmake/modules/AddMLIRPython.cmake @@ -408,8 +408,12 @@ get_filename_component(_real_lib_dir "${LLVM_LIBRARY_OUTPUT_INTDIR}" REALPATH) set_property(TARGET ${target} APPEND PROPERTY BUILD_RPATH "${_real_lib_dir}") - set_property(TARGET ${target} APPEND PROPERTY - INSTALL_RPATH "${_origin_prefix}/${ARG_RELATIVE_INSTALL_ROOT}/lib${LLVM_LIBDIR_SUFFIX}") + if(NOT IS_ABSOLUTE "${CMAKE_INSTALL_LIBDIR}") + set(install_rpath "${_origin_prefix}/${ARG_RELATIVE_INSTALL_ROOT}/${CMAKE_INSTALL_LIBDIR}") + else() + set(install_rpath "${CMAKE_INSTALL_LIBDIR}") + endif() + set_property(TARGET ${target} APPEND PROPERTY INSTALL_RPATH "${install_rpath}") endif() endfunction() diff --git a/openmp/CMakeLists.txt b/openmp/CMakeLists.txt --- a/openmp/CMakeLists.txt +++ b/openmp/CMakeLists.txt @@ -22,6 +22,9 @@ # Must go below project(..) include(GNUInstallDirs) +set(OPENMP_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}" CACHE STRING + "lib installation directory, e.g. lib or lib64") + if (OPENMP_STANDALONE_BUILD) # CMAKE_BUILD_TYPE was not set, default to Release. if (NOT CMAKE_BUILD_TYPE) @@ -31,10 +34,6 @@ # Group common settings. set(OPENMP_ENABLE_WERROR FALSE CACHE BOOL "Enable -Werror flags to turn warnings into errors for supporting compilers.") - set(OPENMP_LIBDIR_SUFFIX "" CACHE STRING - "Suffix of lib installation directory, e.g. 64 => lib64") - # Do not use OPENMP_LIBDIR_SUFFIX directly, use OPENMP_INSTALL_LIBDIR. - set(OPENMP_INSTALL_LIBDIR "lib${OPENMP_LIBDIR_SUFFIX}") # Group test settings. set(OPENMP_TEST_C_COMPILER ${CMAKE_C_COMPILER} CACHE STRING @@ -44,8 +43,6 @@ set(OPENMP_LLVM_TOOLS_DIR "" CACHE PATH "Path to LLVM tools for testing.") else() set(OPENMP_ENABLE_WERROR ${LLVM_ENABLE_WERROR}) - # If building in tree, we honor the same install suffix LLVM uses. - set(OPENMP_INSTALL_LIBDIR "lib${LLVM_LIBDIR_SUFFIX}") if (NOT MSVC) set(OPENMP_TEST_C_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang) diff --git a/openmp/README.rst b/openmp/README.rst --- a/openmp/README.rst +++ b/openmp/README.rst @@ -108,8 +108,8 @@ **OPENMP_ENABLE_WERROR** = ``OFF|ON`` Treat warnings as errors and fail, if a compiler warning is triggered. -**OPENMP_LIBDIR_SUFFIX** = ``""`` - Extra suffix to append to the directory where libraries are to be installed. +**OPENMP_INSTALL_LIBDIR** = ``lib`` + Name or path of the directory where libraries are to be installed. **OPENMP_TEST_C_COMPILER** = ``${CMAKE_C_COMPILER}`` Compiler to use for testing. Defaults to the compiler that was also used for diff --git a/polly/CMakeLists.txt b/polly/CMakeLists.txt --- a/polly/CMakeLists.txt +++ b/polly/CMakeLists.txt @@ -24,6 +24,10 @@ include(GNUInstallDirs) include(GNUBinaryDirs) +set(POLLY_BINARY_BINDIR "${POLLY_BINARY_DIR}/bin") +set(POLLY_BINARY_LIBDIR "${POLLY_BINARY_DIR}/${CMAKE_LIBDIR_BASENAME}") +set(POLLY_BINARY_INCLUDEDIR "${POLLY_BINARY_DIR}/include") + if(POLLY_STANDALONE_BUILD) # Where is LLVM installed? find_package(LLVM CONFIG REQUIRED) @@ -140,7 +144,7 @@ PATTERN "*.h" ) - install(DIRECTORY ${POLLY_BINARY_DIR}/include/ + install(DIRECTORY "${POLLY_BINARY_INCLUDEDIR}" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" FILES_MATCHING PATTERN "*.h" @@ -162,7 +166,7 @@ configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/include/polly/Config/config.h.cmake - ${POLLY_BINARY_DIR}/include/polly/Config/config.h ) + ${POLLY_BINARY_INCLUDEDIR}/polly/Config/config.h ) # Add target to check formatting of polly files file( GLOB_RECURSE files *.h lib/*.cpp lib/*.c tools/*.cpp tools/*.c tools/*.h unittests/*.cpp) diff --git a/polly/cmake/CMakeLists.txt b/polly/cmake/CMakeLists.txt --- a/polly/cmake/CMakeLists.txt +++ b/polly/cmake/CMakeLists.txt @@ -7,7 +7,7 @@ set(POLLY_INSTALL_PACKAGE_DIR "${CMAKE_INSTALL_PACKAGEDIR}/polly" CACHE STRING "Path for CMake subdirectory for Polly (defaults to '${CMAKE_INSTALL_PACKAGEDIR}/polly')") # CMAKE_INSTALL_PACKAGEDIR might be absolute, so don't reuse below. -set(polly_cmake_builddir "${POLLY_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}/cmake/polly") +set(polly_cmake_builddir "${POLLY_BINARY_LIBDIR}/cmake/polly") set(LLVM_INSTALL_PACKAGE_DIR "${CMAKE_INSTALL_PACKAGEDIR}/llvm" CACHE STRING "Path for CMake subdirectory for LLVM (defaults to '${CMAKE_INSTALL_PACKAGEDIR}/llvm')") @@ -61,7 +61,7 @@ set(POLLY_CONFIG_INCLUDE_DIRS ${POLLY_SOURCE_DIR}/include ${ISL_INCLUDE_DIRS} - ${POLLY_BINARY_DIR}/include + "${POLLY_BINARY_INCLUDEDIR}" ) set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_BINARY_DIR}/lib") @@ -93,7 +93,7 @@ find_prefix_from_config(POLLY_CONFIG_CODE POLLY_INSTALL_PREFIX "${POLLY_INSTALL_PACKAGE_DIR}") extend_path(POLLY_CONFIG_LLVM_CMAKE_DIR "\${POLLY_INSTALL_PREFIX}" "${LLVM_INSTALL_PACKAGE_DIR}") extend_path(POLLY_CONFIG_CMAKE_DIR "\${POLLY_INSTALL_PREFIX}" "${POLLY_INSTALL_PACKAGE_DIR}") -extend_path(POLLY_CONFIG_LIBRARY_DIRS "\${POLLY_INSTALL_PREFIX}" "lib${LLVM_LIBDIR_SUFFIX}") +extend_path(POLLY_CONFIG_LIBRARY_DIRS "\${POLLY_INSTALL_PREFIX}" "${CMAKE_INSTALL_LIBDIR}") extend_path(base_includedir "\${POLLY_INSTALL_PREFIX}" "${CMAKE_INSTALL_INCLUDEDIR}") if (POLLY_BUNDLED_ISL) set(POLLY_CONFIG_INCLUDE_DIRS diff --git a/polly/cmake/polly_macros.cmake b/polly/cmake/polly_macros.cmake --- a/polly/cmake/polly_macros.cmake +++ b/polly/cmake/polly_macros.cmake @@ -44,8 +44,8 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly") install(TARGETS ${name} EXPORT LLVMExports - LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} - ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}) + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}") endif() set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name}) endmacro(add_polly_library) diff --git a/pstl/CMakeLists.txt b/pstl/CMakeLists.txt --- a/pstl/CMakeLists.txt +++ b/pstl/CMakeLists.txt @@ -88,10 +88,10 @@ install(EXPORT ParallelSTLTargets FILE ParallelSTLTargets.cmake NAMESPACE pstl:: - DESTINATION lib/cmake/ParallelSTL) + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/ParallelSTL") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ParallelSTLConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/ParallelSTLConfigVersion.cmake" - DESTINATION lib/cmake/ParallelSTL) + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/ParallelSTL") install(DIRECTORY include/ DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" PATTERN "*.in" EXCLUDE) diff --git a/third-party/benchmark/src/CMakeLists.txt b/third-party/benchmark/src/CMakeLists.txt --- a/third-party/benchmark/src/CMakeLists.txt +++ b/third-party/benchmark/src/CMakeLists.txt @@ -79,7 +79,7 @@ configure_package_config_file ( ${PROJECT_SOURCE_DIR}/cmake/Config.cmake.in ${project_config} - INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} + INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO ) @@ -100,8 +100,8 @@ install( TARGETS ${targets_to_export} EXPORT ${targets_export_name} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})