From d3b756c51c1b42f653b8abf2b2e83a2321befb9d Mon Sep 17 00:00:00 2001 From: John Ericson Date: Tue, 18 Jan 2022 07:05:47 +0000 Subject: [PATCH] [polly][cmake] Use `GNUInstallDirs` to support custom installation dirs I am breaking apart D99484 so the cause of build failures is easier to understand. Reviewed By: Meinersbur Differential Revision: https://reviews.llvm.org/D117541 --- polly/CMakeLists.txt | 6 ++++-- polly/cmake/CMakeLists.txt | 20 +++++++++++--------- polly/lib/External/CMakeLists.txt | 2 +- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/polly/CMakeLists.txt b/polly/CMakeLists.txt index fb62dbd3a09be..d6bcc8f7f285e 100644 --- a/polly/CMakeLists.txt +++ b/polly/CMakeLists.txt @@ -1,3 +1,5 @@ +include(GNUInstallDirs) + # Check if this is a in tree build. if (NOT DEFINED LLVM_MAIN_SRC_DIR) project(Polly) @@ -124,13 +126,13 @@ include_directories( if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) install(DIRECTORY include/ - DESTINATION include + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" FILES_MATCHING PATTERN "*.h" ) install(DIRECTORY ${POLLY_BINARY_DIR}/include/ - DESTINATION include + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" FILES_MATCHING PATTERN "*.h" PATTERN "CMakeFiles" EXCLUDE diff --git a/polly/cmake/CMakeLists.txt b/polly/cmake/CMakeLists.txt index 524d6069c117f..7a0190b69df65 100644 --- a/polly/cmake/CMakeLists.txt +++ b/polly/cmake/CMakeLists.txt @@ -1,5 +1,6 @@ # Keep this in sync with llvm/cmake/CMakeLists.txt! +include(ExtendPath) include(FindPrefixFromConfig) set(LLVM_INSTALL_PACKAGE_DIR "lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm") @@ -83,17 +84,18 @@ file(GENERATE # Generate PollyConfig.cmake for the install tree. unset(POLLY_EXPORTS) find_prefix_from_config(POLLY_CONFIG_CODE POLLY_INSTALL_PREFIX "${POLLY_INSTALL_PACKAGE_DIR}") -set(POLLY_CONFIG_LLVM_CMAKE_DIR "\${POLLY_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}") -set(POLLY_CONFIG_CMAKE_DIR "\${POLLY_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}") -set(POLLY_CONFIG_LIBRARY_DIRS "\${POLLY_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}") +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(base_includedir "\${POLLY_INSTALL_PREFIX}" "${CMAKE_INSTALL_INCLUDEDIR}") if (POLLY_BUNDLED_ISL) set(POLLY_CONFIG_INCLUDE_DIRS - "\${POLLY_INSTALL_PREFIX}/include" - "\${POLLY_INSTALL_PREFIX}/include/polly" + "${base_includedir}" + "${base_includedir}/polly" ) else() set(POLLY_CONFIG_INCLUDE_DIRS - "\${POLLY_INSTALL_PREFIX}/include" + "${base_includedir}" ${ISL_INCLUDE_DIRS} ) endif() @@ -110,12 +112,12 @@ set(POLLY_EXPORTS foreach(tgt IN LISTS POLLY_CONFIG_EXPORTED_TARGETS) get_target_property(tgt_type ${tgt} TYPE) if (tgt_type STREQUAL "EXECUTABLE") - set(tgt_prefix "bin/") + set(tgt_prefix "${CMAKE_INSTALL_BINDIR}") else() - set(tgt_prefix "lib/") + set(tgt_prefix "${CMAKE_INSTALL_LIBDIR}") endif() - set(tgt_path "\${POLLY_INSTALL_PREFIX}/${tgt_prefix}$") + extend_path(tgt_path "\${POLLY_INSTALL_PREFIX}" "${tgt_prefix}/$") if (NOT tgt_type STREQUAL "INTERFACE_LIBRARY") set(POLLY_EXPORTS diff --git a/polly/lib/External/CMakeLists.txt b/polly/lib/External/CMakeLists.txt index e3a5683fccdc5..2f912e7daeb21 100644 --- a/polly/lib/External/CMakeLists.txt +++ b/polly/lib/External/CMakeLists.txt @@ -290,7 +290,7 @@ if (POLLY_BUNDLED_ISL) install(DIRECTORY ${ISL_SOURCE_DIR}/include/ ${ISL_BINARY_DIR}/include/ - DESTINATION include/polly + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/polly" FILES_MATCHING PATTERN "*.h" PATTERN "CMakeFiles" EXCLUDE