From 254916dfc643b13ff4ea1619459261056a04545d Mon Sep 17 00:00:00 2001 From: Matthew Woehlke Date: Mon, 12 Jan 2026 14:05:27 -0500 Subject: [PATCH] export: Make PACKAGE_INFO, SBOM sub-commands Change the interface of the `export` command so that `PACKAGE_INFO` and `SBOM` are proper, first-level sub-commands, rather than being implemented via `export(EXPORT ... (PACKAGE_INFO|SBOM) ...)`. This brings consistency with the `install` command and also simplifies argument parsing. Update the documentation and test cases accordingly. Some of the argument handling test cases are now rather gratuitous, and are removed, which also improves consistency with the `install` tests. --- Help/command/export.rst | 29 +- Source/cmExportCommand.cxx | 252 ++++++++++-------- .../CpsExportImportBuild/TestLibrary.cmake | 4 +- .../RunCMake/ExportPackageInfo/Appendix.cmake | 4 +- .../ExportPackageInfo/BadArgs0-stderr.txt | 24 +- .../RunCMake/ExportPackageInfo/BadArgs0.cmake | 6 +- .../RunCMake/ExportPackageInfo/BadArgs1.cmake | 8 +- .../RunCMake/ExportPackageInfo/BadArgs2.cmake | 2 +- .../ExportPackageInfo/BadArgs3-stderr.txt | 93 ++++++- .../RunCMake/ExportPackageInfo/BadArgs3.cmake | 15 +- .../ExportPackageInfo/BadArgs4-result.txt | 1 - .../ExportPackageInfo/BadArgs4-stderr.txt | 64 ----- .../RunCMake/ExportPackageInfo/BadArgs4.cmake | 14 - .../ExportPackageInfo/BadArgs5-result.txt | 1 - .../ExportPackageInfo/BadArgs5-stderr.txt | 95 ------- .../RunCMake/ExportPackageInfo/BadArgs5.cmake | 15 -- .../ExportPackageInfo/BadDefaultTarget.cmake | 2 +- .../RunCMake/ExportPackageInfo/BadName.cmake | 2 +- .../ExportPackageInfo/CompileOnly.cmake | 4 +- .../CompileOnlyRecursive.cmake | 4 +- Tests/RunCMake/ExportPackageInfo/Config.cmake | 2 +- .../DependencyVersionCMake.cmake | 2 +- .../DependencyVersionCps.cmake | 2 +- .../DependsMultipleCommon.cmake | 4 +- .../ExportPackageInfo/DuplicateOutput.cmake | 4 +- .../ExportPackageInfo/EmptyConfig.cmake | 2 +- .../ExperimentalGate-stderr.txt | 2 +- .../ExportPackageInfo/ExperimentalGate.cmake | 2 +- .../ExperimentalWarning.cmake | 2 +- .../ExportSymbolicComponent.cmake | 2 +- .../ExportPackageInfo/FileSetHeaders.cmake | 2 +- .../InterfaceProperties.cmake | 2 +- .../LinkInterfaceGeneratorExpression.cmake | 4 +- .../RunCMake/ExportPackageInfo/LinkOnly.cmake | 4 +- .../ExportPackageInfo/LinkOnlyRecursive.cmake | 4 +- .../ExportPackageInfo/LowerCaseFile.cmake | 4 +- .../RunCMake/ExportPackageInfo/Metadata.cmake | 2 +- .../RunCMake/ExportPackageInfo/Minimal.cmake | 2 +- .../ExportPackageInfo/MinimalVersion.cmake | 9 +- .../ExportPackageInfo/NoProjectMetadata.cmake | 2 +- .../ExportPackageInfo/ProjectMetadata.cmake | 7 +- .../ReferencesNonExportedTarget.cmake | 2 +- .../ReferencesWronglyExportedTarget.cmake | 2 +- .../ReferencesWronglyImportedTarget.cmake | 2 +- .../ReferencesWronglyNamespacedTarget.cmake | 2 +- .../ExportPackageInfo/Requirements.cmake | 4 +- .../ExportPackageInfo/RunCMakeTest.cmake | 2 - .../ExportPackageInfo/TargetTypes.cmake | 2 +- .../TransitiveSymbolicComponent.cmake | 2 +- .../ExportPackageInfo/VersionCheck.cmake | 14 +- .../ExportPackageInfo/VersionCheckError.cmake | 2 +- .../VersionCheckWarning.cmake | 2 +- .../ExportSbom/ApplicationTarget.cmake | 2 +- .../RunCMake/ExportSbom/InterfaceTarget.cmake | 2 +- .../ExportSbom/MissingPackageNamespace.cmake | 2 +- .../RunCMake/ExportSbom/ProjectMetadata.cmake | 2 +- .../ReferencesNonExportedTarget.cmake | 2 +- Tests/RunCMake/ExportSbom/Requirements.cmake | 4 +- Tests/RunCMake/ExportSbom/SharedTarget.cmake | 2 +- 59 files changed, 363 insertions(+), 394 deletions(-) delete mode 100644 Tests/RunCMake/ExportPackageInfo/BadArgs4-result.txt delete mode 100644 Tests/RunCMake/ExportPackageInfo/BadArgs4-stderr.txt delete mode 100644 Tests/RunCMake/ExportPackageInfo/BadArgs4.cmake delete mode 100644 Tests/RunCMake/ExportPackageInfo/BadArgs5-result.txt delete mode 100644 Tests/RunCMake/ExportPackageInfo/BadArgs5-stderr.txt delete mode 100644 Tests/RunCMake/ExportPackageInfo/BadArgs5.cmake 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 )