
Modify how CMake handles required components of a CPS transitive dependency to not pass them as COMPONENTS if a CMake-script package is found as the resolved dependency. This is necessary as many CMake-script package description files do not treat component requests as target requests (which, in CPS-land, they effectively are), but do implement logic to mark themselves 'not found' if requested components are missing. As a result, passing in the required targets as required components is likely to cause the dependency to be spuriously not found if it is only available via a CMake-script package configuration file. Fix this by introducing a new 'required targets' concept, and by passing CPS component requirements as both required targets and optional components. The latter serves as a hint for packages that might provide only a subset of themselves. The former is used to post-validate a CMake-script package, or is folded on-the-fly into required components when considering CPS packages. Note that this functionality is not exposed to the user at this time, and is only used when resolving transitive dependencies for a CPS package.
19 lines
714 B
Plaintext
19 lines
714 B
Plaintext
CMake Error in cps/[Tt]ransitive[Mm]issing[Cc][Pp][Ss]\.cps:
|
|
Could not find a configuration file for package "ComponentTest" that is
|
|
compatible with requested version ""\.
|
|
|
|
The following configuration files were considered but not accepted:
|
|
(
|
|
[^
|
|
]*/Tests/RunCMake/find_package-CPS/cps/[Cc]omponent[Tt]est\.cps, version: 1\.0)+
|
|
|
|
Call Stack \(most recent call first\):
|
|
MissingTransitiveComponentCPS\.cmake:[0-9]+ \(find_package\)
|
|
CMakeLists\.txt:[0-9]+ \(include\)
|
|
+
|
|
CMake Error at MissingTransitiveComponentCPS\.cmake:[0-9]+ \(find_package\):
|
|
find_package could not find ComponentTest, required by
|
|
TransitiveMissingCPS\.
|
|
Call Stack \(most recent call first\):
|
|
CMakeLists\.txt:[0-9]+ \(include\)
|