diff options
| author | Louis Dionne <ldionne@apple.com> | 2019-04-09 18:35:56 +0000 |
|---|---|---|
| committer | Louis Dionne <ldionne@apple.com> | 2019-04-09 18:35:56 +0000 |
| commit | f7433f9623533d7901fa1f0eb3bf0aaebbbbd73d (patch) | |
| tree | eed63bb2db0d3933a8326b8de13821df291fb522 | |
| parent | 61e77b11d1bf0fa02cfce416c56e6a598619d8db (diff) | |
| download | bcm5719-llvm-f7433f9623533d7901fa1f0eb3bf0aaebbbbd73d.tar.gz bcm5719-llvm-f7433f9623533d7901fa1f0eb3bf0aaebbbbd73d.zip | |
[pstl][CMake] Install CMake export files
This allows other projects to depend on PSTL using the classic CMake
find_package protocol.
llvm-svn: 358028
| -rw-r--r-- | pstl/CMakeLists.txt | 42 | ||||
| -rw-r--r-- | pstl/cmake/ParallelSTLConfig.cmake.in | 8 |
2 files changed, 35 insertions, 15 deletions
diff --git a/pstl/CMakeLists.txt b/pstl/CMakeLists.txt index b6733bca66f..f4b14f7347d 100644 --- a/pstl/CMakeLists.txt +++ b/pstl/CMakeLists.txt @@ -27,6 +27,9 @@ if (NOT TBB_DIR) endif() endif() +############################################################################### +# Setup the ParallelSTL library target +############################################################################### add_library(ParallelSTL INTERFACE) add_library(pstl::ParallelSTL ALIAS ParallelSTL) target_compile_features(ParallelSTL INTERFACE cxx_std_17) @@ -55,19 +58,34 @@ target_include_directories(ParallelSTL $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include>) +############################################################################### +# Setup tests +############################################################################### +enable_testing() +add_subdirectory(test) + +############################################################################### +# Install the target and the associated CMake files +############################################################################### include(CMakePackageConfigHelpers) -write_basic_package_version_file( - ${CMAKE_CURRENT_BINARY_DIR}/ParallelSTLConfigVersion.cmake - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion) +write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/ParallelSTLConfigVersion.cmake" + COMPATIBILITY ExactVersion) -configure_file( - cmake/ParallelSTLConfig.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/ParallelSTLConfig.cmake - @ONLY) +configure_file(cmake/ParallelSTLConfig.cmake.in + "${CMAKE_CURRENT_BINARY_DIR}/ParallelSTLConfig.cmake" + @ONLY) -export(TARGETS ParallelSTL NAMESPACE pstl:: FILE ParallelSTLTargets.cmake) -export(PACKAGE ParallelSTL) +install(TARGETS ParallelSTL + EXPORT ParallelSTLTargets) +install(EXPORT ParallelSTLTargets + FILE ParallelSTLTargets.cmake + NAMESPACE pstl:: + DESTINATION lib/cmake/ParallelSTL) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ParallelSTLConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/ParallelSTLConfigVersion.cmake" + DESTINATION lib/cmake/ParallelSTL) +install(DIRECTORY include/pstl + DESTINATION include) -enable_testing() -add_subdirectory(test) +add_custom_target(install-pstl + COMMAND "${CMAKE_COMMAND}" -P "${PROJECT_BINARY_DIR}/cmake_install.cmake" -DCOMPONENT=ParallelSTL) diff --git a/pstl/cmake/ParallelSTLConfig.cmake.in b/pstl/cmake/ParallelSTLConfig.cmake.in index 5beb8f2ec47..516c8122b44 100644 --- a/pstl/cmake/ParallelSTLConfig.cmake.in +++ b/pstl/cmake/ParallelSTLConfig.cmake.in @@ -10,8 +10,10 @@ include(CMakeFindDependencyMacro) set(PARALLELSTL_BACKEND "@PARALLELSTL_BACKEND@") -if(PARALLELSTL_BACKEND STREQUAL "tbb") - find_dependency(TBB 2018 REQUIRED tbb) +if (PARALLELSTL_BACKEND STREQUAL "tbb") + find_dependency(TBB REQUIRED tbb) endif() -include("${CMAKE_CURRENT_LIST_DIR}/ParallelSTLTargets.cmake") +if (NOT TARGET pstl::ParallelSTL) + include("${CMAKE_CURRENT_LIST_DIR}/ParallelSTLTargets.cmake") +endif() |

