summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorMatthew Woehlke <matthew.woehlke@kitware.com>2024-10-17 18:57:38 (GMT)
committerMatthew Woehlke <matthew.woehlke@kitware.com>2024-10-17 18:57:38 (GMT)
commitf04dd93c4736ecbc74624dbf2c1b6dd58ecf3ca4 (patch)
treea4b31154d4eef745d7ae564efd44418cb6e7d695 /Tests
parent773eff6d8e6d2e6b93c41e0f41951cdb9c8b4efb (diff)
downloadCMake-f04dd93c4736ecbc74624dbf2c1b6dd58ecf3ca4.zip
CMake-f04dd93c4736ecbc74624dbf2c1b6dd58ecf3ca4.tar.gz
CMake-f04dd93c4736ecbc74624dbf2c1b6dd58ecf3ca4.tar.bz2
cmExportPackageInfoGenerator: Fix version properties
Fix a small bug in cmExportPackageInfoGenerator that caused extended version properties ("compat_version", "version_schema")) to be emitted when empty. Add a test to ensure this is working as intended. Fixes: #26264
Diffstat (limited to 'Tests')
-rw-r--r--Tests/RunCMake/PackageInfo/MinimalVersion-check.cmake21
-rw-r--r--Tests/RunCMake/PackageInfo/MinimalVersion.cmake19
-rw-r--r--Tests/RunCMake/PackageInfo/RunCMakeTest.cmake1
3 files changed, 41 insertions, 0 deletions
diff --git a/Tests/RunCMake/PackageInfo/MinimalVersion-check.cmake b/Tests/RunCMake/PackageInfo/MinimalVersion-check.cmake
new file mode 100644
index 0000000..8facefa
--- /dev/null
+++ b/Tests/RunCMake/PackageInfo/MinimalVersion-check.cmake
@@ -0,0 +1,21 @@
+include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake)
+
+set(out_dir "${RunCMake_BINARY_DIR}/MinimalVersion-build/CMakeFiles/Export/510c5684a4a8a792eadfb55bc9744983")
+
+file(READ "${out_dir}/foo1.cps" content)
+expect_value("${content}" "foo1" "name")
+expect_value("${content}" "1.0" "version")
+expect_missing("${content}" "compat_version")
+expect_missing("${content}" "version_schema")
+
+file(READ "${out_dir}/foo2.cps" content)
+expect_value("${content}" "foo2" "name")
+expect_value("${content}" "1.5" "version")
+expect_value("${content}" "1.0" "compat_version")
+expect_missing("${content}" "version_schema")
+
+file(READ "${out_dir}/foo3.cps" content)
+expect_value("${content}" "foo3" "name")
+expect_value("${content}" "1.0" "version")
+expect_missing("${content}" "compat_version")
+expect_value("${content}" "simple" "version_schema")
diff --git a/Tests/RunCMake/PackageInfo/MinimalVersion.cmake b/Tests/RunCMake/PackageInfo/MinimalVersion.cmake
new file mode 100644
index 0000000..ea4679c
--- /dev/null
+++ b/Tests/RunCMake/PackageInfo/MinimalVersion.cmake
@@ -0,0 +1,19 @@
+add_library(foo INTERFACE)
+install(TARGETS foo EXPORT foo DESTINATION .)
+
+install(PACKAGE_INFO foo1
+ EXPORT foo
+ VERSION 1.0
+ DESTINATION cps)
+
+install(PACKAGE_INFO foo2
+ EXPORT foo
+ VERSION 1.5
+ COMPAT_VERSION 1.0
+ DESTINATION cps)
+
+install(PACKAGE_INFO foo3
+ EXPORT foo
+ VERSION 1.0
+ VERSION_SCHEMA simple
+ DESTINATION cps)
diff --git a/Tests/RunCMake/PackageInfo/RunCMakeTest.cmake b/Tests/RunCMake/PackageInfo/RunCMakeTest.cmake
index 54a32d5..e90c371 100644
--- a/Tests/RunCMake/PackageInfo/RunCMakeTest.cmake
+++ b/Tests/RunCMake/PackageInfo/RunCMakeTest.cmake
@@ -27,6 +27,7 @@ run_cmake(Appendix)
run_cmake(InterfaceProperties)
run_cmake(Metadata)
run_cmake(Minimal)
+run_cmake(MinimalVersion)
run_cmake(LowerCaseFile)
run_cmake(Requirements)
run_cmake(TargetTypes)