From 555ecfa0466960911d23d581d082f95bd52ffd5b Mon Sep 17 00:00:00 2001 From: Taylor Sasser Date: Mon, 21 Apr 2025 10:25:41 -0400 Subject: [PATCH] Add tests for install(PACKAGE_INFO) destination --- .../Destination-install-check.cmake | 5 +++++ .../RunCMake/InstallPackageInfo/Destination.cmake | 7 +++++++ .../RunCMake/InstallPackageInfo/RunCMakeTest.cmake | 14 ++++++++++++++ 3 files changed, 26 insertions(+) create mode 100644 Tests/RunCMake/InstallPackageInfo/Destination-install-check.cmake create mode 100644 Tests/RunCMake/InstallPackageInfo/Destination.cmake diff --git a/Tests/RunCMake/InstallPackageInfo/Destination-install-check.cmake b/Tests/RunCMake/InstallPackageInfo/Destination-install-check.cmake new file mode 100644 index 0000000000..f98c3ecdd0 --- /dev/null +++ b/Tests/RunCMake/InstallPackageInfo/Destination-install-check.cmake @@ -0,0 +1,5 @@ +include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake) + +file(READ "${RunCMake_BINARY_DIR}/install/test/foo.cps" content) +expect_value("${content}" "foo" "name") +expect_value("${content}" "interface" "components" "foo" "type") diff --git a/Tests/RunCMake/InstallPackageInfo/Destination.cmake b/Tests/RunCMake/InstallPackageInfo/Destination.cmake new file mode 100644 index 0000000000..da8ccc9a55 --- /dev/null +++ b/Tests/RunCMake/InstallPackageInfo/Destination.cmake @@ -0,0 +1,7 @@ +cmake_path(GET CMAKE_BINARY_DIR PARENT_PATH out_dir) +set(CMAKE_PREFIX_PATH "${out_dir}/install") +set(CMAKE_INSTALL_PREFIX "${out_dir}/install") + +add_library(foo INTERFACE) +install(TARGETS foo EXPORT foo) +install(PACKAGE_INFO foo DESTINATION test EXPORT foo) diff --git a/Tests/RunCMake/InstallPackageInfo/RunCMakeTest.cmake b/Tests/RunCMake/InstallPackageInfo/RunCMakeTest.cmake index 71910a8cfa..cf04fa7deb 100644 --- a/Tests/RunCMake/InstallPackageInfo/RunCMakeTest.cmake +++ b/Tests/RunCMake/InstallPackageInfo/RunCMakeTest.cmake @@ -10,6 +10,19 @@ set(RunCMake_TEST_OPTIONS "-DCMAKE_EXPERIMENTAL_EXPORT_PACKAGE_INFO:STRING=b80be207-778e-46ba-8080-b23bba22639e" ) +function(run_cmake_install test) + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${test}-build) + if (NOT RunCMake_GENERATOR_IS_MULTI_CONFIG) + list(APPEND RunCMake_TEST_OPTIONS -DCMAKE_BUILD_TYPE=Release) + endif() + + run_cmake(${test}) + + set(RunCMake_TEST_NO_CLEAN TRUE) + run_cmake_command(${test}-build ${CMAKE_COMMAND} --build . --config Release) + run_cmake_command(${test}-install ${CMAKE_COMMAND} --install . --config Release) +endfunction() + # Test incorrect usage run_cmake(BadArgs1) run_cmake(BadArgs2) @@ -36,3 +49,4 @@ run_cmake(Requirements) run_cmake(TargetTypes) run_cmake(DependsMultiple) run_cmake(DependsMultipleNotInstalled) +run_cmake_install(Destination)