Files
Vito Gamberini a4f08400f4 CPS/PkgC: Add PkgC interop to CPS
Extend the automatic export system of install(PACKAGE_INFO) and
export(PACKAGE_INFO) to handle targets created with cmake_pkg_config,
and allow find_package to resolve CPS requirements in the pkg-config
domain.

A pkg-config package has no components of its own, so it is exposed to
CPS as a package named after itself with a single component of the same
name; such references take the form "<PkgName>:<PkgName>" and resolve
directly to the foreign target which provides the package.  The domains
in which a requirement may be found are recorded in a CMake extension
section rather than a non-standard `domains` attribute.
2026-09-24 14:47:59 -04:00

58 lines
1.6 KiB
CMake

include(RunCMake)
# Test incorrect usage
run_cmake(BadArgs0)
run_cmake(BadArgs1)
run_cmake(BadArgs2)
run_cmake(BadArgs3)
run_cmake(BadName)
run_cmake(DuplicateOutput)
run_cmake(BadDefaultTarget)
run_cmake(ReferencesNonExportedTarget)
run_cmake(ReferencesWronglyExportedTarget)
run_cmake(ReferencesWronglyImportedTarget)
run_cmake(ReferencesWronglyNamespacedTarget)
run_cmake(DependsMultipleDifferentNamespace)
run_cmake(DependsMultipleDifferentSets)
run_cmake(LinkInterfaceGeneratorExpression)
run_cmake(CompileOnlyRecursive)
run_cmake(LinkOnlyRecursive)
foreach(imported IN ITEMS ON OFF)
foreach(pkg_config_first IN ITEMS ON OFF)
set(RunCMake_TEST_VARIANT_DESCRIPTION
" (imported=${imported}, pkg_config_first=${pkg_config_first})")
run_cmake_with_options(PkgConfigCollision
-Dimported=${imported}
-Dpkg_config_first=${pkg_config_first})
endforeach()
endforeach()
unset(RunCMake_TEST_VARIANT_DESCRIPTION)
# Test functionality
run_cmake(Appendix)
run_cmake(InterfaceProperties)
run_cmake(Metadata)
run_cmake(ProjectMetadata)
run_cmake(NoProjectMetadata)
run_cmake(Minimal)
run_cmake(MinimalVersion)
run_cmake(LowerCaseFile)
run_cmake(Requirements)
run_cmake(PkgConfig)
run_cmake(LinkDependentLibraries)
run_cmake(PrivateLinkDependency)
run_cmake(ExportSymbolicComponent)
run_cmake(TargetTypes)
run_cmake(DependsMultiple)
run_cmake(CompileOnly)
run_cmake(LinkOnly)
run_cmake(Config)
run_cmake(EmptyConfig)
run_cmake(FileSetHeaders)
run_cmake(DependencyVersionCMake)
run_cmake(DependencyVersionCps)
run_cmake(TransitiveSymbolicComponent)
run_cmake(VersionCheck)
run_cmake(VersionCheckWarning)
run_cmake(VersionCheckError)