Skip to content

Commit

Permalink
[polly][cmake] Use GNUInstallDirs to support custom installation dirs
Browse files Browse the repository at this point in the history
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
  • Loading branch information
Ericson2314 committed Jan 18, 2022
1 parent ae1573e commit d3b756c
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 12 deletions.
6 changes: 4 additions & 2 deletions polly/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
include(GNUInstallDirs)

# Check if this is a in tree build.
if (NOT DEFINED LLVM_MAIN_SRC_DIR)
project(Polly)
Expand Down Expand Up @@ -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
Expand Down
20 changes: 11 additions & 9 deletions polly/cmake/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -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")
Expand Down Expand Up @@ -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()
Expand All @@ -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}$<TARGET_FILE_NAME:${tgt}>")
extend_path(tgt_path "\${POLLY_INSTALL_PREFIX}" "${tgt_prefix}/$<TARGET_FILE_NAME:${tgt}>")

if (NOT tgt_type STREQUAL "INTERFACE_LIBRARY")
set(POLLY_EXPORTS
Expand Down
2 changes: 1 addition & 1 deletion polly/lib/External/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit d3b756c

Please sign in to comment.