mirror of
https://gitlab.kitware.com/cmake/cmake.git
synced 2026-09-25 04:09:36 +03:00
CPS, SBOM: Fix default output destination
- Change default CPS install path on Windows from `cps` to `cps/<name>`, per community recommendation that only paths containing the package name should be considered as "officially" supported search locations (see https://github.com/cps-org/cps/issues/79#issuecomment-2831102822). - Change `export` to write to a subdirectory that allows the build tree to be used as a search root. - Change SBOM destinations to be consistent with the preceding. Issue: #27785
This commit is contained in:
@@ -161,7 +161,8 @@ tree. The imported targets are implicitly in the namespace ``<package-name>``.
|
||||
|
||||
The default file name is ``<package-name>[-<appendix-name>].cps``. If the
|
||||
``LOWER_CASE_FILE`` option is given, the file name will use the package name
|
||||
converted to lower case.
|
||||
converted to lower case. Files are written to the ``cps/<package-name>``
|
||||
subdirectory of the current build directory.
|
||||
|
||||
See :command:`install(PACKAGE_INFO)` for a description of the other options.
|
||||
|
||||
@@ -188,7 +189,9 @@ Exporting Software Bill of Materials (SBOM) Documents
|
||||
Experimental. Gated by ``CMAKE_EXPERIMENTAL_GENERATE_SBOM``.
|
||||
|
||||
Generates a software bill of materials (SBOM) document describing the targets
|
||||
in the export ``<export-name>`` and their dependencies in the build tree
|
||||
in the export ``<export-name>`` and their dependencies in the build tree.
|
||||
Files are written to the ``sbom/<sbom-name>`` subdirectory of the current
|
||||
build directory.
|
||||
|
||||
See :command:`install(SBOM)` for details about the supported SBOM formats and a
|
||||
description of the other options.
|
||||
|
||||
@@ -292,3 +292,9 @@ Changes made since CMake 4.3.0 include the following.
|
||||
* These versions made no changes to documented features or interfaces.
|
||||
Some implementation updates were made to support ecosystem changes
|
||||
and/or fix regressions.
|
||||
|
||||
.. 4.3.3
|
||||
|
||||
* The :command:`export(PACKAGE_INFO)` command now writes to the
|
||||
``cps/<package-name>`` subdirectory of the current build directory, rather
|
||||
than directly to the current build directory.
|
||||
|
||||
@@ -375,7 +375,8 @@ static bool HandleSpecialExportMode(std::vector<std::string> const& args,
|
||||
cmMakefile& mf = status.GetMakefile();
|
||||
cmGlobalGenerator* gg = mf.GetGlobalGenerator();
|
||||
|
||||
std::string const& dir = mf.GetCurrentBinaryDirectory();
|
||||
std::string const& dir =
|
||||
arguments.GetDefaultDestination(mf.GetCurrentBinaryDirectory());
|
||||
std::string const fname = cmStrCat(dir, '/', arguments.GetPackageFileName());
|
||||
|
||||
if (gg->GetExportedTargetsFile(fname)) {
|
||||
|
||||
@@ -2141,10 +2141,10 @@ bool HandleMappedPackageInfo(
|
||||
std::string dest = std::string{ directive };
|
||||
if (dest.empty()) {
|
||||
if (helper.Makefile->GetSafeDefinition("CMAKE_SYSTEM_NAME") == "Windows") {
|
||||
dest = std::string{ "cps"_s };
|
||||
dest = arguments.GetDefaultDestination();
|
||||
} else {
|
||||
dest = cmStrCat(helper.GetLibraryDestination(nullptr), "/cps/",
|
||||
arguments.GetPackageDirName());
|
||||
dest =
|
||||
arguments.GetDefaultDestination(helper.GetLibraryDestination(nullptr));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2356,10 +2356,10 @@ bool HandlePackageInfoMode(std::vector<std::string> const& args,
|
||||
std::string dest = ica.GetDestination();
|
||||
if (dest.empty()) {
|
||||
if (helper.Makefile->GetSafeDefinition("CMAKE_SYSTEM_NAME") == "Windows") {
|
||||
dest = std::string{ "cps"_s };
|
||||
dest = arguments.GetDefaultDestination();
|
||||
} else {
|
||||
dest = cmStrCat(helper.GetLibraryDestination(nullptr), "/cps/",
|
||||
arguments.GetPackageDirName());
|
||||
dest =
|
||||
arguments.GetDefaultDestination(helper.GetLibraryDestination(nullptr));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2558,10 +2558,10 @@ bool HandleSbomMode(std::vector<std::string> const& args,
|
||||
std::string dest = ica.GetDestination();
|
||||
if (dest.empty()) {
|
||||
if (helper.Makefile->GetSafeDefinition("CMAKE_SYSTEM_NAME") == "Windows") {
|
||||
dest = std::string{ "/sbom/"_s };
|
||||
dest = arguments.GetDefaultDestination();
|
||||
} else {
|
||||
dest = cmStrCat(helper.GetLibraryDestination(nullptr), "/sbom/",
|
||||
arguments.GetPackageDirName());
|
||||
dest =
|
||||
arguments.GetDefaultDestination(helper.GetLibraryDestination(nullptr));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -89,3 +89,12 @@ std::string cmPackageInfoArguments::GetPackageFileName() const
|
||||
}
|
||||
return cmStrCat(pkgNameOnDisk, ".cps"_s);
|
||||
}
|
||||
|
||||
std::string cmPackageInfoArguments::GetDefaultDestination(
|
||||
std::string const& root) const
|
||||
{
|
||||
if (root.empty()) {
|
||||
return cmStrCat("cps/"_s, this->GetPackageDirName());
|
||||
}
|
||||
return cmStrCat(root, '/', "cps/"_s, this->GetPackageDirName());
|
||||
}
|
||||
|
||||
@@ -43,6 +43,7 @@ public:
|
||||
std::string GetNamespace() const;
|
||||
std::string GetPackageDirName() const;
|
||||
std::string GetPackageFileName() const;
|
||||
std::string GetDefaultDestination(std::string const& root = {}) const;
|
||||
|
||||
bool Check(cmExecutionStatus& status) const override;
|
||||
|
||||
|
||||
@@ -87,6 +87,15 @@ std::string cmSbomArguments::GetPackageDirName() const
|
||||
return this->PackageName;
|
||||
}
|
||||
|
||||
std::string cmSbomArguments::GetDefaultDestination(
|
||||
std::string const& root) const
|
||||
{
|
||||
if (root.empty()) {
|
||||
return cmStrCat("sbom/"_s, this->GetPackageDirName());
|
||||
}
|
||||
return cmStrCat(root, '/', "sbom/"_s, this->GetPackageDirName());
|
||||
}
|
||||
|
||||
cmSbomArguments::SbomFormat cmSbomArguments::GetFormat() const
|
||||
{
|
||||
if (this->Format.empty()) {
|
||||
|
||||
@@ -37,6 +37,7 @@ public:
|
||||
std::string GetNamespace() const;
|
||||
std::string GetPackageDirName() const;
|
||||
std::string GetPackageFileName() const;
|
||||
std::string GetDefaultDestination(std::string const& root = {}) const;
|
||||
SbomFormat GetFormat() const;
|
||||
|
||||
ArgumentParser::NonEmpty<std::string> Format;
|
||||
|
||||
@@ -299,7 +299,7 @@ if ("export_bmi" IN_LIST CMake_TEST_MODULE_COMPILATION)
|
||||
run_cxx_module_test(exp-command-sepdir-build)
|
||||
run_cxx_module_test(exp-trans-targets-build)
|
||||
run_cxx_module_test(exp-trans-mods1-build)
|
||||
run_cxx_module_test(exp-trans-mods-build exp-trans-mods-build "-DCMAKE_PREFIX_PATH=${RunCMake_BINARY_DIR}/exp-trans-mods1-build-build" "-Dexport_transitive_modules1_cps_DIR=${RunCMake_BINARY_DIR}/exp-trans-mods1-build-build")
|
||||
run_cxx_module_test(exp-trans-mods-build exp-trans-mods-build "-DCMAKE_PREFIX_PATH=${RunCMake_BINARY_DIR}/exp-trans-mods1-build-build")
|
||||
run_cxx_module_test(exp-with-headers-build)
|
||||
|
||||
if ("collation" IN_LIST CMake_TEST_MODULE_COMPILATION AND
|
||||
|
||||
@@ -54,7 +54,7 @@ add_test(NAME export_bmi_and_interfaces_build
|
||||
"${CMAKE_COMMAND}"
|
||||
"-Dexpected_source_dir=${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
"-Dexpected_binary_dir=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-Dexport_bmi_and_interfaces_DIR=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-DCMAKE_PREFIX_PATH=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
${generator}
|
||||
-S "${CMAKE_CURRENT_SOURCE_DIR}/test"
|
||||
-B "${CMAKE_CURRENT_BINARY_DIR}/test")
|
||||
|
||||
@@ -34,8 +34,7 @@ add_test(NAME export_sepdir_build
|
||||
COMMAND
|
||||
"${CMAKE_COMMAND}"
|
||||
"-Dexpected_dir=${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
"-Dexport_sepdir_DIR=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-Dexport_sepdir_cps_DIR=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-DCMAKE_PREFIX_PATH=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
${generator}
|
||||
-S "${CMAKE_CURRENT_SOURCE_DIR}/test"
|
||||
-B "${CMAKE_CURRENT_BINARY_DIR}/test")
|
||||
|
||||
@@ -56,8 +56,7 @@ add_test(NAME export_interfaces_build
|
||||
"${CMAKE_COMMAND}"
|
||||
"-Dexpected_source_dir=${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
"-Dexpected_binary_dir=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-Dexport_interfaces_DIR=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-Dexport_interfaces_cps_DIR=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-DCMAKE_PREFIX_PATH=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
${generator}
|
||||
-S "${CMAKE_CURRENT_SOURCE_DIR}/test"
|
||||
-B "${CMAKE_CURRENT_BINARY_DIR}/test")
|
||||
|
||||
@@ -51,7 +51,7 @@ add_test(NAME export_interfaces_build
|
||||
COMMAND
|
||||
"${CMAKE_COMMAND}"
|
||||
"-Dexpected_dir=${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
"-Dexport_interfaces_no_properties_DIR=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-DCMAKE_PREFIX_PATH=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
${generator}
|
||||
-S "${CMAKE_CURRENT_SOURCE_DIR}/test"
|
||||
-B "${CMAKE_CURRENT_BINARY_DIR}/test")
|
||||
|
||||
@@ -62,8 +62,7 @@ add_test(NAME export_include_directories_build
|
||||
"${CMAKE_COMMAND}"
|
||||
"-Dexpected_source_dir=${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
"-Dexpected_binary_dir=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-Dexport_include_directories_DIR=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-Dexport_include_directories_cps_DIR=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-DCMAKE_PREFIX_PATH=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
${generator}
|
||||
-S "${CMAKE_CURRENT_SOURCE_DIR}/test"
|
||||
-B "${CMAKE_CURRENT_BINARY_DIR}/test")
|
||||
|
||||
@@ -42,7 +42,7 @@ add_test(NAME export_include_directories_old_cmake_build
|
||||
"${CMAKE_COMMAND}"
|
||||
"-Dexpected_source_dir=${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
"-Dexpected_binary_dir=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-Dexport_include_directories_old_cmake_DIR=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-DCMAKE_PREFIX_PATH=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
${generator}
|
||||
-S "${CMAKE_CURRENT_SOURCE_DIR}/test"
|
||||
-B "${CMAKE_CURRENT_BINARY_DIR}/test")
|
||||
|
||||
@@ -68,9 +68,7 @@ add_test(NAME export_transitive_modules_build
|
||||
"${CMAKE_COMMAND}"
|
||||
"-Dexpected_source_dir=${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
"-Dexpected_binary_dir=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-Dexport_transitive_modules_DIR=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-Dexport_transitive_modules1_cps_DIR=${CMAKE_PREFIX_PATH}"
|
||||
"-Dexport_transitive_modules_cps_DIR=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-DCMAKE_PREFIX_PATH=${CMAKE_CURRENT_BINARY_DIR};${CMAKE_PREFIX_PATH}"
|
||||
${generator}
|
||||
-S "${CMAKE_CURRENT_SOURCE_DIR}/test"
|
||||
-B "${CMAKE_CURRENT_BINARY_DIR}/test")
|
||||
|
||||
@@ -45,8 +45,7 @@ add_test(NAME export_transitive_modules1_build
|
||||
"${CMAKE_COMMAND}"
|
||||
"-Dexpected_source_dir=${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
"-Dexpected_binary_dir=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-Dexport_transitive_modules1_DIR=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-Dexport_transitive_modules1_cps_DIR=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-DCMAKE_PREFIX_PATH=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
${generator}
|
||||
-S "${CMAKE_CURRENT_SOURCE_DIR}/test"
|
||||
-B "${CMAKE_CURRENT_BINARY_DIR}/test")
|
||||
|
||||
@@ -65,7 +65,7 @@ add_test(NAME export_transitive_targets_build
|
||||
"${CMAKE_COMMAND}"
|
||||
"-Dexpected_source_dir=${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
"-Dexpected_binary_dir=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-Dexport_transitive_targets_DIR=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-DCMAKE_PREFIX_PATH=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
${generator}
|
||||
-S "${CMAKE_CURRENT_SOURCE_DIR}/test"
|
||||
-B "${CMAKE_CURRENT_BINARY_DIR}/test")
|
||||
|
||||
@@ -104,7 +104,7 @@ add_test(NAME export_usage_build
|
||||
"${CMAKE_COMMAND}"
|
||||
"-Dexpected_dir=${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
"-Dexport_interfaces_flag=${variable_flag}"
|
||||
"-Dexport_usage_DIR=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-DCMAKE_PREFIX_PATH=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
${generator}
|
||||
-S "${CMAKE_CURRENT_SOURCE_DIR}/test"
|
||||
-B "${CMAKE_CURRENT_BINARY_DIR}/test")
|
||||
|
||||
@@ -46,8 +46,7 @@ endif ()
|
||||
add_test(NAME export_with_headers_build
|
||||
COMMAND
|
||||
"${CMAKE_COMMAND}"
|
||||
"-Dexport_with_headers_DIR=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-Dexport_with_headers_cps_DIR=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-DCMAKE_PREFIX_PATH=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
${generator}
|
||||
-S "${CMAKE_CURRENT_SOURCE_DIR}/test"
|
||||
-B "${CMAKE_CURRENT_BINARY_DIR}/test")
|
||||
|
||||
@@ -53,7 +53,7 @@ add_test(NAME import_std_export_no_std_build
|
||||
COMMAND
|
||||
"${CMAKE_COMMAND}"
|
||||
"-Dexpected_dir=${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
"-Dimport_std_export_no_std_DIR=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-DCMAKE_PREFIX_PATH=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
${generator}
|
||||
-S "${CMAKE_CURRENT_SOURCE_DIR}/test"
|
||||
-B "${CMAKE_CURRENT_BINARY_DIR}/test")
|
||||
|
||||
@@ -48,7 +48,7 @@ add_test(NAME import_std_not_in_export_build
|
||||
COMMAND
|
||||
"${CMAKE_COMMAND}"
|
||||
"-Dexpected_dir=${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
"-Dimport_std_not_in_export_DIR=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"-DCMAKE_PREFIX_PATH=${CMAKE_CURRENT_BINARY_DIR}"
|
||||
${generator}
|
||||
-S "${CMAKE_CURRENT_SOURCE_DIR}/test"
|
||||
-B "${CMAKE_CURRENT_BINARY_DIR}/test")
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
project(TestLibrary C)
|
||||
|
||||
set(liba_DIR "${CMAKE_BINARY_DIR}/../TestLibrary-build")
|
||||
set(libb_DIR "${CMAKE_BINARY_DIR}/../TestLibrary-build")
|
||||
set(liba_DIR "${CMAKE_BINARY_DIR}/../TestLibrary-build/cps/liba")
|
||||
set(libb_DIR "${CMAKE_BINARY_DIR}/../TestLibrary-build/cps/libb")
|
||||
|
||||
find_package(libb REQUIRED COMPONENTS libb)
|
||||
|
||||
|
||||
@@ -2,13 +2,13 @@ include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake)
|
||||
|
||||
set(out_dir "${RunCMake_BINARY_DIR}/Appendix-build")
|
||||
|
||||
file(READ "${out_dir}/foo.cps" content)
|
||||
file(READ "${out_dir}/cps/foo/foo.cps" content)
|
||||
expect_value("${content}" "foo" "name")
|
||||
expect_value("${content}" "interface" "components" "mammal" "type")
|
||||
expect_value("${content}" "LGPL-3.0-or-later" "default_license")
|
||||
expect_value("${content}" "1.0" "version")
|
||||
|
||||
file(READ "${out_dir}/foo-dog.cps" content)
|
||||
file(READ "${out_dir}/cps/foo/foo-dog.cps" content)
|
||||
expect_value("${content}" "foo" "name")
|
||||
expect_value("${content}" "interface" "components" "canine" "type")
|
||||
expect_value("${content}" "GPL-3.0-or-later" "default_license")
|
||||
|
||||
@@ -2,7 +2,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake)
|
||||
|
||||
set(out_dir "${RunCMake_BINARY_DIR}/CompileOnly-build")
|
||||
|
||||
file(READ "${out_dir}/bar.cps" content)
|
||||
file(READ "${out_dir}/cps/bar/bar.cps" content)
|
||||
string(JSON component GET "${content}" "components" "bar")
|
||||
expect_array("${component}" 2 "compile_requires")
|
||||
expect_value("${component}" "foo:linkOnlyOne" "compile_requires" 0)
|
||||
|
||||
@@ -2,7 +2,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake)
|
||||
|
||||
set(out_dir "${RunCMake_BINARY_DIR}/Config-build")
|
||||
|
||||
file(READ "${out_dir}/foo.cps" content)
|
||||
file(READ "${out_dir}/cps/foo/foo.cps" content)
|
||||
|
||||
if(RunCMake_GENERATOR_IS_MULTI_CONFIG)
|
||||
foreach(config FooConfig BarConfig)
|
||||
|
||||
@@ -2,7 +2,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake)
|
||||
|
||||
set(out_dir "${RunCMake_BINARY_DIR}/DependencyVersionCMake-build")
|
||||
|
||||
file(READ "${out_dir}/foo.cps" content)
|
||||
file(READ "${out_dir}/cps/foo/foo.cps" content)
|
||||
expect_value("${content}" "foo" "name")
|
||||
expect_array("${content}" 1 "requires" "bar" "components")
|
||||
expect_value("${content}" "bar" "requires" "bar" "components" 0)
|
||||
|
||||
@@ -2,7 +2,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake)
|
||||
|
||||
set(out_dir "${RunCMake_BINARY_DIR}/DependencyVersionCps-build/")
|
||||
|
||||
file(READ "${out_dir}/foo.cps" content)
|
||||
file(READ "${out_dir}/cps/foo/foo.cps" content)
|
||||
expect_value("${content}" "foo" "name")
|
||||
expect_array("${content}" 1 "requires" "baz" "components")
|
||||
expect_value("${content}" "baz" "requires" "baz" "components" 0)
|
||||
|
||||
@@ -2,8 +2,8 @@ CMake Error in CMakeLists\.txt:
|
||||
export called with target "bar" which requires target "foo" that is not in
|
||||
this export set, but in another export set which is exported multiple times
|
||||
with different namespaces:.*
|
||||
.*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentNamespace-build/foo\.cmake,.*
|
||||
.*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentNamespace-build/foo\.cps\.
|
||||
.*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentNamespace-build/cps/foo/foo\.cps,.*
|
||||
.*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentNamespace-build/foo\.cmake\.
|
||||
|
||||
An exported target cannot depend upon another target which is exported in
|
||||
more than one export set or with more than one namespace\. Consider
|
||||
@@ -14,8 +14,8 @@ CMake Error in CMakeLists\.txt:
|
||||
export called with target "bar" which requires target "foo" that is not in
|
||||
this export set, but in another export set which is exported multiple times
|
||||
with different namespaces:.*
|
||||
.*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentNamespace-build/foo\.cmake,.*
|
||||
.*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentNamespace-build/foo\.cps\.
|
||||
.*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentNamespace-build/cps/foo/foo\.cps,.*
|
||||
.*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentNamespace-build/foo\.cmake\.
|
||||
|
||||
An exported target cannot depend upon another target which is exported in
|
||||
more than one export set or with more than one namespace\. Consider
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
CMake Error in CMakeLists\.txt:
|
||||
export called with target "bar" which requires target "foo" that is not in
|
||||
this export set, but in multiple other export sets:.*
|
||||
.*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentSets-build/cps/foo/foo\.cps,.*
|
||||
.*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentSets-build/foo-alt\.cmake,.*
|
||||
.*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentSets-build/foo\.cmake,.*
|
||||
.*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentSets-build/foo\.cps\.
|
||||
.*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentSets-build/foo\.cmake\.
|
||||
|
||||
An exported target cannot depend upon another target which is exported in
|
||||
more than one export set or with more than one namespace\. Consider
|
||||
@@ -13,9 +13,9 @@ CMake Error in CMakeLists\.txt:
|
||||
CMake Error in CMakeLists\.txt:
|
||||
export called with target "bar" which requires target "foo" that is not in
|
||||
this export set, but in multiple other export sets:.*
|
||||
.*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentSets-build/cps/foo/foo\.cps,.*
|
||||
.*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentSets-build/foo-alt\.cmake,.*
|
||||
.*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentSets-build/foo\.cmake,.*
|
||||
.*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentSets-build/foo\.cps\.
|
||||
.*/Tests/RunCMake/ExportPackageInfo/DependsMultipleDifferentSets-build/foo\.cmake\.
|
||||
|
||||
An exported target cannot depend upon another target which is exported in
|
||||
more than one export set or with more than one namespace\. Consider
|
||||
|
||||
@@ -2,6 +2,6 @@ include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake)
|
||||
|
||||
set(out_dir "${RunCMake_BINARY_DIR}/EmptyConfig-build")
|
||||
|
||||
file(READ "${out_dir}/foo.cps" content)
|
||||
file(READ "${out_dir}/cps/foo/foo.cps" content)
|
||||
|
||||
expect_object("${content}" "components" "foo" "configurations" "noconfig")
|
||||
|
||||
@@ -2,6 +2,6 @@ include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake)
|
||||
|
||||
set(out_dir "${RunCMake_BINARY_DIR}/ExportSymbolicComponent-build")
|
||||
|
||||
file(READ "${out_dir}/foo.cps" content)
|
||||
file(READ "${out_dir}/cps/foo/foo.cps" content)
|
||||
expect_value("${content}" "foo" "name")
|
||||
expect_value("${content}" "symbolic" "components" "foo" "type")
|
||||
|
||||
@@ -2,7 +2,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake)
|
||||
|
||||
set(out_dir "${RunCMake_BINARY_DIR}/FileSetHeaders-build")
|
||||
|
||||
file(READ "${out_dir}/foo.cps" content)
|
||||
file(READ "${out_dir}/cps/foo/foo.cps" content)
|
||||
|
||||
string(JSON component GET "${content}" "components" "foo")
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake)
|
||||
|
||||
set(out_dir "${RunCMake_BINARY_DIR}/InterfaceProperties-build")
|
||||
|
||||
file(READ "${out_dir}/foo.cps" content)
|
||||
file(READ "${out_dir}/cps/foo/foo.cps" content)
|
||||
expect_value("${content}" "foo" "name")
|
||||
|
||||
string(JSON component GET "${content}" "components" "foo")
|
||||
|
||||
@@ -2,7 +2,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake)
|
||||
|
||||
set(out_dir "${RunCMake_BINARY_DIR}/LinkDependentLibraries-build")
|
||||
|
||||
file(READ "${out_dir}/dyld.cps" content)
|
||||
file(READ "${out_dir}/cps/dyld/dyld.cps" content)
|
||||
expect_value("${content}" "dyld" "name")
|
||||
expect_value("${content}" "dylib" "components" "private" "type")
|
||||
expect_value("${content}" "dylib" "components" "public" "type")
|
||||
|
||||
@@ -2,7 +2,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake)
|
||||
|
||||
set(out_dir "${RunCMake_BINARY_DIR}/LinkOnly-build")
|
||||
|
||||
file(READ "${out_dir}/bar.cps" content)
|
||||
file(READ "${out_dir}/cps/bar/bar.cps" content)
|
||||
string(JSON component GET "${content}" "components" "bar")
|
||||
expect_array("${component}" 2 "link_requires")
|
||||
expect_value("${component}" "foo:linkOnlyOne" "link_requires" 0)
|
||||
|
||||
@@ -2,8 +2,8 @@ include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake)
|
||||
|
||||
set(out_dir "${RunCMake_BINARY_DIR}/LowerCaseFile-build")
|
||||
|
||||
file(READ "${out_dir}/lowercase.cps" content)
|
||||
file(READ "${out_dir}/cps/lowercase/lowercase.cps" content)
|
||||
expect_value("${content}" "LowerCase" "name")
|
||||
|
||||
file(READ "${out_dir}/PreserveCase.cps" content)
|
||||
file(READ "${out_dir}/cps/PreserveCase/PreserveCase.cps" content)
|
||||
expect_value("${content}" "PreserveCase" "name")
|
||||
|
||||
@@ -2,7 +2,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake)
|
||||
|
||||
set(out_dir "${RunCMake_BINARY_DIR}/Metadata-build")
|
||||
|
||||
file(READ "${out_dir}/foo.cps" content)
|
||||
file(READ "${out_dir}/cps/foo/foo.cps" content)
|
||||
expect_value("${content}" "foo" "name")
|
||||
expect_value("${content}" "1.2.3" "version")
|
||||
expect_value("${content}" "1.2.0" "compat_version")
|
||||
|
||||
@@ -2,7 +2,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake)
|
||||
|
||||
set(out_dir "${RunCMake_BINARY_DIR}/Minimal-build")
|
||||
|
||||
file(READ "${out_dir}/foo.cps" content)
|
||||
file(READ "${out_dir}/cps/foo/foo.cps" content)
|
||||
expect_value("${content}" "foo" "name")
|
||||
expect_value("${content}" "interface" "components" "foo" "type")
|
||||
expect_missing("${content}" "version")
|
||||
|
||||
@@ -2,19 +2,19 @@ include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake)
|
||||
|
||||
set(out_dir "${RunCMake_BINARY_DIR}/MinimalVersion-build")
|
||||
|
||||
file(READ "${out_dir}/foo1.cps" content)
|
||||
file(READ "${out_dir}/cps/foo1/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)
|
||||
file(READ "${out_dir}/cps/foo2/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)
|
||||
file(READ "${out_dir}/cps/foo3/foo3.cps" content)
|
||||
expect_value("${content}" "foo3" "name")
|
||||
expect_value("${content}" "1.0" "version")
|
||||
expect_missing("${content}" "compat_version")
|
||||
|
||||
@@ -2,7 +2,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake)
|
||||
|
||||
set(out_dir "${RunCMake_BINARY_DIR}/NoProjectMetadata-build")
|
||||
|
||||
file(READ "${out_dir}/foo.cps" content)
|
||||
file(READ "${out_dir}/cps/foo/foo.cps" content)
|
||||
expect_value("${content}" "foo" "name")
|
||||
expect_missing("${content}" "version")
|
||||
expect_missing("${content}" "compat_version")
|
||||
|
||||
@@ -2,7 +2,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake)
|
||||
|
||||
set(out_dir "${RunCMake_BINARY_DIR}/ProjectMetadata-build")
|
||||
|
||||
file(READ "${out_dir}/foo.cps" content)
|
||||
file(READ "${out_dir}/cps/foo/foo.cps" content)
|
||||
expect_value("${content}" "foo" "name")
|
||||
expect_value("${content}" "1.2.3" "version")
|
||||
expect_value("${content}" "1.1.0" "compat_version")
|
||||
@@ -10,7 +10,7 @@ expect_value("${content}" "BSD-3-Clause" "license")
|
||||
expect_value("${content}" "Sample package" "description")
|
||||
expect_value("${content}" "https://www.example.com/package/foo" "website")
|
||||
|
||||
file(READ "${out_dir}/test1.cps" content)
|
||||
file(READ "${out_dir}/cps/test1/test1.cps" content)
|
||||
expect_value("${content}" "test1" "name")
|
||||
expect_value("${content}" "1.2.3" "version")
|
||||
expect_value("${content}" "1.1.0" "compat_version")
|
||||
@@ -18,7 +18,7 @@ expect_value("${content}" "BSD-3-Clause" "license")
|
||||
expect_value("${content}" "Sample package" "description")
|
||||
expect_value("${content}" "https://www.example.com/package/foo" "website")
|
||||
|
||||
file(READ "${out_dir}/test2.cps" content)
|
||||
file(READ "${out_dir}/cps/test2/test2.cps" content)
|
||||
expect_value("${content}" "test2" "name")
|
||||
expect_value("${content}" "1.4.7" "version")
|
||||
expect_missing("${content}" "compat_version")
|
||||
|
||||
@@ -2,11 +2,11 @@ include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake)
|
||||
|
||||
set(out_dir "${RunCMake_BINARY_DIR}/Requirements-build")
|
||||
|
||||
file(READ "${out_dir}/foo.cps" content)
|
||||
file(READ "${out_dir}/cps/foo/foo.cps" content)
|
||||
expect_value("${content}" "foo" "name")
|
||||
expect_value("${content}" "interface" "components" "libb" "type")
|
||||
|
||||
file(READ "${out_dir}/bar.cps" content)
|
||||
file(READ "${out_dir}/cps/bar/bar.cps" content)
|
||||
expect_value("${content}" "bar" "name")
|
||||
expect_array("${content}" 1 "requires" "foo" "components")
|
||||
expect_value("${content}" "libb" "requires" "foo" "components" 0)
|
||||
|
||||
@@ -2,7 +2,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake)
|
||||
|
||||
set(out_dir "${RunCMake_BINARY_DIR}/TargetTypes-build")
|
||||
|
||||
file(READ "${out_dir}/foo.cps" content)
|
||||
file(READ "${out_dir}/cps/foo/foo.cps" content)
|
||||
expect_value("${content}" "foo" "name")
|
||||
expect_value("${content}" "archive" "components" "foo-static" "type")
|
||||
expect_value("${content}" "dylib" "components" "foo-shared" "type")
|
||||
|
||||
@@ -3,7 +3,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/Assertions.cmake)
|
||||
set(out_dir "${RunCMake_BINARY_DIR}/TransitiveSymbolicComponent-build")
|
||||
|
||||
|
||||
file(READ "${out_dir}/bar.cps" content)
|
||||
file(READ "${out_dir}/cps/bar/bar.cps" content)
|
||||
expect_value("${content}" "bar" "name")
|
||||
expect_array("${content}" 1 "requires" "Symbolic" "components")
|
||||
expect_value("${content}" "test" "requires" "Symbolic" "components" 0)
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
file(READ "${RunCMake_TEST_BINARY_DIR}/application_targets.spdx.json" content)
|
||||
file(READ "${RunCMake_TEST_BINARY_DIR}/sbom/application_targets/application_targets.spdx.json" content)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/../Sbom/ApplicationTarget-install-check.cmake)
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
file(READ "${RunCMake_TEST_BINARY_DIR}/interface_targets.spdx.json" content)
|
||||
file(READ "${RunCMake_TEST_BINARY_DIR}/sbom/interface_targets/interface_targets.spdx.json" content)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/../Sbom/InterfaceTarget-install-check.cmake)
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
file(READ "${RunCMake_TEST_BINARY_DIR}/interface_targets.spdx.json" content)
|
||||
file(READ "${RunCMake_TEST_BINARY_DIR}/sbom/interface_targets/interface_targets.spdx.json" content)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/../Sbom/MissingPackageNamespace-install-check.cmake)
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
file(READ "${RunCMake_TEST_BINARY_DIR}/test_targets.spdx.json" content)
|
||||
file(READ "${RunCMake_TEST_BINARY_DIR}/sbom/test_targets/test_targets.spdx.json" content)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/../Sbom/ProjectMetadata-install-check.cmake)
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
file(READ "${RunCMake_TEST_BINARY_DIR}/dog.spdx.json" content)
|
||||
file(READ "${RunCMake_TEST_BINARY_DIR}/sbom/dog/dog.spdx.json" content)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/../Sbom/ReferencesNonExportedTarget-install-check.cmake)
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
file(READ "${RunCMake_TEST_BINARY_DIR}/bar.spdx.json" BAR_CONTENT)
|
||||
file(READ "${RunCMake_TEST_BINARY_DIR}/foo.spdx.json" FOO_CONTENT)
|
||||
file(READ "${RunCMake_TEST_BINARY_DIR}/sbom/bar/bar.spdx.json" BAR_CONTENT)
|
||||
file(READ "${RunCMake_TEST_BINARY_DIR}/sbom/foo/foo.spdx.json" FOO_CONTENT)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/../Sbom/Requirements-install-check.cmake)
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
file(READ "${RunCMake_TEST_BINARY_DIR}/shared_targets.spdx.json" content)
|
||||
file(READ "${RunCMake_TEST_BINARY_DIR}/sbom/shared_targets/shared_targets.spdx.json" content)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/../Sbom/SharedTarget-install-check.cmake)
|
||||
|
||||
Reference in New Issue
Block a user