diff --git a/Help/command/export.rst b/Help/command/export.rst index f525db0521..c60f354e6e 100644 --- a/Help/command/export.rst +++ b/Help/command/export.rst @@ -16,6 +16,8 @@ Synopsis export(`EXPORT`_ [...]) export(`PACKAGE`_ ) export(`SETUP`_ [...]) + export(`PACKAGE_INFO`_ [...]) + export(`SBOM`_ [...]) Exporting Targets ^^^^^^^^^^^^^^^^^ @@ -130,9 +132,12 @@ of the :command:`install(TARGETS)` command. Exporting Targets to the |CPS| """""""""""""""""""""""""""""" +.. signature:: + export(PACKAGE_INFO [...]) + .. code-block:: cmake - export(EXPORT PACKAGE_INFO + export(PACKAGE_INFO EXPORT [PROJECT |NO_PROJECT_METADATA] [APPENDIX ] [LOWER_CASE_FILE] @@ -146,7 +151,7 @@ Exporting Targets to the |CPS| [DESCRIPTION ] [HOMEPAGE_URL ]) -.. versionadded:: 4.1 +.. versionadded:: 4.3 .. note:: Experimental. Gated by ``CMAKE_EXPERIMENTAL_EXPORT_PACKAGE_INFO``. @@ -165,17 +170,19 @@ See :command:`install(PACKAGE_INFO)` for a description of the other options. Exporting Software Bill of Materials (SBOM) Documents """"""""""""""""""""""""""""""""""""""""""""""""""""" +.. signature:: + export(SBOM [...]) + .. code-block:: cmake - export(EXPORT SBOM - [PROJECT |NO_PROJECT_METADATA] - [DESTINATION ] - [VERSION [.[.[.]]]] - [LICENSE ] - [DESCRIPTION ] - [HOMEPAGE_URL ] - [PACKAGE_URL ] - [FORMAT ]) + export(SBOM EXPORT + [FORMAT ] + [PROJECT |NO_PROJECT_METADATA] + [VERSION [.[.[.]]]] + [LICENSE ] + [DESCRIPTION ] + [HOMEPAGE_URL ] + [PACKAGE_URL ]) .. versionadded:: 4.3 .. note:: diff --git a/Source/cmExportCommand.cxx b/Source/cmExportCommand.cxx index 4ae4a61f0c..01450ce9a7 100644 --- a/Source/cmExportCommand.cxx +++ b/Source/cmExportCommand.cxx @@ -51,6 +51,43 @@ static void StorePackageRegistry(cmMakefile& mf, std::string const& package, char const* content, char const* hash); +static cm::optional GetExportSet(std::string const& name, + cmGlobalGenerator* generator, + cmExecutionStatus& status) +{ + cmExportSetMap& setMap = generator->GetExportSets(); + auto const it = setMap.find(name); + if (it == setMap.end()) { + status.SetError(cmStrCat("Export set \""_s, name, "\" not found."_s)); + return cm::nullopt; + } + return &it->second; +} + +static void AddExportGenerator( + cmMakefile& makefile, cmGlobalGenerator* globalGenerator, + std::unique_ptr exportGenerator, + std::string const& fileName, cmExportSet* exportSet, + std::string const& cxxModulesDirectory) +{ + exportGenerator->SetExportFile(fileName.c_str()); + exportGenerator->SetCxxModuleDirectory(cxxModulesDirectory); + if (exportSet) { + exportGenerator->SetExportSet(exportSet); + } + std::vector configurationTypes = + makefile.GetGeneratorConfigs(cmMakefile::IncludeEmptyConfig); + + for (std::string const& ct : configurationTypes) { + exportGenerator->AddConfiguration(ct); + } + if (exportSet) { + globalGenerator->AddBuildExportExportSet(exportGenerator.get()); + } + + makefile.AddExportBuildFileGenerator(std::move(exportGenerator)); +} + static bool HandleTargetsMode(std::vector const& args, cmExecutionStatus& status) { @@ -218,8 +255,6 @@ static bool HandleExportMode(std::vector const& args, ArgumentParser::MaybeEmpty Namespace; ArgumentParser::NonEmpty Filename; ArgumentParser::NonEmpty CxxModulesDirectory; - cm::optional PackageInfo; - cm::optional Sbom; bool ExportPackageDependencies = false; }; @@ -237,39 +272,16 @@ static bool HandleExportMode(std::vector const& args, &ExportArguments::ExportPackageDependencies); } - cmArgumentParser packageInfoParser; - cmPackageInfoArguments::Bind(packageInfoParser); - - if (cmExperimental::HasSupportEnabled( - status.GetMakefile(), cmExperimental::Feature::ExportPackageInfo)) { - parser.BindSubParser("PACKAGE_INFO"_s, packageInfoParser, - &ExportArguments::PackageInfo); - } - - cmArgumentParser sbomParser; - cmSbomArguments::Bind(sbomParser); - - if (cmExperimental::HasSupportEnabled( - status.GetMakefile(), cmExperimental::Feature::GenerateSbom)) { - parser.BindSubParser("SBOM"_s, sbomParser, &ExportArguments::Sbom); - } - std::vector unknownArgs; ExportArguments arguments = parser.Parse(args, &unknownArgs); cmMakefile& mf = status.GetMakefile(); cmGlobalGenerator* gg = mf.GetGlobalGenerator(); - if (arguments.PackageInfo && arguments.Sbom) { - status.SetError("PACKAGE_INFO and SBOM are mutually exclusive."); - return false; - } - if (!arguments.Check(args[0], &unknownArgs, status)) { cmPolicies::PolicyStatus const p = status.GetMakefile().GetPolicyStatus(cmPolicies::CMP0208); - if (arguments.PackageInfo || arguments.Sbom || !unknownArgs.empty() || - p == cmPolicies::NEW) { + if (!unknownArgs.empty() || p == cmPolicies::NEW) { return false; } if (p == cmPolicies::WARN) { @@ -281,48 +293,9 @@ static bool HandleExportMode(std::vector const& args, } } - if (arguments.PackageInfo) { - if (!arguments.Filename.empty()) { - status.SetError("PACKAGE_INFO and FILE are mutually exclusive."); - return false; - } - if (!arguments.Namespace.empty()) { - status.SetError("PACKAGE_INFO and NAMESPACE are mutually exclusive."); - return false; - } - if (!arguments.PackageInfo->Check(status) || - !arguments.PackageInfo->SetMetadataFromProject(status)) { - return false; - } - } - if (arguments.Sbom) { - if (arguments.Sbom->PackageName.empty()) { - status.SetError("SBOM missing required value."); - return false; - } - if (!arguments.Filename.empty()) { - status.SetError("SBOM and FILE are mutually exclusive."); - return false; - } - if (!arguments.Namespace.empty()) { - status.SetError("SBOM and NAMESPACE are mutually exclusive."); - return false; - } - if (!arguments.Sbom->Check(status) || - !arguments.Sbom->SetMetadataFromProject(status)) { - return false; - } - } - std::string fname; if (arguments.Filename.empty()) { - if (arguments.PackageInfo) { - fname = arguments.PackageInfo->GetPackageFileName(); - } else if (arguments.Sbom) { - fname = arguments.Sbom->GetPackageFileName(); - } else { - fname = arguments.ExportSetName + ".cmake"; - } + fname = arguments.ExportSetName + ".cmake"; } else { if (cmSystemTools::GetFilenameLastExtension(arguments.Filename) != ".cmake") { @@ -349,60 +322,113 @@ static bool HandleExportMode(std::vector const& args, fname = cmStrCat(dir, '/', fname); } - if (gg->GetExportedTargetsFile(fname)) { - if (arguments.PackageInfo) { - status.SetError(cmStrCat("command already specified for the file "_s, - cmSystemTools::GetFilenameName(fname), '.')); - return false; - } - } - - cmExportSet* exportSet = nullptr; - cmExportSetMap& setMap = gg->GetExportSets(); - auto const it = setMap.find(arguments.ExportSetName); - if (it == setMap.end()) { - std::ostringstream e; - e << "Export set \"" << arguments.ExportSetName << "\" not found."; - status.SetError(e.str()); + cm::optional const exportSet = + GetExportSet(arguments.ExportSetName, gg, status); + if (!exportSet) { return false; } - exportSet = &it->second; // Set up export file generation. - std::unique_ptr ebfg = nullptr; - if (arguments.PackageInfo) { - auto ebpg = cm::make_unique( - *arguments.PackageInfo); - ebfg = std::move(ebpg); - } else if (arguments.Sbom) { - auto ebsg = cm::make_unique(*arguments.Sbom); - ebfg = std::move(ebsg); - } else { - auto ebcg = cm::make_unique(); - ebcg->SetNamespace(arguments.Namespace); - ebcg->SetExportPackageDependencies(arguments.ExportPackageDependencies); - ebfg = std::move(ebcg); - } + auto ebcg = cm::make_unique(); + ebcg->SetNamespace(arguments.Namespace); + ebcg->SetExportPackageDependencies(arguments.ExportPackageDependencies); - ebfg->SetExportFile(fname.c_str()); - ebfg->SetCxxModuleDirectory(arguments.CxxModulesDirectory); - if (exportSet) { - ebfg->SetExportSet(exportSet); - } - std::vector configurationTypes = - mf.GetGeneratorConfigs(cmMakefile::IncludeEmptyConfig); - - for (std::string const& ct : configurationTypes) { - ebfg->AddConfiguration(ct); - } - if (exportSet) { - gg->AddBuildExportExportSet(ebfg.get()); - } - - mf.AddExportBuildFileGenerator(std::move(ebfg)); + AddExportGenerator(mf, gg, std::move(ebcg), fname, *exportSet, + arguments.CxxModulesDirectory); return true; } +template +static bool HandleSpecialExportMode(std::vector const& args, + cmExecutionStatus& status) +{ + struct ExportArguments + : public ArgumentsType + , public ArgumentParser::ParseResult + { + ArgumentParser::NonEmpty ExportSetName; + ArgumentParser::NonEmpty CxxModulesDirectory; + + using ArgumentsType::Check; + using ArgumentParser::ParseResult::Check; + }; + + auto parser = + cmArgumentParser{} + .Bind("EXPORT"_s, &ExportArguments::ExportSetName) + .Bind("CXX_MODULES_DIRECTORY"_s, &ExportArguments::CxxModulesDirectory); + ArgumentsType::Bind(parser); + + std::vector unknownArgs; + ExportArguments arguments = parser.Parse(args, &unknownArgs); + + if (!arguments.Check(args[0], &unknownArgs, status)) { + return false; + } + + if (arguments.ExportSetName.empty()) { + status.SetError(cmStrCat(args[0], " missing EXPORT.")); + return false; + } + + if (!arguments.Check(status) || !arguments.SetMetadataFromProject(status)) { + return false; + } + + cmMakefile& mf = status.GetMakefile(); + cmGlobalGenerator* gg = mf.GetGlobalGenerator(); + + std::string const& dir = mf.GetCurrentBinaryDirectory(); + std::string const fname = cmStrCat(dir, '/', arguments.GetPackageFileName()); + + if (gg->GetExportedTargetsFile(fname)) { + status.SetError(cmStrCat("command already specified for the file "_s, + cmSystemTools::GetFilenameName(fname), '.')); + return false; + } + + // Look up the export set + cm::optional const exportSet = + GetExportSet(arguments.ExportSetName, gg, status); + if (!exportSet) { + return false; + } + + // Create the export build generator + auto ebpg = cm::make_unique(arguments); + AddExportGenerator(mf, gg, std::move(ebpg), fname, *exportSet, + arguments.CxxModulesDirectory); + return true; +} + +static bool HandlePackageInfoMode(std::vector const& args, + cmExecutionStatus& status) +{ + if (!cmExperimental::HasSupportEnabled( + status.GetMakefile(), cmExperimental::Feature::ExportPackageInfo)) { + status.SetError("does not recognize sub-command PACKAGE_INFO"); + return false; + } + + using arg_t = cmPackageInfoArguments; + using gen_t = cmExportBuildPackageInfoGenerator; + return HandleSpecialExportMode(args, status); +} + +static bool HandleSbomMode(std::vector const& args, + cmExecutionStatus& status) +{ + if (!cmExperimental::HasSupportEnabled( + status.GetMakefile(), cmExperimental::Feature::GenerateSbom)) { + status.SetError("does not recognize sub-command SBOM"); + return false; + } + + using arg_t = cmSbomArguments; + using gen_t = cmExportBuildSbomGenerator; + return HandleSpecialExportMode(args, status); +} + static bool HandleSetupMode(std::vector const& args, cmExecutionStatus& status) { @@ -675,6 +701,8 @@ bool cmExportCommand(std::vector const& args, { "EXPORT"_s, HandleExportMode }, { "SETUP"_s, HandleSetupMode }, { "PACKAGE"_s, HandlePackageMode }, + { "PACKAGE_INFO"_s, HandlePackageInfoMode }, + { "SBOM"_s, HandleSbomMode }, }; return subcommand(args[0], args, status); diff --git a/Tests/RunCMake/CpsExportImportBuild/TestLibrary.cmake b/Tests/RunCMake/CpsExportImportBuild/TestLibrary.cmake index cdacbc5a26..48d334d7de 100644 --- a/Tests/RunCMake/CpsExportImportBuild/TestLibrary.cmake +++ b/Tests/RunCMake/CpsExportImportBuild/TestLibrary.cmake @@ -27,7 +27,7 @@ target_sources(libb target_link_libraries(libb PUBLIC liba) install(TARGETS liba EXPORT liba FILE_SET HEADERS) -export(EXPORT liba PACKAGE_INFO liba) +export(PACKAGE_INFO liba EXPORT liba) install(TARGETS libb EXPORT libb FILE_SET HEADERS) -export(EXPORT libb PACKAGE_INFO libb) +export(PACKAGE_INFO libb EXPORT libb) diff --git a/Tests/RunCMake/ExportPackageInfo/Appendix.cmake b/Tests/RunCMake/ExportPackageInfo/Appendix.cmake index 51a3c62356..053dc13b6d 100644 --- a/Tests/RunCMake/ExportPackageInfo/Appendix.cmake +++ b/Tests/RunCMake/ExportPackageInfo/Appendix.cmake @@ -6,13 +6,13 @@ install(TARGETS mammal EXPORT mammal DESTINATION .) install(TARGETS canine EXPORT canine DESTINATION .) export( - EXPORT mammal PACKAGE_INFO foo + EXPORT mammal VERSION 1.0 DEFAULT_LICENSE "LGPL-3.0-or-later") export( - EXPORT canine PACKAGE_INFO foo + EXPORT canine APPENDIX dog DEFAULT_LICENSE "GPL-3.0-or-later") diff --git a/Tests/RunCMake/ExportPackageInfo/BadArgs0-stderr.txt b/Tests/RunCMake/ExportPackageInfo/BadArgs0-stderr.txt index c288df7758..297e64cf65 100644 --- a/Tests/RunCMake/ExportPackageInfo/BadArgs0-stderr.txt +++ b/Tests/RunCMake/ExportPackageInfo/BadArgs0-stderr.txt @@ -1,5 +1,27 @@ CMake Error at BadArgs0\.cmake:[0-9]+ \(export\): - export EXPORT given invalid argument: + export PACKAGE_INFO given invalid argument: + + PACKAGE_INFO: missing required value +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\) + + +CMake Error at BadArgs0\.cmake:[0-9]+ \(export\): + export PACKAGE_INFO missing EXPORT\. +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\) + + +CMake Error at BadArgs0\.cmake:[0-9]+ \(export\): + export PACKAGE_INFO given invalid argument: + + EXPORT: missing required value +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\) + + +CMake Error at BadArgs0\.cmake:[0-9]+ \(export\): + export PACKAGE_INFO given invalid argument: PACKAGE_INFO: missing required value Call Stack \(most recent call first\): diff --git a/Tests/RunCMake/ExportPackageInfo/BadArgs0.cmake b/Tests/RunCMake/ExportPackageInfo/BadArgs0.cmake index 79e30ae591..9d6d3c3606 100644 --- a/Tests/RunCMake/ExportPackageInfo/BadArgs0.cmake +++ b/Tests/RunCMake/ExportPackageInfo/BadArgs0.cmake @@ -1,3 +1,7 @@ +export(PACKAGE_INFO) +export(PACKAGE_INFO test) +export(PACKAGE_INFO test EXPORT) + add_library(foo INTERFACE) install(TARGETS foo EXPORT foo DESTINATION .) -export(EXPORT foo PACKAGE_INFO) +export(PACKAGE_INFO EXPORT foo) diff --git a/Tests/RunCMake/ExportPackageInfo/BadArgs1.cmake b/Tests/RunCMake/ExportPackageInfo/BadArgs1.cmake index f59c4ac574..e74d72aa46 100644 --- a/Tests/RunCMake/ExportPackageInfo/BadArgs1.cmake +++ b/Tests/RunCMake/ExportPackageInfo/BadArgs1.cmake @@ -1,6 +1,6 @@ add_library(foo INTERFACE) install(TARGETS foo EXPORT foo DESTINATION .) -export(EXPORT foo PACKAGE_INFO foo COMPAT_VERSION 1.0) -export(EXPORT foo PACKAGE_INFO foo VERSION_SCHEMA simple) -export(EXPORT foo PACKAGE_INFO foo PROJECT foo NO_PROJECT_METADATA) -export(EXPORT foo PACKAGE_INFO foo PROJECT bar) +export(PACKAGE_INFO foo EXPORT foo COMPAT_VERSION 1.0) +export(PACKAGE_INFO foo EXPORT foo VERSION_SCHEMA simple) +export(PACKAGE_INFO foo EXPORT foo PROJECT foo NO_PROJECT_METADATA) +export(PACKAGE_INFO foo EXPORT foo PROJECT bar) diff --git a/Tests/RunCMake/ExportPackageInfo/BadArgs2.cmake b/Tests/RunCMake/ExportPackageInfo/BadArgs2.cmake index 6058c7f296..7003810aa1 100644 --- a/Tests/RunCMake/ExportPackageInfo/BadArgs2.cmake +++ b/Tests/RunCMake/ExportPackageInfo/BadArgs2.cmake @@ -1,6 +1,6 @@ add_library(foo INTERFACE) install(TARGETS foo EXPORT foo DESTINATION .) -set(args EXPORT foo PACKAGE_INFO foo APPENDIX test) +set(args PACKAGE_INFO foo EXPORT foo APPENDIX test) export(${args} VERSION 1.0) export(${args} LICENSE "BSD-3-Clause AND CC-BY-SA-4.0") export(${args} DESCRIPTION "Test") diff --git a/Tests/RunCMake/ExportPackageInfo/BadArgs3-stderr.txt b/Tests/RunCMake/ExportPackageInfo/BadArgs3-stderr.txt index 4d15b6e370..2fdf7031c9 100644 --- a/Tests/RunCMake/ExportPackageInfo/BadArgs3-stderr.txt +++ b/Tests/RunCMake/ExportPackageInfo/BadArgs3-stderr.txt @@ -1,10 +1,95 @@ -CMake Error at BadArgs3\.cmake:3 \(export\): - export PACKAGE_INFO and FILE are mutually exclusive\. +CMake Error at BadArgs3\.cmake:[0-9]+ \(export\): + export PACKAGE_INFO given invalid argument: + + APPENDIX: missing required value Call Stack \(most recent call first\): CMakeLists\.txt:3 \(include\) -CMake Error at BadArgs3\.cmake:4 \(export\): - export PACKAGE_INFO and NAMESPACE are mutually exclusive\. +CMake Error at BadArgs3\.cmake:[0-9]+ \(export\): + export PACKAGE_INFO given invalid argument: + + VERSION: missing required value +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\) + + +CMake Error at BadArgs3\.cmake:[0-9]+ \(export\): + export PACKAGE_INFO given invalid argument: + + COMPAT_VERSION: missing required value +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\) + + +CMake Error at BadArgs3\.cmake:[0-9]+ \(export\): + export PACKAGE_INFO given invalid argument: + + VERSION_SCHEMA: missing required value +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\) + + +CMake Error at BadArgs3\.cmake:[0-9]+ \(export\): + export PACKAGE_INFO given invalid argument: + + LICENSE: missing required value +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\) + + +CMake Error at BadArgs3\.cmake:[0-9]+ \(export\): + export PACKAGE_INFO given invalid argument: + + DEFAULT_LICENSE: missing required value +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\) + + +CMake Error at BadArgs3\.cmake:[0-9]+ \(export\): + export PACKAGE_INFO given invalid argument: + + DESCRIPTION: missing required value +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\) + + +CMake Error at BadArgs3\.cmake:[0-9]+ \(export\): + export PACKAGE_INFO given invalid argument: + + HOMEPAGE_URL: missing required value +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\) + + +CMake Error at BadArgs3\.cmake:[0-9]+ \(export\): + export PACKAGE_INFO given invalid argument: + + DEFAULT_TARGETS: missing required value +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\) + + +CMake Error at BadArgs3\.cmake:[0-9]+ \(export\): + export PACKAGE_INFO given invalid argument: + + DEFAULT_CONFIGURATIONS: missing required value +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\) + + +CMake Error at BadArgs3\.cmake:[0-9]+ \(export\): + export PACKAGE_INFO given invalid argument: + + PROJECT: missing required value +Call Stack \(most recent call first\): + CMakeLists\.txt:3 \(include\) + + +CMake Error at BadArgs3\.cmake:[0-9]+ \(export\): + export PACKAGE_INFO given invalid arguments: + + DEFAULT_LICENSE: empty string not allowed + LICENSE: empty string not allowed Call Stack \(most recent call first\): CMakeLists\.txt:3 \(include\) diff --git a/Tests/RunCMake/ExportPackageInfo/BadArgs3.cmake b/Tests/RunCMake/ExportPackageInfo/BadArgs3.cmake index 106f083250..bb07570634 100644 --- a/Tests/RunCMake/ExportPackageInfo/BadArgs3.cmake +++ b/Tests/RunCMake/ExportPackageInfo/BadArgs3.cmake @@ -1,4 +1,15 @@ add_library(foo INTERFACE) install(TARGETS foo EXPORT foo DESTINATION .) -export(EXPORT foo PACKAGE_INFO foo FILE foo.cps) -export(EXPORT foo PACKAGE_INFO foo NAMESPACE foo::) +set(args PACKAGE_INFO foo EXPORT foo) +export(${args} APPENDIX) +export(${args} VERSION) +export(${args} COMPAT_VERSION) +export(${args} VERSION_SCHEMA) +export(${args} LICENSE) +export(${args} DEFAULT_LICENSE) +export(${args} DESCRIPTION) +export(${args} HOMEPAGE_URL) +export(${args} DEFAULT_TARGETS) +export(${args} DEFAULT_CONFIGURATIONS) +export(${args} PROJECT) +export(${args} LICENSE "" DEFAULT_LICENSE "") diff --git a/Tests/RunCMake/ExportPackageInfo/BadArgs4-result.txt b/Tests/RunCMake/ExportPackageInfo/BadArgs4-result.txt deleted file mode 100644 index d00491fd7e..0000000000 --- a/Tests/RunCMake/ExportPackageInfo/BadArgs4-result.txt +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/Tests/RunCMake/ExportPackageInfo/BadArgs4-stderr.txt b/Tests/RunCMake/ExportPackageInfo/BadArgs4-stderr.txt deleted file mode 100644 index e9627f98f2..0000000000 --- a/Tests/RunCMake/ExportPackageInfo/BadArgs4-stderr.txt +++ /dev/null @@ -1,64 +0,0 @@ -CMake Error at BadArgs4\.cmake:[0-9]+ \(export\): - export EXPORT given unknown argument: "LOWER_CASE_FILE"\. -Call Stack \(most recent call first\): - CMakeLists\.txt:3 \(include\) - - -CMake Error at BadArgs4\.cmake:[0-9]+ \(export\): - export EXPORT given unknown argument: "APPENDIX"\. -Call Stack \(most recent call first\): - CMakeLists\.txt:3 \(include\) - - -CMake Error at BadArgs4\.cmake:[0-9]+ \(export\): - export EXPORT given unknown argument: "VERSION"\. -Call Stack \(most recent call first\): - CMakeLists\.txt:3 \(include\) - - -CMake Error at BadArgs4\.cmake:[0-9]+ \(export\): - export EXPORT given unknown argument: "LICENSE"\. -Call Stack \(most recent call first\): - CMakeLists\.txt:3 \(include\) - - -CMake Error at BadArgs4\.cmake:[0-9]+ \(export\): - export EXPORT given unknown argument: "DEFAULT_LICENSE"\. -Call Stack \(most recent call first\): - CMakeLists\.txt:3 \(include\) - - -CMake Error at BadArgs4\.cmake:[0-9]+ \(export\): - export EXPORT given unknown argument: "DESCRIPTION"\. -Call Stack \(most recent call first\): - CMakeLists\.txt:3 \(include\) - - -CMake Error at BadArgs4\.cmake:[0-9]+ \(export\): - export EXPORT given unknown argument: "HOMEPAGE_URL"\. -Call Stack \(most recent call first\): - CMakeLists\.txt:3 \(include\) - - -CMake Error at BadArgs4\.cmake:[0-9]+ \(export\): - export EXPORT given unknown argument: "DEFAULT_TARGETS"\. -Call Stack \(most recent call first\): - CMakeLists\.txt:3 \(include\) - - -CMake Error at BadArgs4\.cmake:[0-9]+ \(export\): - export EXPORT given unknown argument: "DEFAULT_CONFIGURATIONS"\. -Call Stack \(most recent call first\): - CMakeLists\.txt:3 \(include\) - - -CMake Error at BadArgs4\.cmake:[0-9]+ \(export\): - export EXPORT given unknown argument: "PROJECT"\. -Call Stack \(most recent call first\): - CMakeLists\.txt:3 \(include\) - - -CMake Error at BadArgs4\.cmake:[0-9]+ \(export\): - export EXPORT given unknown argument: "NO_PROJECT_METADATA"\. -Call Stack \(most recent call first\): - CMakeLists\.txt:3 \(include\) diff --git a/Tests/RunCMake/ExportPackageInfo/BadArgs4.cmake b/Tests/RunCMake/ExportPackageInfo/BadArgs4.cmake deleted file mode 100644 index 2405a637af..0000000000 --- a/Tests/RunCMake/ExportPackageInfo/BadArgs4.cmake +++ /dev/null @@ -1,14 +0,0 @@ -add_library(foo INTERFACE) -install(TARGETS foo EXPORT foo DESTINATION .) -set(args EXPORT foo) -export(${args} LOWER_CASE_FILE) -export(${args} APPENDIX test) -export(${args} VERSION 1.0) -export(${args} LICENSE "BSD-3-Clause AND CC-BY-SA-4.0") -export(${args} DEFAULT_LICENSE "BSD-3-Clause") -export(${args} DESCRIPTION "Test") -export(${args} HOMEPAGE_URL "example.com") -export(${args} DEFAULT_TARGETS foo) -export(${args} DEFAULT_CONFIGURATIONS Release) -export(${args} PROJECT foo) -export(${args} NO_PROJECT_METADATA) diff --git a/Tests/RunCMake/ExportPackageInfo/BadArgs5-result.txt b/Tests/RunCMake/ExportPackageInfo/BadArgs5-result.txt deleted file mode 100644 index d00491fd7e..0000000000 --- a/Tests/RunCMake/ExportPackageInfo/BadArgs5-result.txt +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/Tests/RunCMake/ExportPackageInfo/BadArgs5-stderr.txt b/Tests/RunCMake/ExportPackageInfo/BadArgs5-stderr.txt deleted file mode 100644 index 3ee82543f4..0000000000 --- a/Tests/RunCMake/ExportPackageInfo/BadArgs5-stderr.txt +++ /dev/null @@ -1,95 +0,0 @@ -CMake Error at BadArgs5\.cmake:[0-9]+ \(export\): - export EXPORT given invalid argument: - - APPENDIX: missing required value -Call Stack \(most recent call first\): - CMakeLists\.txt:3 \(include\) - - -CMake Error at BadArgs5\.cmake:[0-9]+ \(export\): - export EXPORT given invalid argument: - - VERSION: missing required value -Call Stack \(most recent call first\): - CMakeLists\.txt:3 \(include\) - - -CMake Error at BadArgs5\.cmake:[0-9]+ \(export\): - export EXPORT given invalid argument: - - COMPAT_VERSION: missing required value -Call Stack \(most recent call first\): - CMakeLists\.txt:3 \(include\) - - -CMake Error at BadArgs5\.cmake:[0-9]+ \(export\): - export EXPORT given invalid argument: - - VERSION_SCHEMA: missing required value -Call Stack \(most recent call first\): - CMakeLists\.txt:3 \(include\) - - -CMake Error at BadArgs5\.cmake:[0-9]+ \(export\): - export EXPORT given invalid argument: - - LICENSE: missing required value -Call Stack \(most recent call first\): - CMakeLists\.txt:3 \(include\) - - -CMake Error at BadArgs5\.cmake:[0-9]+ \(export\): - export EXPORT given invalid argument: - - DEFAULT_LICENSE: missing required value -Call Stack \(most recent call first\): - CMakeLists\.txt:3 \(include\) - - -CMake Error at BadArgs5\.cmake:[0-9]+ \(export\): - export EXPORT given invalid argument: - - DESCRIPTION: missing required value -Call Stack \(most recent call first\): - CMakeLists\.txt:3 \(include\) - - -CMake Error at BadArgs5\.cmake:[0-9]+ \(export\): - export EXPORT given invalid argument: - - HOMEPAGE_URL: missing required value -Call Stack \(most recent call first\): - CMakeLists\.txt:3 \(include\) - - -CMake Error at BadArgs5\.cmake:[0-9]+ \(export\): - export EXPORT given invalid argument: - - DEFAULT_TARGETS: missing required value -Call Stack \(most recent call first\): - CMakeLists\.txt:3 \(include\) - - -CMake Error at BadArgs5\.cmake:[0-9]+ \(export\): - export EXPORT given invalid argument: - - DEFAULT_CONFIGURATIONS: missing required value -Call Stack \(most recent call first\): - CMakeLists\.txt:3 \(include\) - - -CMake Error at BadArgs5\.cmake:[0-9]+ \(export\): - export EXPORT given invalid argument: - - PROJECT: missing required value -Call Stack \(most recent call first\): - CMakeLists\.txt:3 \(include\) - - -CMake Error at BadArgs5\.cmake:[0-9]+ \(export\): - export EXPORT given invalid arguments: - - DEFAULT_LICENSE: empty string not allowed - LICENSE: empty string not allowed -Call Stack \(most recent call first\): - CMakeLists\.txt:3 \(include\) diff --git a/Tests/RunCMake/ExportPackageInfo/BadArgs5.cmake b/Tests/RunCMake/ExportPackageInfo/BadArgs5.cmake deleted file mode 100644 index 485ea5b380..0000000000 --- a/Tests/RunCMake/ExportPackageInfo/BadArgs5.cmake +++ /dev/null @@ -1,15 +0,0 @@ -add_library(foo INTERFACE) -install(TARGETS foo EXPORT foo DESTINATION .) -set(args EXPORT foo PACKAGE_INFO foo) -export(${args} APPENDIX) -export(${args} VERSION) -export(${args} COMPAT_VERSION) -export(${args} VERSION_SCHEMA) -export(${args} LICENSE) -export(${args} DEFAULT_LICENSE) -export(${args} DESCRIPTION) -export(${args} HOMEPAGE_URL) -export(${args} DEFAULT_TARGETS) -export(${args} DEFAULT_CONFIGURATIONS) -export(${args} PROJECT) -export(${args} LICENSE "" DEFAULT_LICENSE "") diff --git a/Tests/RunCMake/ExportPackageInfo/BadDefaultTarget.cmake b/Tests/RunCMake/ExportPackageInfo/BadDefaultTarget.cmake index c1a2253f8b..a29bce9269 100644 --- a/Tests/RunCMake/ExportPackageInfo/BadDefaultTarget.cmake +++ b/Tests/RunCMake/ExportPackageInfo/BadDefaultTarget.cmake @@ -2,4 +2,4 @@ add_library(foo INTERFACE) add_library(dog INTERFACE) install(TARGETS foo EXPORT foo DESTINATION .) install(TARGETS dog EXPORT dog DESTINATION .) -export(EXPORT foo PACKAGE_INFO test DEFAULT_TARGETS dog cat) +export(PACKAGE_INFO test EXPORT foo DEFAULT_TARGETS dog cat) diff --git a/Tests/RunCMake/ExportPackageInfo/BadName.cmake b/Tests/RunCMake/ExportPackageInfo/BadName.cmake index 6e17a73528..f18e2b94ab 100644 --- a/Tests/RunCMake/ExportPackageInfo/BadName.cmake +++ b/Tests/RunCMake/ExportPackageInfo/BadName.cmake @@ -1,3 +1,3 @@ add_library(foo INTERFACE) install(TARGETS foo EXPORT foo DESTINATION .) -export(EXPORT foo PACKAGE_INFO "%foo") +export(PACKAGE_INFO "%foo" EXPORT foo) diff --git a/Tests/RunCMake/ExportPackageInfo/CompileOnly.cmake b/Tests/RunCMake/ExportPackageInfo/CompileOnly.cmake index bfc9d3d225..b65de3afe3 100644 --- a/Tests/RunCMake/ExportPackageInfo/CompileOnly.cmake +++ b/Tests/RunCMake/ExportPackageInfo/CompileOnly.cmake @@ -7,7 +7,7 @@ add_library(bar foo.cxx) target_link_libraries(bar $ $ foo) install(TARGETS foo linkOnlyOne linkOnlyTwo EXPORT foo) -export(EXPORT foo PACKAGE_INFO foo) +export(PACKAGE_INFO foo EXPORT foo) install(TARGETS bar EXPORT bar) -export(EXPORT bar PACKAGE_INFO bar) +export(PACKAGE_INFO bar EXPORT bar) diff --git a/Tests/RunCMake/ExportPackageInfo/CompileOnlyRecursive.cmake b/Tests/RunCMake/ExportPackageInfo/CompileOnlyRecursive.cmake index bf323468b9..7c113b5b61 100644 --- a/Tests/RunCMake/ExportPackageInfo/CompileOnlyRecursive.cmake +++ b/Tests/RunCMake/ExportPackageInfo/CompileOnlyRecursive.cmake @@ -5,7 +5,7 @@ add_library(bar foo.cxx) target_link_libraries(bar $>) install(TARGETS foo EXPORT foo) -export(EXPORT foo PACKAGE_INFO foo) +export(PACKAGE_INFO foo EXPORT foo) install(TARGETS bar EXPORT bar) -export(EXPORT bar PACKAGE_INFO bar) +export(PACKAGE_INFO bar EXPORT bar) diff --git a/Tests/RunCMake/ExportPackageInfo/Config.cmake b/Tests/RunCMake/ExportPackageInfo/Config.cmake index 361fb66ee5..03d5ba0782 100644 --- a/Tests/RunCMake/ExportPackageInfo/Config.cmake +++ b/Tests/RunCMake/ExportPackageInfo/Config.cmake @@ -10,4 +10,4 @@ endif() add_library(foo foo.cxx) install(TARGETS foo EXPORT foo) -export(EXPORT foo PACKAGE_INFO foo) +export(PACKAGE_INFO foo EXPORT foo) diff --git a/Tests/RunCMake/ExportPackageInfo/DependencyVersionCMake.cmake b/Tests/RunCMake/ExportPackageInfo/DependencyVersionCMake.cmake index e82a16e497..707740765b 100644 --- a/Tests/RunCMake/ExportPackageInfo/DependencyVersionCMake.cmake +++ b/Tests/RunCMake/ExportPackageInfo/DependencyVersionCMake.cmake @@ -8,4 +8,4 @@ add_library(foo INTERFACE) target_link_libraries(foo INTERFACE bar::bar) install(TARGETS foo EXPORT foo DESTINATION .) -export(EXPORT foo PACKAGE_INFO foo) +export(PACKAGE_INFO foo EXPORT foo) diff --git a/Tests/RunCMake/ExportPackageInfo/DependencyVersionCps.cmake b/Tests/RunCMake/ExportPackageInfo/DependencyVersionCps.cmake index 97cf54f9e1..072b5ff414 100644 --- a/Tests/RunCMake/ExportPackageInfo/DependencyVersionCps.cmake +++ b/Tests/RunCMake/ExportPackageInfo/DependencyVersionCps.cmake @@ -8,4 +8,4 @@ add_library(foo INTERFACE) target_link_libraries(foo INTERFACE baz::baz) install(TARGETS foo EXPORT foo DESTINATION .) -export(EXPORT foo PACKAGE_INFO foo) +export(PACKAGE_INFO foo EXPORT foo) diff --git a/Tests/RunCMake/ExportPackageInfo/DependsMultipleCommon.cmake b/Tests/RunCMake/ExportPackageInfo/DependsMultipleCommon.cmake index b08a201fa0..91b7ccd214 100644 --- a/Tests/RunCMake/ExportPackageInfo/DependsMultipleCommon.cmake +++ b/Tests/RunCMake/ExportPackageInfo/DependsMultipleCommon.cmake @@ -4,8 +4,8 @@ target_link_libraries(bar foo) install(TARGETS foo EXPORT foo) export(EXPORT foo NAMESPACE "${NAMESPACE}") -export(EXPORT foo PACKAGE_INFO foo) +export(PACKAGE_INFO foo EXPORT foo) install(TARGETS bar EXPORT bar) export(EXPORT bar) -export(EXPORT bar PACKAGE_INFO bar) +export(PACKAGE_INFO bar EXPORT bar) diff --git a/Tests/RunCMake/ExportPackageInfo/DuplicateOutput.cmake b/Tests/RunCMake/ExportPackageInfo/DuplicateOutput.cmake index de901f359f..bba45435c4 100644 --- a/Tests/RunCMake/ExportPackageInfo/DuplicateOutput.cmake +++ b/Tests/RunCMake/ExportPackageInfo/DuplicateOutput.cmake @@ -1,4 +1,4 @@ add_library(foo INTERFACE) install(TARGETS foo EXPORT foo DESTINATION .) -export(EXPORT foo PACKAGE_INFO foo) -export(EXPORT foo PACKAGE_INFO foo) +export(PACKAGE_INFO foo EXPORT foo) +export(PACKAGE_INFO foo EXPORT foo) diff --git a/Tests/RunCMake/ExportPackageInfo/EmptyConfig.cmake b/Tests/RunCMake/ExportPackageInfo/EmptyConfig.cmake index 4ed643657b..55e0095491 100644 --- a/Tests/RunCMake/ExportPackageInfo/EmptyConfig.cmake +++ b/Tests/RunCMake/ExportPackageInfo/EmptyConfig.cmake @@ -6,4 +6,4 @@ set(CMAKE_CONFIGURATION_TYPES "" CACHE STRING "" FORCE) add_library(foo foo.cxx) install(TARGETS foo EXPORT foo) -export(EXPORT foo PACKAGE_INFO foo) +export(PACKAGE_INFO foo EXPORT foo) diff --git a/Tests/RunCMake/ExportPackageInfo/ExperimentalGate-stderr.txt b/Tests/RunCMake/ExportPackageInfo/ExperimentalGate-stderr.txt index 183d000d71..b0d7bc9f3c 100644 --- a/Tests/RunCMake/ExportPackageInfo/ExperimentalGate-stderr.txt +++ b/Tests/RunCMake/ExportPackageInfo/ExperimentalGate-stderr.txt @@ -1,2 +1,2 @@ CMake Error at ExperimentalGate\.cmake:5 \(export\): - export EXPORT given unknown argument: "PACKAGE_INFO"\. + export does not recognize sub-command PACKAGE_INFO diff --git a/Tests/RunCMake/ExportPackageInfo/ExperimentalGate.cmake b/Tests/RunCMake/ExportPackageInfo/ExperimentalGate.cmake index 6f23324968..96b19cd523 100644 --- a/Tests/RunCMake/ExportPackageInfo/ExperimentalGate.cmake +++ b/Tests/RunCMake/ExportPackageInfo/ExperimentalGate.cmake @@ -2,4 +2,4 @@ unset(CMAKE_EXPERIMENTAL_EXPORT_PACKAGE_INFO) add_library(foo INTERFACE) install(TARGETS foo EXPORT foo DESTINATION .) -export(EXPORT foo PACKAGE_INFO foo) +export(PACKAGE_INFO foo EXPORT foo) diff --git a/Tests/RunCMake/ExportPackageInfo/ExperimentalWarning.cmake b/Tests/RunCMake/ExportPackageInfo/ExperimentalWarning.cmake index 892394ef2e..f99489329e 100644 --- a/Tests/RunCMake/ExportPackageInfo/ExperimentalWarning.cmake +++ b/Tests/RunCMake/ExportPackageInfo/ExperimentalWarning.cmake @@ -5,4 +5,4 @@ set( add_library(foo INTERFACE) install(TARGETS foo EXPORT foo DESTINATION .) -export(EXPORT foo PACKAGE_INFO foo) +export(PACKAGE_INFO foo EXPORT foo) diff --git a/Tests/RunCMake/ExportPackageInfo/ExportSymbolicComponent.cmake b/Tests/RunCMake/ExportPackageInfo/ExportSymbolicComponent.cmake index d24caeb2f2..51620745ea 100644 --- a/Tests/RunCMake/ExportPackageInfo/ExportSymbolicComponent.cmake +++ b/Tests/RunCMake/ExportPackageInfo/ExportSymbolicComponent.cmake @@ -1,4 +1,4 @@ add_library(foo INTERFACE SYMBOLIC) install(TARGETS foo EXPORT foo DESTINATION .) -export(EXPORT foo PACKAGE_INFO foo) +export(PACKAGE_INFO foo EXPORT foo) diff --git a/Tests/RunCMake/ExportPackageInfo/FileSetHeaders.cmake b/Tests/RunCMake/ExportPackageInfo/FileSetHeaders.cmake index 6b6fdf890f..3f8dd0277d 100644 --- a/Tests/RunCMake/ExportPackageInfo/FileSetHeaders.cmake +++ b/Tests/RunCMake/ExportPackageInfo/FileSetHeaders.cmake @@ -26,4 +26,4 @@ install( FILE_SET genex DESTINATION $<$:FAKE_DEST>genex ) -export(EXPORT foo PACKAGE_INFO foo) +export(PACKAGE_INFO foo EXPORT foo) diff --git a/Tests/RunCMake/ExportPackageInfo/InterfaceProperties.cmake b/Tests/RunCMake/ExportPackageInfo/InterfaceProperties.cmake index b8d34542f0..5e2f966821 100644 --- a/Tests/RunCMake/ExportPackageInfo/InterfaceProperties.cmake +++ b/Tests/RunCMake/ExportPackageInfo/InterfaceProperties.cmake @@ -13,4 +13,4 @@ target_link_libraries(foo INTERFACE /usr/lib/libm.so) set_property(TARGET foo PROPERTY SPDX_LICENSE "BSD-3-Clause") install(TARGETS foo EXPORT foo DESTINATION .) -export(EXPORT foo PACKAGE_INFO foo) +export(PACKAGE_INFO foo EXPORT foo) diff --git a/Tests/RunCMake/ExportPackageInfo/LinkInterfaceGeneratorExpression.cmake b/Tests/RunCMake/ExportPackageInfo/LinkInterfaceGeneratorExpression.cmake index 77442eff88..325eff8c03 100644 --- a/Tests/RunCMake/ExportPackageInfo/LinkInterfaceGeneratorExpression.cmake +++ b/Tests/RunCMake/ExportPackageInfo/LinkInterfaceGeneratorExpression.cmake @@ -5,7 +5,7 @@ add_library(bar foo.cxx) target_link_libraries(bar $<1:foo> $<1:$>) install(TARGETS foo EXPORT foo) -export(EXPORT foo PACKAGE_INFO foo) +export(PACKAGE_INFO foo EXPORT foo) install(TARGETS bar EXPORT bar) -export(EXPORT bar PACKAGE_INFO bar) +export(PACKAGE_INFO bar EXPORT bar) diff --git a/Tests/RunCMake/ExportPackageInfo/LinkOnly.cmake b/Tests/RunCMake/ExportPackageInfo/LinkOnly.cmake index 884c42e245..e261090cab 100644 --- a/Tests/RunCMake/ExportPackageInfo/LinkOnly.cmake +++ b/Tests/RunCMake/ExportPackageInfo/LinkOnly.cmake @@ -7,7 +7,7 @@ add_library(bar foo.cxx) target_link_libraries(bar $ $ foo) install(TARGETS foo linkOnlyOne linkOnlyTwo EXPORT foo) -export(EXPORT foo PACKAGE_INFO foo) +export(PACKAGE_INFO foo EXPORT foo) install(TARGETS bar EXPORT bar) -export(EXPORT bar PACKAGE_INFO bar) +export(PACKAGE_INFO bar EXPORT bar) diff --git a/Tests/RunCMake/ExportPackageInfo/LinkOnlyRecursive.cmake b/Tests/RunCMake/ExportPackageInfo/LinkOnlyRecursive.cmake index 014b9453cc..2e7bd92792 100644 --- a/Tests/RunCMake/ExportPackageInfo/LinkOnlyRecursive.cmake +++ b/Tests/RunCMake/ExportPackageInfo/LinkOnlyRecursive.cmake @@ -5,7 +5,7 @@ add_library(bar foo.cxx) target_link_libraries(bar $>) install(TARGETS foo EXPORT foo) -export(EXPORT foo PACKAGE_INFO foo) +export(PACKAGE_INFO foo EXPORT foo) install(TARGETS bar EXPORT bar) -export(EXPORT bar PACKAGE_INFO bar) +export(PACKAGE_INFO bar EXPORT bar) diff --git a/Tests/RunCMake/ExportPackageInfo/LowerCaseFile.cmake b/Tests/RunCMake/ExportPackageInfo/LowerCaseFile.cmake index 9becb5fe65..d0ce7c4a9e 100644 --- a/Tests/RunCMake/ExportPackageInfo/LowerCaseFile.cmake +++ b/Tests/RunCMake/ExportPackageInfo/LowerCaseFile.cmake @@ -1,4 +1,4 @@ add_library(foo INTERFACE) install(TARGETS foo EXPORT foo DESTINATION .) -export(EXPORT foo PACKAGE_INFO LowerCase LOWER_CASE_FILE) -export(EXPORT foo PACKAGE_INFO PreserveCase) +export(PACKAGE_INFO LowerCase EXPORT foo LOWER_CASE_FILE) +export(PACKAGE_INFO PreserveCase EXPORT foo) diff --git a/Tests/RunCMake/ExportPackageInfo/Metadata.cmake b/Tests/RunCMake/ExportPackageInfo/Metadata.cmake index 4f3bd16972..5923f10d12 100644 --- a/Tests/RunCMake/ExportPackageInfo/Metadata.cmake +++ b/Tests/RunCMake/ExportPackageInfo/Metadata.cmake @@ -1,8 +1,8 @@ add_library(foo INTERFACE) install(TARGETS foo EXPORT foo DESTINATION .) export( - EXPORT foo PACKAGE_INFO foo + EXPORT foo VERSION 1.2.3 VERSION_SCHEMA simple COMPAT_VERSION 1.2.0 diff --git a/Tests/RunCMake/ExportPackageInfo/Minimal.cmake b/Tests/RunCMake/ExportPackageInfo/Minimal.cmake index 9af1fede46..8fb5fe807b 100644 --- a/Tests/RunCMake/ExportPackageInfo/Minimal.cmake +++ b/Tests/RunCMake/ExportPackageInfo/Minimal.cmake @@ -1,3 +1,3 @@ add_library(foo INTERFACE) install(TARGETS foo EXPORT foo DESTINATION .) -export(EXPORT foo PACKAGE_INFO foo) +export(PACKAGE_INFO foo EXPORT foo) diff --git a/Tests/RunCMake/ExportPackageInfo/MinimalVersion.cmake b/Tests/RunCMake/ExportPackageInfo/MinimalVersion.cmake index 406ae2d341..8a78f2c593 100644 --- a/Tests/RunCMake/ExportPackageInfo/MinimalVersion.cmake +++ b/Tests/RunCMake/ExportPackageInfo/MinimalVersion.cmake @@ -1,16 +1,19 @@ add_library(foo INTERFACE) install(TARGETS foo EXPORT foo DESTINATION .) -export(EXPORT foo +export( PACKAGE_INFO foo1 + EXPORT foo VERSION 1.0) -export(EXPORT foo +export( PACKAGE_INFO foo2 + EXPORT foo VERSION 1.5 COMPAT_VERSION 1.0) -export(EXPORT foo +export( PACKAGE_INFO foo3 + EXPORT foo VERSION 1.0 VERSION_SCHEMA simple) diff --git a/Tests/RunCMake/ExportPackageInfo/NoProjectMetadata.cmake b/Tests/RunCMake/ExportPackageInfo/NoProjectMetadata.cmake index 425d92858d..895e01aa77 100644 --- a/Tests/RunCMake/ExportPackageInfo/NoProjectMetadata.cmake +++ b/Tests/RunCMake/ExportPackageInfo/NoProjectMetadata.cmake @@ -9,7 +9,7 @@ add_library(foo INTERFACE) install(TARGETS foo EXPORT foo DESTINATION .) export( - EXPORT foo PACKAGE_INFO foo + EXPORT foo NO_PROJECT_METADATA ) diff --git a/Tests/RunCMake/ExportPackageInfo/ProjectMetadata.cmake b/Tests/RunCMake/ExportPackageInfo/ProjectMetadata.cmake index 07352d783f..23daffd349 100644 --- a/Tests/RunCMake/ExportPackageInfo/ProjectMetadata.cmake +++ b/Tests/RunCMake/ExportPackageInfo/ProjectMetadata.cmake @@ -11,20 +11,21 @@ install(TARGETS foo EXPORT foo DESTINATION .) # Test inheriting from project matching package name. export( - EXPORT foo PACKAGE_INFO foo + EXPORT foo ) # Test inheriting from a specified project. export( + PACKAGE_INFO test1 EXPORT foo - PACKAGE_INFO test1 PROJECT foo + PROJECT foo ) # Test that inheriting doesn't override explicitly specified metadata. export( - EXPORT foo PACKAGE_INFO test2 + EXPORT foo PROJECT foo VERSION 1.4.7 LICENSE "Apache-2.0" diff --git a/Tests/RunCMake/ExportPackageInfo/ReferencesNonExportedTarget.cmake b/Tests/RunCMake/ExportPackageInfo/ReferencesNonExportedTarget.cmake index f8c1370ba4..3050f89e37 100644 --- a/Tests/RunCMake/ExportPackageInfo/ReferencesNonExportedTarget.cmake +++ b/Tests/RunCMake/ExportPackageInfo/ReferencesNonExportedTarget.cmake @@ -3,4 +3,4 @@ add_library(canine INTERFACE) target_link_libraries(canine INTERFACE mammal) install(TARGETS canine EXPORT dog DESTINATION .) -export(EXPORT dog PACKAGE_INFO dog) +export(PACKAGE_INFO dog EXPORT dog) diff --git a/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyExportedTarget.cmake b/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyExportedTarget.cmake index 66e51bdf12..e363e90366 100644 --- a/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyExportedTarget.cmake +++ b/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyExportedTarget.cmake @@ -11,4 +11,4 @@ export(EXPORT foo) export(EXPORT bar NAMESPACE bar_) install(TARGETS test EXPORT test DESTINATION .) -export(EXPORT test PACKAGE_INFO test) +export(PACKAGE_INFO test EXPORT test) diff --git a/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyImportedTarget.cmake b/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyImportedTarget.cmake index 93686f6cad..f70a6578c8 100644 --- a/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyImportedTarget.cmake +++ b/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyImportedTarget.cmake @@ -4,4 +4,4 @@ add_library(foo INTERFACE) target_link_libraries(foo INTERFACE bar) install(TARGETS foo EXPORT foo DESTINATION .) -export(EXPORT foo PACKAGE_INFO foo) +export(PACKAGE_INFO foo EXPORT foo) diff --git a/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyNamespacedTarget.cmake b/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyNamespacedTarget.cmake index d6188d3634..29ce28c192 100644 --- a/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyNamespacedTarget.cmake +++ b/Tests/RunCMake/ExportPackageInfo/ReferencesWronglyNamespacedTarget.cmake @@ -8,4 +8,4 @@ add_library(foo INTERFACE) target_link_libraries(foo INTERFACE wrong::lib) install(TARGETS foo EXPORT foo DESTINATION .) -export(EXPORT foo PACKAGE_INFO foo) +export(PACKAGE_INFO foo EXPORT foo) diff --git a/Tests/RunCMake/ExportPackageInfo/Requirements.cmake b/Tests/RunCMake/ExportPackageInfo/Requirements.cmake index bf6ffbbf51..bdd08339b5 100644 --- a/Tests/RunCMake/ExportPackageInfo/Requirements.cmake +++ b/Tests/RunCMake/ExportPackageInfo/Requirements.cmake @@ -14,7 +14,7 @@ add_library(bar ALIAS libc) target_link_libraries(libd INTERFACE test::liba foo bar) install(TARGETS libb EXPORT foo DESTINATION .) -export(EXPORT foo PACKAGE_INFO foo) +export(PACKAGE_INFO foo EXPORT foo) install(TARGETS libc libd EXPORT bar DESTINATION .) -export(EXPORT bar PACKAGE_INFO bar) +export(PACKAGE_INFO bar EXPORT bar) diff --git a/Tests/RunCMake/ExportPackageInfo/RunCMakeTest.cmake b/Tests/RunCMake/ExportPackageInfo/RunCMakeTest.cmake index b06c5453b9..3454a69517 100644 --- a/Tests/RunCMake/ExportPackageInfo/RunCMakeTest.cmake +++ b/Tests/RunCMake/ExportPackageInfo/RunCMakeTest.cmake @@ -20,8 +20,6 @@ run_cmake(BadArgs0) run_cmake(BadArgs1) run_cmake(BadArgs2) run_cmake(BadArgs3) -run_cmake(BadArgs4) -run_cmake(BadArgs5) run_cmake(BadName) run_cmake(DuplicateOutput) run_cmake(BadDefaultTarget) diff --git a/Tests/RunCMake/ExportPackageInfo/TargetTypes.cmake b/Tests/RunCMake/ExportPackageInfo/TargetTypes.cmake index 414e35ebb3..a49d5fe3fb 100644 --- a/Tests/RunCMake/ExportPackageInfo/TargetTypes.cmake +++ b/Tests/RunCMake/ExportPackageInfo/TargetTypes.cmake @@ -17,4 +17,4 @@ install( DESTINATION . ) -export(EXPORT foo PACKAGE_INFO foo) +export(PACKAGE_INFO foo EXPORT foo) diff --git a/Tests/RunCMake/ExportPackageInfo/TransitiveSymbolicComponent.cmake b/Tests/RunCMake/ExportPackageInfo/TransitiveSymbolicComponent.cmake index cf3cad1107..4eff28b3d0 100644 --- a/Tests/RunCMake/ExportPackageInfo/TransitiveSymbolicComponent.cmake +++ b/Tests/RunCMake/ExportPackageInfo/TransitiveSymbolicComponent.cmake @@ -11,4 +11,4 @@ find_package(Symbolic REQUIRED CONFIG target_link_libraries(bar INTERFACE Symbolic::test) install(TARGETS bar EXPORT bar DESTINATION .) -export(EXPORT bar PACKAGE_INFO bar) +export(PACKAGE_INFO bar EXPORT bar) diff --git a/Tests/RunCMake/ExportPackageInfo/VersionCheck.cmake b/Tests/RunCMake/ExportPackageInfo/VersionCheck.cmake index 206b458584..2b2f89f232 100644 --- a/Tests/RunCMake/ExportPackageInfo/VersionCheck.cmake +++ b/Tests/RunCMake/ExportPackageInfo/VersionCheck.cmake @@ -2,37 +2,37 @@ add_library(foo INTERFACE) install(TARGETS foo EXPORT foo DESTINATION .) # Try exporting a 'properly' simple version. -export(EXPORT foo PACKAGE_INFO foo1 VERSION 1.2.3) +export(PACKAGE_INFO foo1 EXPORT foo VERSION 1.2.3) # Try exporting a version with many components. -export(EXPORT foo PACKAGE_INFO foo2 VERSION 1.21.23.33.37.42.9.0.12) +export(PACKAGE_INFO foo2 EXPORT foo VERSION 1.21.23.33.37.42.9.0.12) # Try exporting a version with a label. -export(EXPORT foo PACKAGE_INFO foo3 VERSION "1.2.3+git1234abcd") +export(PACKAGE_INFO foo3 EXPORT foo VERSION "1.2.3+git1234abcd") # Try exporting a version with a different label. -export(EXPORT foo PACKAGE_INFO foo4 VERSION "1.2.3-0.example") +export(PACKAGE_INFO foo4 EXPORT foo VERSION "1.2.3-0.example") # Try exporting with the schema explicitly specified. export( - EXPORT foo PACKAGE_INFO foo5 + EXPORT foo VERSION "1.2.3-0.example" VERSION_SCHEMA "simple" ) # Try exporting with a custom-schema version. export( - EXPORT foo PACKAGE_INFO foo6 + EXPORT foo VERSION "foo!test" VERSION_SCHEMA "custom" ) # Try exporting with a recognized but not-checked schema. export( - EXPORT foo PACKAGE_INFO foo7 + EXPORT foo VERSION "invalid" VERSION_SCHEMA "pep440" ) diff --git a/Tests/RunCMake/ExportPackageInfo/VersionCheckError.cmake b/Tests/RunCMake/ExportPackageInfo/VersionCheckError.cmake index 1e766e6851..fece91f4ab 100644 --- a/Tests/RunCMake/ExportPackageInfo/VersionCheckError.cmake +++ b/Tests/RunCMake/ExportPackageInfo/VersionCheckError.cmake @@ -2,4 +2,4 @@ add_library(foo INTERFACE) install(TARGETS foo EXPORT foo DESTINATION .) # Try exporting a non-conforming version. -export(EXPORT foo PACKAGE_INFO foo VERSION "1.2.3rc1") +export(PACKAGE_INFO foo EXPORT foo VERSION "1.2.3rc1") diff --git a/Tests/RunCMake/ExportPackageInfo/VersionCheckWarning.cmake b/Tests/RunCMake/ExportPackageInfo/VersionCheckWarning.cmake index df123d2bec..4bb2d11714 100644 --- a/Tests/RunCMake/ExportPackageInfo/VersionCheckWarning.cmake +++ b/Tests/RunCMake/ExportPackageInfo/VersionCheckWarning.cmake @@ -8,8 +8,8 @@ install(TARGETS foo EXPORT foo DESTINATION .) # Try exporting with an unrecognized schema. export( - EXPORT foo PACKAGE_INFO foo + EXPORT foo VERSION "irrelevant" VERSION_SCHEMA "unrecognized" ) diff --git a/Tests/RunCMake/ExportSbom/ApplicationTarget.cmake b/Tests/RunCMake/ExportSbom/ApplicationTarget.cmake index 19be043cf1..39b0c29541 100644 --- a/Tests/RunCMake/ExportSbom/ApplicationTarget.cmake +++ b/Tests/RunCMake/ExportSbom/ApplicationTarget.cmake @@ -1,7 +1,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/../Sbom/ApplicationTarget.cmake) export( - EXPORT application_targets SBOM application_targets + EXPORT application_targets FORMAT "spdx-3.0+json" ) diff --git a/Tests/RunCMake/ExportSbom/InterfaceTarget.cmake b/Tests/RunCMake/ExportSbom/InterfaceTarget.cmake index c33e96b2ca..5bf0678d92 100644 --- a/Tests/RunCMake/ExportSbom/InterfaceTarget.cmake +++ b/Tests/RunCMake/ExportSbom/InterfaceTarget.cmake @@ -1,6 +1,6 @@ include(${CMAKE_CURRENT_LIST_DIR}/../Sbom/InterfaceTarget.cmake) export( - EXPORT interface_targets SBOM interface_targets + EXPORT interface_targets ) diff --git a/Tests/RunCMake/ExportSbom/MissingPackageNamespace.cmake b/Tests/RunCMake/ExportSbom/MissingPackageNamespace.cmake index be4855f402..235f3a7df8 100644 --- a/Tests/RunCMake/ExportSbom/MissingPackageNamespace.cmake +++ b/Tests/RunCMake/ExportSbom/MissingPackageNamespace.cmake @@ -1,7 +1,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/../Sbom/MissingPackageNamespace.cmake) export( - EXPORT test_targets SBOM interface_targets + EXPORT test_targets VERSION 1.0.2 ) diff --git a/Tests/RunCMake/ExportSbom/ProjectMetadata.cmake b/Tests/RunCMake/ExportSbom/ProjectMetadata.cmake index 7f0912df00..ed96780277 100644 --- a/Tests/RunCMake/ExportSbom/ProjectMetadata.cmake +++ b/Tests/RunCMake/ExportSbom/ProjectMetadata.cmake @@ -1,8 +1,8 @@ include(${CMAKE_CURRENT_LIST_DIR}/../Sbom/ProjectMetadata.cmake) export( - EXPORT test_targets SBOM test_targets + EXPORT test_targets DESCRIPTION "An eloquent description" LICENSE "BSD-3" HOMEPAGE_URL "www.example.com" diff --git a/Tests/RunCMake/ExportSbom/ReferencesNonExportedTarget.cmake b/Tests/RunCMake/ExportSbom/ReferencesNonExportedTarget.cmake index c0ca8b7597..dba5762396 100644 --- a/Tests/RunCMake/ExportSbom/ReferencesNonExportedTarget.cmake +++ b/Tests/RunCMake/ExportSbom/ReferencesNonExportedTarget.cmake @@ -1,3 +1,3 @@ include(${CMAKE_CURRENT_LIST_DIR}/../Sbom/ReferencesNonExportedTarget.cmake) -export(EXPORT dog SBOM dog) +export(SBOM dog EXPORT dog) diff --git a/Tests/RunCMake/ExportSbom/Requirements.cmake b/Tests/RunCMake/ExportSbom/Requirements.cmake index 6e31e03fa8..41b38a78c3 100644 --- a/Tests/RunCMake/ExportSbom/Requirements.cmake +++ b/Tests/RunCMake/ExportSbom/Requirements.cmake @@ -1,4 +1,4 @@ include(${CMAKE_CURRENT_LIST_DIR}/../Sbom/Requirements.cmake) -export(EXPORT foo SBOM foo) -export(EXPORT bar SBOM bar) +export(SBOM foo EXPORT foo) +export(SBOM bar EXPORT bar) diff --git a/Tests/RunCMake/ExportSbom/SharedTarget.cmake b/Tests/RunCMake/ExportSbom/SharedTarget.cmake index a322c7621a..02143cfc77 100644 --- a/Tests/RunCMake/ExportSbom/SharedTarget.cmake +++ b/Tests/RunCMake/ExportSbom/SharedTarget.cmake @@ -1,6 +1,6 @@ include(${CMAKE_CURRENT_LIST_DIR}/../Sbom/SharedTarget.cmake) export( - EXPORT shared_targets SBOM shared_targets + EXPORT shared_targets )