mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-04 22:29:40 -06:00
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.
This commit is contained in:
@@ -16,6 +16,8 @@ Synopsis
|
||||
export(`EXPORT`_ <export-name> [...])
|
||||
export(`PACKAGE`_ <PackageName>)
|
||||
export(`SETUP`_ <export-name> [...])
|
||||
export(`PACKAGE_INFO`_ <package-name> [...])
|
||||
export(`SBOM`_ <sbom-name> [...])
|
||||
|
||||
Exporting Targets
|
||||
^^^^^^^^^^^^^^^^^
|
||||
@@ -130,9 +132,12 @@ of the :command:`install(TARGETS)` command.
|
||||
Exporting Targets to the |CPS|
|
||||
""""""""""""""""""""""""""""""
|
||||
|
||||
.. signature::
|
||||
export(PACKAGE_INFO <package-name> [...])
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
export(EXPORT <export-name> PACKAGE_INFO <package-name>
|
||||
export(PACKAGE_INFO <package-name> EXPORT <export-name>
|
||||
[PROJECT <project-name>|NO_PROJECT_METADATA]
|
||||
[APPENDIX <appendix-name>]
|
||||
[LOWER_CASE_FILE]
|
||||
@@ -146,7 +151,7 @@ Exporting Targets to the |CPS|
|
||||
[DESCRIPTION <description-string>]
|
||||
[HOMEPAGE_URL <url-string>])
|
||||
|
||||
.. 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 <sbom-name> [...])
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
export(EXPORT <export-name> SBOM <sbom-name>
|
||||
[PROJECT <project-name>|NO_PROJECT_METADATA]
|
||||
[DESTINATION <dir>]
|
||||
[VERSION <major>[.<minor>[.<patch>[.<tweak>]]]]
|
||||
[LICENSE <license-string>]
|
||||
[DESCRIPTION <description-string>]
|
||||
[HOMEPAGE_URL <url-string>]
|
||||
[PACKAGE_URL <url-string>]
|
||||
[FORMAT <string>])
|
||||
export(SBOM <sbom-name> EXPORT <export-name>
|
||||
[FORMAT <string>]
|
||||
[PROJECT <project-name>|NO_PROJECT_METADATA]
|
||||
[VERSION <major>[.<minor>[.<patch>[.<tweak>]]]]
|
||||
[LICENSE <license-string>]
|
||||
[DESCRIPTION <description-string>]
|
||||
[HOMEPAGE_URL <url-string>]
|
||||
[PACKAGE_URL <url-string>])
|
||||
|
||||
.. versionadded:: 4.3
|
||||
.. note::
|
||||
|
||||
@@ -51,6 +51,43 @@
|
||||
static void StorePackageRegistry(cmMakefile& mf, std::string const& package,
|
||||
char const* content, char const* hash);
|
||||
|
||||
static cm::optional<cmExportSet*> 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<cmExportBuildFileGenerator> 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<std::string> 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<std::string> const& args,
|
||||
cmExecutionStatus& status)
|
||||
{
|
||||
@@ -218,8 +255,6 @@ static bool HandleExportMode(std::vector<std::string> const& args,
|
||||
ArgumentParser::MaybeEmpty<std::string> Namespace;
|
||||
ArgumentParser::NonEmpty<std::string> Filename;
|
||||
ArgumentParser::NonEmpty<std::string> CxxModulesDirectory;
|
||||
cm::optional<cmPackageInfoArguments> PackageInfo;
|
||||
cm::optional<cmSbomArguments> Sbom;
|
||||
bool ExportPackageDependencies = false;
|
||||
};
|
||||
|
||||
@@ -237,39 +272,16 @@ static bool HandleExportMode(std::vector<std::string> const& args,
|
||||
&ExportArguments::ExportPackageDependencies);
|
||||
}
|
||||
|
||||
cmArgumentParser<cmPackageInfoArguments> packageInfoParser;
|
||||
cmPackageInfoArguments::Bind(packageInfoParser);
|
||||
|
||||
if (cmExperimental::HasSupportEnabled(
|
||||
status.GetMakefile(), cmExperimental::Feature::ExportPackageInfo)) {
|
||||
parser.BindSubParser("PACKAGE_INFO"_s, packageInfoParser,
|
||||
&ExportArguments::PackageInfo);
|
||||
}
|
||||
|
||||
cmArgumentParser<cmSbomArguments> sbomParser;
|
||||
cmSbomArguments::Bind(sbomParser);
|
||||
|
||||
if (cmExperimental::HasSupportEnabled(
|
||||
status.GetMakefile(), cmExperimental::Feature::GenerateSbom)) {
|
||||
parser.BindSubParser("SBOM"_s, sbomParser, &ExportArguments::Sbom);
|
||||
}
|
||||
|
||||
std::vector<std::string> 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<std::string> 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<std::string> 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<cmExportSet*> const exportSet =
|
||||
GetExportSet(arguments.ExportSetName, gg, status);
|
||||
if (!exportSet) {
|
||||
return false;
|
||||
}
|
||||
exportSet = &it->second;
|
||||
|
||||
// Set up export file generation.
|
||||
std::unique_ptr<cmExportBuildFileGenerator> ebfg = nullptr;
|
||||
if (arguments.PackageInfo) {
|
||||
auto ebpg = cm::make_unique<cmExportBuildPackageInfoGenerator>(
|
||||
*arguments.PackageInfo);
|
||||
ebfg = std::move(ebpg);
|
||||
} else if (arguments.Sbom) {
|
||||
auto ebsg = cm::make_unique<cmExportBuildSbomGenerator>(*arguments.Sbom);
|
||||
ebfg = std::move(ebsg);
|
||||
} else {
|
||||
auto ebcg = cm::make_unique<cmExportBuildCMakeConfigGenerator>();
|
||||
ebcg->SetNamespace(arguments.Namespace);
|
||||
ebcg->SetExportPackageDependencies(arguments.ExportPackageDependencies);
|
||||
ebfg = std::move(ebcg);
|
||||
}
|
||||
auto ebcg = cm::make_unique<cmExportBuildCMakeConfigGenerator>();
|
||||
ebcg->SetNamespace(arguments.Namespace);
|
||||
ebcg->SetExportPackageDependencies(arguments.ExportPackageDependencies);
|
||||
|
||||
ebfg->SetExportFile(fname.c_str());
|
||||
ebfg->SetCxxModuleDirectory(arguments.CxxModulesDirectory);
|
||||
if (exportSet) {
|
||||
ebfg->SetExportSet(exportSet);
|
||||
}
|
||||
std::vector<std::string> 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 <typename ArgumentsType, typename GeneratorType>
|
||||
static bool HandleSpecialExportMode(std::vector<std::string> const& args,
|
||||
cmExecutionStatus& status)
|
||||
{
|
||||
struct ExportArguments
|
||||
: public ArgumentsType
|
||||
, public ArgumentParser::ParseResult
|
||||
{
|
||||
ArgumentParser::NonEmpty<std::string> ExportSetName;
|
||||
ArgumentParser::NonEmpty<std::string> CxxModulesDirectory;
|
||||
|
||||
using ArgumentsType::Check;
|
||||
using ArgumentParser::ParseResult::Check;
|
||||
};
|
||||
|
||||
auto parser =
|
||||
cmArgumentParser<ExportArguments>{}
|
||||
.Bind("EXPORT"_s, &ExportArguments::ExportSetName)
|
||||
.Bind("CXX_MODULES_DIRECTORY"_s, &ExportArguments::CxxModulesDirectory);
|
||||
ArgumentsType::Bind(parser);
|
||||
|
||||
std::vector<std::string> 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<cmExportSet*> const exportSet =
|
||||
GetExportSet(arguments.ExportSetName, gg, status);
|
||||
if (!exportSet) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Create the export build generator
|
||||
auto ebpg = cm::make_unique<GeneratorType>(arguments);
|
||||
AddExportGenerator(mf, gg, std::move(ebpg), fname, *exportSet,
|
||||
arguments.CxxModulesDirectory);
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool HandlePackageInfoMode(std::vector<std::string> 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<arg_t, gen_t>(args, status);
|
||||
}
|
||||
|
||||
static bool HandleSbomMode(std::vector<std::string> 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<arg_t, gen_t>(args, status);
|
||||
}
|
||||
|
||||
static bool HandleSetupMode(std::vector<std::string> const& args,
|
||||
cmExecutionStatus& status)
|
||||
{
|
||||
@@ -675,6 +701,8 @@ bool cmExportCommand(std::vector<std::string> const& args,
|
||||
{ "EXPORT"_s, HandleExportMode },
|
||||
{ "SETUP"_s, HandleSetupMode },
|
||||
{ "PACKAGE"_s, HandlePackageMode },
|
||||
{ "PACKAGE_INFO"_s, HandlePackageInfoMode },
|
||||
{ "SBOM"_s, HandleSbomMode },
|
||||
};
|
||||
|
||||
return subcommand(args[0], args, status);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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\):
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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\)
|
||||
|
||||
@@ -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 "")
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
1
|
||||
@@ -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\)
|
||||
@@ -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)
|
||||
@@ -1 +0,0 @@
|
||||
1
|
||||
@@ -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\)
|
||||
@@ -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 "")
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -7,7 +7,7 @@ add_library(bar foo.cxx)
|
||||
target_link_libraries(bar $<COMPILE_ONLY:linkOnlyOne> $<COMPILE_ONLY:linkOnlyTwo> 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)
|
||||
|
||||
@@ -5,7 +5,7 @@ add_library(bar foo.cxx)
|
||||
target_link_libraries(bar $<COMPILE_ONLY:$<COMPILE_ONLY:foo>>)
|
||||
|
||||
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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -26,4 +26,4 @@ install(
|
||||
FILE_SET genex
|
||||
DESTINATION $<$<CONFIG:FAKE_CONFIG>:FAKE_DEST>genex
|
||||
)
|
||||
export(EXPORT foo PACKAGE_INFO foo)
|
||||
export(PACKAGE_INFO foo EXPORT foo)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -5,7 +5,7 @@ add_library(bar foo.cxx)
|
||||
target_link_libraries(bar $<1:foo> $<1:$<CONFIG>>)
|
||||
|
||||
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)
|
||||
|
||||
@@ -7,7 +7,7 @@ add_library(bar foo.cxx)
|
||||
target_link_libraries(bar $<LINK_ONLY:linkOnlyOne> $<LINK_ONLY:linkOnlyTwo> 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)
|
||||
|
||||
@@ -5,7 +5,7 @@ add_library(bar foo.cxx)
|
||||
target_link_libraries(bar $<LINK_ONLY:$<LINK_ONLY:foo>>)
|
||||
|
||||
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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -17,4 +17,4 @@ install(
|
||||
DESTINATION .
|
||||
)
|
||||
|
||||
export(EXPORT foo PACKAGE_INFO foo)
|
||||
export(PACKAGE_INFO foo EXPORT foo)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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"
|
||||
)
|
||||
|
||||
@@ -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"
|
||||
)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/../Sbom/InterfaceTarget.cmake)
|
||||
|
||||
export(
|
||||
EXPORT interface_targets
|
||||
SBOM interface_targets
|
||||
EXPORT interface_targets
|
||||
)
|
||||
|
||||
@@ -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
|
||||
)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/../Sbom/ReferencesNonExportedTarget.cmake)
|
||||
|
||||
export(EXPORT dog SBOM dog)
|
||||
export(SBOM dog EXPORT dog)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/../Sbom/SharedTarget.cmake)
|
||||
|
||||
export(
|
||||
EXPORT shared_targets
|
||||
SBOM shared_targets
|
||||
EXPORT shared_targets
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user