c++modules: Correctly calculate and apply usage effects

Usage effects describe the relationship between a provider and a
consumer of C++ module interface units. They encompass the flags and
features used to construct BMIs for those units. If the usage effects of
a provider and consumer match, then the provider's BMI may be reused
as-is. If they do not match, then a synthetic target describing the
interface units with the consumer's usage effects applied must be
created.

This commit makes three major changes to how usage effects are reified
in CMake. The first is simple, usage effect hashes now use compile
options and features as the input to their hash instead of the consumer
name. A simply warning flag filter is also applied, mostly to
demonstrate the mechanism. This is the "correct calculation" for usage
effects.

The second is more impactful, usage effects now entirely replace the
compile options of providers with those of consumers if unmatched.
Compile definitions, includes, and links remain unchanged. This is
necessary to ensure successful builds, but is a tricky semantic change.

The third is mostly source-facing, the discovery model for CxxModule
synthetic targets is no longer the global target namespace. Instead,
non-synthetic targets manage their synthetic derivatives. Every target
maintains a usage effect-keyed cache of synthetic targets. When
determining if a synthetic target is necessary, a given provider checks
for compatibility with itself, then for presence in the cache, and if
the cache misses a new synthetic target is created.

Fixes: #27597
This commit is contained in:
Vito Gamberini
2026-06-02 15:41:40 -04:00
parent 3d9d779232
commit bfba7f68af
26 changed files with 1701 additions and 237 deletions
-1
View File
@@ -512,7 +512,6 @@ add_library(
cmStdIoTerminal.cxx
cmStringAlgorithms.cxx
cmStringAlgorithms.h
cmSyntheticTargetCache.h
cmSystemTools.cxx
cmSystemTools.h
cmTarget.cxx
+127 -14
View File
@@ -2,28 +2,141 @@
file LICENSE.rst or https://cmake.org/licensing for details. */
#include "cmCxxModuleUsageEffects.h"
#include <cm/optional>
#include <algorithm>
#include <set>
#include <vector>
#include <cm/string_view>
#include "cmCryptoHash.h"
#include "cmGeneratorTarget.h"
#include "cmListFileCache.h"
#include "cmMakefile.h"
#include "cmTarget.h"
#include "cmValue.h"
namespace {
bool IsMSVCWarning(cm::string_view flag)
{
if (flag.size() < 2) {
return false;
}
if (flag.front() != '/' && flag.front() != '-') {
return false;
}
flag.remove_prefix(1);
if (flag.front() == 'w' || flag.front() == 'W') {
return true;
}
if (flag.substr(0, 9) == "external:") {
return true;
}
return false;
}
bool IsGNUWarning(cm::string_view flag)
{
if (flag.size() < 2) {
return false;
}
if (flag.front() != '-') {
return false;
}
flag.remove_prefix(1);
if (flag.front() == 'w' || flag.front() == 'W') {
return true;
}
if (flag.front() == '-') {
flag.remove_prefix(1);
}
static std::set<cm::string_view> const long_names{
"pedantic", "pedantic-errors", "all-warnings", "extra-warnings",
"no-warnings"
};
return long_names.find(flag) != long_names.end();
}
bool UnknownFilter(cm::string_view)
{
return false;
}
using FlagFilter = bool (*)(cm::string_view flag);
FlagFilter GetFlagFilter(cmGeneratorTarget const* gt)
{
static FlagFilter filter = nullptr;
if (filter) {
return filter;
}
cmValue frontendVariant =
gt->Makefile->GetDefinition("CMAKE_CXX_COMPILER_FRONTEND_VARIANT");
if (frontendVariant == "GNU") {
filter = IsGNUWarning;
} else if (frontendVariant == "MSVC") {
filter = IsMSVCWarning;
} else {
filter = UnknownFilter;
}
return filter;
}
template <typename Range>
void AppendUsageEntries(std::string& usageHashInput, Range const& entries)
{
std::vector<std::string> entryValues;
for (auto const& entry : entries) {
entryValues.push_back(entry.Value);
}
std::sort(entryValues.begin(), entryValues.end());
for (auto const& entryValue : entryValues) {
usageHashInput += entryValue;
usageHashInput.push_back('\n');
}
usageHashInput.push_back('\0');
}
}
cmCxxModuleUsageEffects::cmCxxModuleUsageEffects(cmGeneratorTarget const* gt)
{
auto const* tgt = gt->Target;
auto const filter = GetFlagFilter(gt);
std::string usageHashInput;
if (tgt->IsImported()) {
AppendUsageEntries(usageHashInput,
tgt->GetImportedCxxModulesCompileFeaturesEntries());
AppendUsageEntries(
usageHashInput,
tgt->GetImportedCxxModulesCompileOptionsEntries().filter(
[&](const BT<std::string>& flag) { return !filter(flag.Value); }));
} else {
AppendUsageEntries(usageHashInput, tgt->GetCompileFeaturesEntries());
AppendUsageEntries(
usageHashInput,
tgt->GetCompileOptionsEntries().filter(
[&](const BT<std::string>& flag) { return !filter(flag.Value); }));
}
cmCryptoHash hasher(cmCryptoHash::AlgoSHA3_512);
this->Hash = hasher.HashString(gt->GetName());
// Collect compile features from the consuming target.
for (auto const& feature : gt->Target->GetCompileFeaturesEntries()) {
this->CompileFeatures.emplace_back(feature);
}
}
void cmCxxModuleUsageEffects::ApplyToTarget(cmTarget* tgt)
{
for (auto const& feature : this->CompileFeatures) {
tgt->AppendProperty("COMPILE_FEATURES", feature.Value, feature.Backtrace);
}
this->Hash = hasher.HashString(usageHashInput);
}
std::string const& cmCxxModuleUsageEffects::GetHash() const
-7
View File
@@ -5,22 +5,15 @@
#include "cmConfigure.h" // IWYU pragma: keep
#include <string>
#include <vector>
#include "cmListFileCache.h"
class cmGeneratorTarget;
class cmTarget;
class cmCxxModuleUsageEffects
{
public:
cmCxxModuleUsageEffects(cmGeneratorTarget const* gt);
void ApplyToTarget(cmTarget* tgt);
std::string const& GetHash() const;
private:
std::string Hash;
std::vector<BT<std::string>> CompileFeatures;
};
+112 -86
View File
@@ -52,7 +52,6 @@
#include "cmState.h"
#include "cmStateTypes.h"
#include "cmStringAlgorithms.h"
#include "cmSyntheticTargetCache.h"
#include "cmSystemTools.h"
#include "cmTarget.h"
#include "cmTargetLinkLibraryType.h"
@@ -5400,12 +5399,114 @@ bool cmGeneratorTarget::ApplyCXXStdTargets()
return true;
}
bool cmGeneratorTarget::DiscoverSyntheticTargets(
cmSyntheticTargetCache& cache, std::string const& config,
cmGeneratorTarget const* bmiConsumer)
cmCxxModuleUsageEffects const& cmGeneratorTarget::GetCxxModuleUsageEffects()
const
{
if (!this->CxxModuleUsageEffects) {
this->CxxModuleUsageEffects.emplace(this);
}
return *this->CxxModuleUsageEffects;
}
cmGeneratorTarget const* cmGeneratorTarget::GetTargetForCxxModules(
std::string const& config, cmGeneratorTarget const& bmiConsumer) const
{
auto const& consumingUsage = bmiConsumer.GetCxxModuleUsageEffects();
auto const& owningUsage = this->GetCxxModuleUsageEffects();
if (consumingUsage.GetHash() == owningUsage.GetHash()) {
if (this->IsImported()) {
return this->GetCxxSyntheticTarget(config, *this);
}
return this;
}
return this->GetCxxSyntheticTarget(config, bmiConsumer);
}
cmGeneratorTarget const* cmGeneratorTarget::GetCxxSyntheticTarget(
std::string const& config, cmGeneratorTarget const& bmiConsumer) const
{
auto const& usageHash = bmiConsumer.GetCxxModuleUsageEffects().GetHash();
auto cached = this->SynthCxxTargets.find(usageHash);
if (cached != this->SynthCxxTargets.end()) {
return cached->second;
}
auto targetNameBase = this->GetName();
if (this->IsImported()) {
cmSystemTools::ReplaceString(targetNameBase, "::", "__");
}
auto const targetName =
cmStrCat(targetNameBase, "@synth_", this->SynthCxxTargets.size());
std::vector<std::string> allConfigs =
this->Makefile->GetGeneratorConfigs(cmMakefile::IncludeEmptyConfig);
auto const* model = this->Target;
auto* mf = this->Makefile;
auto* lg = this->GetLocalGenerator();
auto* tgt =
mf->AddSynthesizedTarget(cmStateEnums::INTERFACE_LIBRARY, targetName);
// Copy relevant information from the existing target.
// Copy policies to the target.
tgt->CopyPolicyStatuses(model);
// Copy file sets.
{
for (auto const* gfs :
this->GetInterfaceFileSets(cm::FileSetMetadata::CXX_MODULES)) {
auto* newFs =
tgt
->GetOrCreateFileSet(gfs->GetName(), gfs->GetType(),
cm::FileSetMetadata::Visibility::Public)
.first;
newFs->CopyEntries(gfs->GetFileSet());
}
}
// Copy properties which effect consumer compatibility
tgt->CopyUsageEffects(bmiConsumer.Target);
// Copy properties which don't effect consumer compatibility
tgt->CopyCxxModulesEntries(model);
// Copy other properties which may affect the C++ module BMI generation.
tgt->CopyCxxModulesProperties(model);
tgt->AddLinkLibrary(*mf, cmStrCat("$<COMPILE_ONLY:", model->GetName(), '>'),
GENERAL_LibraryType);
// Create the generator target and attach it to the local generator.
auto gtp = cm::make_unique<cmGeneratorTarget>(tgt, lg);
auto* syntheticTarget = gtp.get();
// See `localGen->ComputeTargetCompileFeatures()` call in
// `cmGlobalGenerator::Compute` for where non-synthetic targets resolve
// this.
for (auto const& innerConfig : allConfigs) {
gtp->ComputeCompileFeatures(innerConfig);
}
// See `cmGlobalGenerator::ApplyCXXStdTargets` in
// `cmGlobalGenerator::Compute` for non-synthetic target resolutions.
if (!gtp->ApplyCXXStdTargets()) {
return nullptr;
}
lg->AddGeneratorTarget(std::move(gtp));
this->SynthCxxTargets[usageHash] = syntheticTarget;
if (!syntheticTarget->DiscoverSyntheticTargets(config, &bmiConsumer)) {
return nullptr;
}
return syntheticTarget;
}
bool cmGeneratorTarget::DiscoverSyntheticTargets(
std::string const& config, cmGeneratorTarget const* bmiConsumer)
{
auto& configInfo = this->Configs[config];
cmOptionalLinkImplementation impl;
this->ComputeLinkImplementationLibraries(config, impl, UseTo::Link);
@@ -5413,9 +5514,7 @@ bool cmGeneratorTarget::DiscoverSyntheticTargets(
bmiConsumer = this;
}
cmCxxModuleUsageEffects usage(bmiConsumer);
auto& SyntheticDeps = this->Configs[config].SyntheticDeps;
auto& SyntheticDeps = configInfo.SyntheticDeps;
for (auto const& entry : impl.Libraries) {
auto const* gt = entry.Target;
@@ -5431,86 +5530,13 @@ bool cmGeneratorTarget::DiscoverSyntheticTargets(
continue;
}
cmCryptoHash hasher(cmCryptoHash::AlgoSHA3_512);
constexpr size_t HASH_TRUNCATION = 12;
auto dirhash =
hasher.HashString(gt->GetLocalGenerator()->GetCurrentBinaryDirectory());
std::string safeName = gt->GetName();
cmSystemTools::ReplaceString(safeName, ":", "_");
auto targetIdent =
hasher.HashString(cmStrCat("@d_", dirhash, "@u_", usage.GetHash()));
std::string targetName =
cmStrCat(safeName, "@synth_", targetIdent.substr(0, HASH_TRUNCATION));
// Check the cache to see if this instance of the target has
// already been created.
auto cached = cache.CxxModuleTargets.find(targetName);
cmGeneratorTarget const* synthDep = nullptr;
if (cached == cache.CxxModuleTargets.end()) {
auto const* model = gt->Target;
auto* mf = gt->Makefile;
auto* lg = gt->GetLocalGenerator();
auto* tgt =
mf->AddSynthesizedTarget(cmStateEnums::INTERFACE_LIBRARY, targetName);
// Copy relevant information from the existing target.
// Copy policies to the target.
tgt->CopyPolicyStatuses(model);
// Copy file sets.
{
for (auto const* gfs :
gt->GetInterfaceFileSets(cm::FileSetMetadata::CXX_MODULES)) {
auto* newFs =
tgt
->GetOrCreateFileSet(gfs->GetName(), gfs->GetType(),
cm::FileSetMetadata::Visibility::Public)
.first;
newFs->CopyEntries(gfs->GetFileSet());
}
}
// Copy C++ module properties.
tgt->CopyCxxModulesEntries(model);
// Copy other properties which may affect the C++ module BMI
// generation.
tgt->CopyCxxModulesProperties(model);
tgt->AddLinkLibrary(*mf,
cmStrCat("$<COMPILE_ONLY:", model->GetName(), '>'),
GENERAL_LibraryType);
// Apply usage requirements to the target.
usage.ApplyToTarget(tgt);
// Create the generator target and attach it to the local generator.
auto gtp = cm::make_unique<cmGeneratorTarget>(tgt, lg);
synthDep = gtp.get();
cache.CxxModuleTargets[targetName] = synthDep;
// See `localGen->ComputeTargetCompileFeatures()` call in
// `cmGlobalGenerator::Compute` for where non-synthetic targets resolve
// this.
for (auto const& innerConfig : allConfigs) {
gtp->ComputeCompileFeatures(innerConfig);
}
// See `cmGlobalGenerator::ApplyCXXStdTargets` in
// `cmGlobalGenerator::Compute` for non-synthetic target resolutions.
if (!gtp->ApplyCXXStdTargets()) {
return false;
}
gtp->DiscoverSyntheticTargets(cache, config, bmiConsumer);
lg->AddGeneratorTarget(std::move(gtp));
} else {
synthDep = cached->second;
auto const* dep = gt->GetTargetForCxxModules(config, *bmiConsumer);
if (!dep) {
return false;
}
if (dep->IsSynthetic()) {
SyntheticDeps[gt].push_back(dep);
}
SyntheticDeps[gt].push_back(synthDep);
}
return true;
+10 -3
View File
@@ -19,6 +19,7 @@
#include <cm/string_view>
#include "cmAlgorithms.h"
#include "cmCxxModuleUsageEffects.h"
#include "cmLinkItem.h"
#include "cmList.h"
#include "cmListFileCache.h"
@@ -45,7 +46,6 @@ class cmGeneratorFileSet;
class cmGlobalGenerator;
class cmLocalGenerator;
class cmMakefile;
struct cmSyntheticTargetCache;
class cmTarget;
struct cmGeneratorExpressionDAGChecker;
@@ -1145,9 +1145,11 @@ public:
std::string GetImportedXcFrameworkPath(std::string const& config) const;
bool ApplyCXXStdTargets();
cmCxxModuleUsageEffects const& GetCxxModuleUsageEffects() const;
cmGeneratorTarget const* GetTargetForCxxModules(
std::string const& config, cmGeneratorTarget const& bmiConsumer) const;
bool DiscoverSyntheticTargets(
cmSyntheticTargetCache& cache, std::string const& config,
cmGeneratorTarget const* bmiConsumer = nullptr);
std::string const& config, cmGeneratorTarget const* bmiConsumer = nullptr);
using SyntheticDepsMap =
std::map<cmGeneratorTarget const*, std::vector<cmGeneratorTarget const*>>;
@@ -1180,6 +1182,9 @@ public:
private:
void AddSourceCommon(std::string const& src, bool before = false);
cmGeneratorTarget const* GetCxxSyntheticTarget(
std::string const& config, cmGeneratorTarget const& bmiConsumer) const;
std::string CreateFortranModuleDirectory(
std::string const& working_dir) const;
mutable bool FortranModuleDirectoryCreated = false;
@@ -1609,6 +1614,8 @@ private:
SyntheticDeps;
std::map<cmSourceFile const*, ClassifiedFlags> SourceFlags;
};
mutable std::map<std::string, cmGeneratorTarget*> SynthCxxTargets;
mutable cm::optional<cmCxxModuleUsageEffects> CxxModuleUsageEffects;
mutable std::map<std::string, InfoByConfig> Configs;
std::unique_ptr<cmGeneratorFileSets> FileSets;
bool PchReused = false;
+1 -4
View File
@@ -61,7 +61,6 @@
#include "cmStateDirectory.h"
#include "cmStateTypes.h"
#include "cmStringAlgorithms.h"
#include "cmSyntheticTargetCache.h"
#include "cmSystemTools.h"
#include "cmValue.h"
#include "cmVersion.h"
@@ -1895,8 +1894,6 @@ bool cmGlobalGenerator::ApplyCXXStdTargets()
bool cmGlobalGenerator::DiscoverSyntheticTargets()
{
cmSyntheticTargetCache cache;
for (auto const& gen : this->LocalGenerators) {
// Because DiscoverSyntheticTargets() adds generator targets, we need to
// cache the existing list of generator targets before starting.
@@ -1911,7 +1908,7 @@ bool cmGlobalGenerator::DiscoverSyntheticTargets()
tgt->Makefile->GetGeneratorConfigs(cmMakefile::IncludeEmptyConfig);
for (auto const& config : configs) {
if (!tgt->DiscoverSyntheticTargets(cache, config)) {
if (!tgt->DiscoverSyntheticTargets(config)) {
return false;
}
}
-15
View File
@@ -1,15 +0,0 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file LICENSE.rst or https://cmake.org/licensing for details. */
#pragma once
#include "cmConfigure.h" // IWYU pragma: keep
#include <map>
#include <string>
class cmGeneratorTarget;
struct cmSyntheticTargetCache
{
std::map<std::string, cmGeneratorTarget const*> CxxModuleTargets;
};
+35 -10
View File
@@ -1679,11 +1679,21 @@ cmBTStringRange cmTarget::GetCompileOptionsEntries() const
return cmMakeRange(this->impl->CompileOptions.Entries);
}
cmBTStringRange cmTarget::GetImportedCxxModulesCompileOptionsEntries() const
{
return cmMakeRange(this->impl->ImportedCxxModulesCompileOptions.Entries);
}
cmBTStringRange cmTarget::GetCompileFeaturesEntries() const
{
return cmMakeRange(this->impl->CompileFeatures.Entries);
}
cmBTStringRange cmTarget::GetImportedCxxModulesCompileFeaturesEntries() const
{
return cmMakeRange(this->impl->ImportedCxxModulesCompileFeatures.Entries);
}
cmBTStringRange cmTarget::GetCompileDefinitionsEntries() const
{
return cmMakeRange(this->impl->CompileDefinitions.Entries);
@@ -1729,6 +1739,31 @@ cmBTStringRange cmTarget::GetLinkInterfaceDirectExcludeEntries() const
return cmMakeRange(this->impl->InterfaceLinkLibrariesDirectExclude.Entries);
}
void cmTarget::CopyUsageEffects(cmTarget const* tgt)
{
// Normal targets cannot be the target of a copy.
assert(!this->IsNormal());
// Imported targets cannot be the target of a copy.
assert(!this->IsImported());
// Only imported or normal targets can be the source of a copy.
assert(tgt->IsImported() || tgt->IsNormal());
this->impl->CompileFeatures.Entries.clear();
this->impl->CompileOptions.Entries.clear();
if (tgt->IsImported()) {
this->impl->CompileFeatures.CopyFromEntries(
cmMakeRange(tgt->impl->ImportedCxxModulesCompileFeatures.Entries));
this->impl->CompileOptions.CopyFromEntries(
cmMakeRange(tgt->impl->ImportedCxxModulesCompileOptions.Entries));
} else {
this->impl->CompileFeatures.CopyFromEntries(
cmMakeRange(tgt->impl->CompileFeatures.Entries));
this->impl->CompileOptions.CopyFromEntries(
cmMakeRange(tgt->impl->CompileOptions.Entries));
}
}
void cmTarget::CopyPolicyStatuses(cmTarget const* tgt)
{
// Normal targets cannot be the target of a copy.
@@ -1754,8 +1789,6 @@ void cmTarget::CopyCxxModulesEntries(cmTarget const* tgt)
this->impl->IncludeDirectories.Entries.clear();
this->impl->CompileDefinitions.Entries.clear();
this->impl->CompileFeatures.Entries.clear();
this->impl->CompileOptions.Entries.clear();
this->impl->LinkLibraries.Entries.clear();
if (tgt->IsImported()) {
@@ -1763,10 +1796,6 @@ void cmTarget::CopyCxxModulesEntries(cmTarget const* tgt)
cmMakeRange(tgt->impl->ImportedCxxModulesIncludeDirectories.Entries));
this->impl->CompileDefinitions.CopyFromEntries(
cmMakeRange(tgt->impl->ImportedCxxModulesCompileDefinitions.Entries));
this->impl->CompileFeatures.CopyFromEntries(
cmMakeRange(tgt->impl->ImportedCxxModulesCompileFeatures.Entries));
this->impl->CompileOptions.CopyFromEntries(
cmMakeRange(tgt->impl->ImportedCxxModulesCompileOptions.Entries));
this->impl->LinkLibraries.CopyFromEntries(
cmMakeRange(tgt->impl->ImportedCxxModulesLinkLibraries.Entries));
} else {
@@ -1774,10 +1803,6 @@ void cmTarget::CopyCxxModulesEntries(cmTarget const* tgt)
cmMakeRange(tgt->impl->IncludeDirectories.Entries));
this->impl->CompileDefinitions.CopyFromEntries(
cmMakeRange(tgt->impl->CompileDefinitions.Entries));
this->impl->CompileFeatures.CopyFromEntries(
cmMakeRange(tgt->impl->CompileFeatures.Entries));
this->impl->CompileOptions.CopyFromEntries(
cmMakeRange(tgt->impl->CompileOptions.Entries));
this->impl->LinkLibraries.CopyFromEntries(
cmMakeRange(tgt->impl->LinkLibraries.Entries));
}
+3
View File
@@ -306,8 +306,10 @@ public:
cmBTStringRange GetIncludeDirectoriesEntries() const;
cmBTStringRange GetCompileOptionsEntries() const;
cmBTStringRange GetImportedCxxModulesCompileOptionsEntries() const;
cmBTStringRange GetCompileFeaturesEntries() const;
cmBTStringRange GetImportedCxxModulesCompileFeaturesEntries() const;
cmBTStringRange GetCompileDefinitionsEntries() const;
@@ -325,6 +327,7 @@ public:
cmBTStringRange GetLinkInterfaceDirectEntries() const;
cmBTStringRange GetLinkInterfaceDirectExcludeEntries() const;
void CopyUsageEffects(cmTarget const* tgt);
void CopyPolicyStatuses(cmTarget const* tgt);
void CopyCxxModulesEntries(cmTarget const* tgt);
void CopyCxxModulesProperties(cmTarget const* tgt);
@@ -1,6 +1,6 @@
^(CMake Error in CMakeLists\.txt:
Target "imported-cxx-modules@synth_[0-9a-f]+" contains C\+\+ modules
intended for BMI-only compilation\. This is not yet supported by the Visual
Studio generator\.
Target "imported-cxx-modules@synth_[0-9]+" contains C\+\+ modules intended for
BMI-only compilation\. This is not yet supported by the Visual Studio
generator\.
*
)+CMake Generate step failed\. Build files cannot be regenerated correctly\.
@@ -51,12 +51,16 @@
"object": "PATH:CMakeFiles/use_import_interfaces.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"private": true,
"provides": {},
"requires": ["importable"],
"requires": [
"importable"
],
"source": "PATH:<SOURCE_DIR>/imp-mods/use.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": ["REGEX:CXXModules__export_build_database@synth_<HEX>@<CONFIG>"]
"visible-sets": [
"CXXModules__export_build_database@synth_0@<CONFIG>"
]
},
{
"family-name": "use_import_interfaces",
@@ -107,16 +111,152 @@
"object": "PATH:CMakeFiles/use_import_interfaces.dir<CONFIG_OTHER_DIR>/use.cxx<OBJEXT>",
"private": true,
"provides": {},
"requires": ["importable"],
"requires": [
"importable"
],
"source": "PATH:<SOURCE_DIR>/imp-mods/use.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": ["REGEX:CXXModules__export_build_database@synth_<HEX>@<CONFIG_OTHER>"]
"visible-sets": [
"CXXModules__export_build_database@synth_0@<CONFIG_OTHER>"
]
},
{
"family-name": "use_import_interfaces_matching",
"name": "use_import_interfaces_matching@<CONFIG>",
"translation-units": [
{
"arguments": [
"<IGNORE>",
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option",
"PATH:-Ddepflag=\"CMakeFiles/use_import_interfaces_matching.dir<CONFIG_DIR>/use.cxx<OBJEXT>.d\"",
"PATH:<OUTPUT_FLAG>CMakeFiles/use_import_interfaces_matching.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"-c",
"PATH:<SOURCE_DIR>/imp-mods/use.cxx"
],
"baseline-arguments": [
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option"
],
"local-arguments": [
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option"
],
"object": "PATH:CMakeFiles/use_import_interfaces_matching.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"private": true,
"provides": {},
"requires": [
"importable"
],
"source": "PATH:<SOURCE_DIR>/imp-mods/use.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": [
"CXXModules__export_build_database@synth_1@<CONFIG>"
]
},
{
"family-name": "use_import_interfaces_matching",
"name": "use_import_interfaces_matching@<CONFIG_OTHER>",
"translation-units": [
{
"arguments": [
"<IGNORE>",
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_OTHER_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option",
"PATH:-Ddepflag=\"CMakeFiles/use_import_interfaces_matching.dir<CONFIG_OTHER_DIR>/use.cxx<OBJEXT>.d\"",
"PATH:<OUTPUT_FLAG>CMakeFiles/use_import_interfaces_matching.dir<CONFIG_OTHER_DIR>/use.cxx<OBJEXT>",
"-c",
"PATH:<SOURCE_DIR>/imp-mods/use.cxx"
],
"baseline-arguments": [
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_OTHER_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option"
],
"local-arguments": [
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_OTHER_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option"
],
"object": "PATH:CMakeFiles/use_import_interfaces_matching.dir<CONFIG_OTHER_DIR>/use.cxx<OBJEXT>",
"private": true,
"provides": {},
"requires": [
"importable"
],
"source": "PATH:<SOURCE_DIR>/imp-mods/use.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": [
"CXXModules__export_build_database@synth_1@<CONFIG_OTHER>"
]
},
{
"family-name": "REGEX:CXXModules::export_build_database@<HEX>",
"name": "REGEX:CXXModules__export_build_database@synth_<HEX>@<CONFIG>",
"name": "CXXModules__export_build_database@synth_0@<CONFIG>",
"translation-units": [
{
"arguments": [
@@ -135,14 +275,12 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"REGEX:PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_<HEX>.dir<CONFIG_DIR>/.d\"",
"-Dtarget_public_option",
"PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_0.dir<CONFIG_DIR>/.d\"",
"REGEX:<BMI_ONLY_FLAG>",
"REGEX:PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_<HEX>.dir<CONFIG_DIR>/",
"PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_0.dir<CONFIG_DIR>/",
"REGEX:-[cv]",
"PATH:<SOURCE_DIR>/exp-builddb/importable.cxx"
],
@@ -161,11 +299,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option"
"-Dtarget_interface_option",
"-Dtarget_public_option"
],
"local-arguments": [
"-D_MBCS",
@@ -182,13 +318,10 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option"
"-Dtarget_interface_option",
"-Dtarget_public_option"
],
"object": "PATH:CMakeFiles/use_import_interfaces.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"private": false,
"provides": {
"importable": "<IGNORE>"
@@ -202,7 +335,171 @@
},
{
"family-name": "REGEX:CXXModules::export_build_database@<HEX>",
"name": "REGEX:CXXModules__export_build_database@synth_<HEX>@<CONFIG_OTHER>",
"name": "CXXModules__export_build_database@synth_0@<CONFIG_OTHER>",
"translation-units": [
{
"arguments": [
"<IGNORE>",
"-D_MBCS",
"-Ddep_interface_define",
"-Dfrom_compile_definitions",
"-Dtarget_interface_define",
"-Dtarget_private_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/from_include_directories",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_private_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/dep_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_OTHER_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option",
"PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_0.dir<CONFIG_OTHER_DIR>/.d\"",
"REGEX:<BMI_ONLY_FLAG>",
"PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_0.dir<CONFIG_OTHER_DIR>/",
"REGEX:-[cv]",
"PATH:<SOURCE_DIR>/exp-builddb/importable.cxx"
],
"baseline-arguments": [
"-D_MBCS",
"-Ddep_interface_define",
"-Dfrom_compile_definitions",
"-Dtarget_interface_define",
"-Dtarget_private_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/from_include_directories",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_private_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/dep_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_OTHER_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
],
"local-arguments": [
"-D_MBCS",
"-Ddep_interface_define",
"-Dfrom_compile_definitions",
"-Dtarget_interface_define",
"-Dtarget_private_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/from_include_directories",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_private_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/dep_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_OTHER_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
],
"private": false,
"provides": {
"importable": "<IGNORE>"
},
"requires": [],
"source": "PATH:<SOURCE_DIR>/exp-builddb/importable.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": []
},
{
"family-name": "REGEX:CXXModules::export_build_database@<HEX>",
"name": "CXXModules__export_build_database@synth_1@<CONFIG>",
"translation-units": [
{
"arguments": [
"<IGNORE>",
"-D_MBCS",
"-Ddep_interface_define",
"-Dfrom_compile_definitions",
"-Dtarget_interface_define",
"-Dtarget_private_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/from_include_directories",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_private_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/dep_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_1.dir<CONFIG_DIR>/.d\"",
"REGEX:<BMI_ONLY_FLAG>",
"PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_1.dir<CONFIG_DIR>/",
"REGEX:-[cv]",
"PATH:<SOURCE_DIR>/exp-builddb/importable.cxx"
],
"baseline-arguments": [
"-D_MBCS",
"-Ddep_interface_define",
"-Dfrom_compile_definitions",
"-Dtarget_interface_define",
"-Dtarget_private_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/from_include_directories",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_private_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/dep_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option"
],
"local-arguments": [
"-D_MBCS",
"-Ddep_interface_define",
"-Dfrom_compile_definitions",
"-Dtarget_interface_define",
"-Dtarget_private_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/from_include_directories",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_private_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/dep_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option"
],
"private": false,
"provides": {
"importable": "<IGNORE>"
},
"requires": [],
"source": "PATH:<SOURCE_DIR>/exp-builddb/importable.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": []
},
{
"family-name": "REGEX:CXXModules::export_build_database@<HEX>",
"name": "CXXModules__export_build_database@synth_1@<CONFIG_OTHER>",
"translation-units": [
{
"arguments": [
@@ -226,9 +523,9 @@
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"REGEX:PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_<HEX>.dir<CONFIG_OTHER_DIR>/.d\"",
"PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_1.dir<CONFIG_OTHER_DIR>/.d\"",
"REGEX:<BMI_ONLY_FLAG>",
"REGEX:PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_<HEX>.dir<CONFIG_OTHER_DIR>/",
"PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_1.dir<CONFIG_OTHER_DIR>/",
"REGEX:-[cv]",
"PATH:<SOURCE_DIR>/exp-builddb/importable.cxx"
],
@@ -274,7 +571,6 @@
"-Ddep_interface_option",
"-Dtarget_interface_option"
],
"object": "PATH:CMakeFiles/use_import_interfaces.dir<CONFIG_OTHER_DIR>/use.cxx<OBJEXT>",
"private": false,
"provides": {
"importable": "<IGNORE>"
@@ -51,16 +51,165 @@
"object": "PATH:CMakeFiles/use_import_interfaces.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"private": true,
"provides": {},
"requires": ["importable"],
"requires": [
"importable"
],
"source": "PATH:<SOURCE_DIR>/imp-mods/use.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": ["REGEX:CXXModules__export_build_database@synth_<HEX>@<CONFIG>"]
"visible-sets": [
"CXXModules__export_build_database@synth_0@<CONFIG>"
]
},
{
"family-name": "use_import_interfaces_matching",
"name": "use_import_interfaces_matching@<CONFIG>",
"translation-units": [
{
"arguments": [
"<IGNORE>",
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option",
"PATH:-Ddepflag=\"CMakeFiles/use_import_interfaces_matching.dir<CONFIG_DIR>/use.cxx<OBJEXT>.d\"",
"PATH:<OUTPUT_FLAG>CMakeFiles/use_import_interfaces_matching.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"-c",
"PATH:<SOURCE_DIR>/imp-mods/use.cxx"
],
"baseline-arguments": [
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option"
],
"local-arguments": [
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option"
],
"object": "PATH:CMakeFiles/use_import_interfaces_matching.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"private": true,
"provides": {},
"requires": [
"importable"
],
"source": "PATH:<SOURCE_DIR>/imp-mods/use.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": [
"CXXModules__export_build_database@synth_1@<CONFIG>"
]
},
{
"family-name": "REGEX:CXXModules::export_build_database@<HEX>",
"name": "REGEX:CXXModules__export_build_database@synth_<HEX>@<CONFIG>",
"name": "CXXModules__export_build_database@synth_0@<CONFIG>",
"translation-units": [
{
"arguments": [
"<IGNORE>",
"-D_MBCS",
"-Ddep_interface_define",
"-Dfrom_compile_definitions",
"-Dtarget_interface_define",
"-Dtarget_private_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/from_include_directories",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_private_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/dep_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option",
"PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_0.dir<CONFIG_DIR>/.d\"",
"REGEX:<BMI_ONLY_FLAG>",
"PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_0.dir<CONFIG_DIR>/",
"REGEX:-[cv]",
"PATH:<SOURCE_DIR>/exp-builddb/importable.cxx"
],
"baseline-arguments": [
"-D_MBCS",
"-Ddep_interface_define",
"-Dfrom_compile_definitions",
"-Dtarget_interface_define",
"-Dtarget_private_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/from_include_directories",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_private_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/dep_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
],
"local-arguments": [
"-D_MBCS",
"-Ddep_interface_define",
"-Dfrom_compile_definitions",
"-Dtarget_interface_define",
"-Dtarget_private_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/from_include_directories",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_private_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/dep_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
],
"private": false,
"provides": {
"importable": "<IGNORE>"
},
"requires": [],
"source": "PATH:<SOURCE_DIR>/exp-builddb/importable.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": []
},
{
"family-name": "REGEX:CXXModules::export_build_database@<HEX>",
"name": "CXXModules__export_build_database@synth_1@<CONFIG>",
"translation-units": [
{
"arguments": [
@@ -84,9 +233,9 @@
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"REGEX:PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_<HEX>.dir<CONFIG_DIR>/.d\"",
"PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_1.dir<CONFIG_DIR>/.d\"",
"REGEX:<BMI_ONLY_FLAG>",
"REGEX:PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_<HEX>.dir<CONFIG_DIR>/",
"PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_1.dir<CONFIG_DIR>/",
"REGEX:-[cv]",
"PATH:<SOURCE_DIR>/exp-builddb/importable.cxx"
],
@@ -132,7 +281,6 @@
"-Ddep_interface_option",
"-Dtarget_interface_option"
],
"object": "PATH:CMakeFiles/use_import_interfaces.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"private": false,
"provides": {
"importable": "<IGNORE>"
@@ -51,16 +51,165 @@
"object": "PATH:CMakeFiles/use_import_interfaces.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"private": true,
"provides": {},
"requires": ["importable"],
"requires": [
"importable"
],
"source": "PATH:<SOURCE_DIR>/imp-mods/use.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": ["REGEX:CXXModules__export_build_database@synth_<HEX>@<CONFIG>"]
"visible-sets": [
"CXXModules__export_build_database@synth_0@<CONFIG>"
]
},
{
"family-name": "use_import_interfaces_matching",
"name": "use_import_interfaces_matching@<CONFIG>",
"translation-units": [
{
"arguments": [
"<IGNORE>",
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option",
"PATH:-Ddepflag=\"CMakeFiles/use_import_interfaces_matching.dir<CONFIG_DIR>/use.cxx<OBJEXT>.d\"",
"PATH:<OUTPUT_FLAG>CMakeFiles/use_import_interfaces_matching.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"-c",
"PATH:<SOURCE_DIR>/imp-mods/use.cxx"
],
"baseline-arguments": [
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option"
],
"local-arguments": [
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option"
],
"object": "PATH:CMakeFiles/use_import_interfaces_matching.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"private": true,
"provides": {},
"requires": [
"importable"
],
"source": "PATH:<SOURCE_DIR>/imp-mods/use.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": [
"CXXModules__export_build_database@synth_1@<CONFIG>"
]
},
{
"family-name": "REGEX:CXXModules::export_build_database@<HEX>",
"name": "REGEX:CXXModules__export_build_database@synth_<HEX>@<CONFIG>",
"name": "CXXModules__export_build_database@synth_0@<CONFIG>",
"translation-units": [
{
"arguments": [
"<IGNORE>",
"-D_MBCS",
"-Ddep_interface_define",
"-Dfrom_compile_definitions",
"-Dtarget_interface_define",
"-Dtarget_private_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/from_include_directories",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_private_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/dep_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option",
"PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_0.dir<CONFIG_DIR>/.d\"",
"REGEX:<BMI_ONLY_FLAG>",
"PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_0.dir<CONFIG_DIR>/",
"REGEX:-[cv]",
"PATH:<SOURCE_DIR>/exp-builddb/importable.cxx"
],
"baseline-arguments": [
"-D_MBCS",
"-Ddep_interface_define",
"-Dfrom_compile_definitions",
"-Dtarget_interface_define",
"-Dtarget_private_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/from_include_directories",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_private_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/dep_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
],
"local-arguments": [
"-D_MBCS",
"-Ddep_interface_define",
"-Dfrom_compile_definitions",
"-Dtarget_interface_define",
"-Dtarget_private_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/from_include_directories",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_private_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/dep_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
],
"private": false,
"provides": {
"importable": "<IGNORE>"
},
"requires": [],
"source": "PATH:<SOURCE_DIR>/exp-builddb/importable.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": []
},
{
"family-name": "REGEX:CXXModules::export_build_database@<HEX>",
"name": "CXXModules__export_build_database@synth_1@<CONFIG>",
"translation-units": [
{
"arguments": [
@@ -84,9 +233,9 @@
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"REGEX:PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_<HEX>.dir<CONFIG_DIR>/.d\"",
"PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_1.dir<CONFIG_DIR>/.d\"",
"REGEX:<BMI_ONLY_FLAG>",
"REGEX:PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_<HEX>.dir<CONFIG_DIR>/",
"PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_1.dir<CONFIG_DIR>/",
"REGEX:-[cv]",
"PATH:<SOURCE_DIR>/exp-builddb/importable.cxx"
],
@@ -132,7 +281,6 @@
"-Ddep_interface_option",
"-Dtarget_interface_option"
],
"object": "PATH:CMakeFiles/use_import_interfaces.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"private": false,
"provides": {
"importable": "<IGNORE>"
@@ -51,16 +51,165 @@
"object": "PATH:CMakeFiles/use_import_interfaces.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"private": true,
"provides": {},
"requires": ["importable"],
"requires": [
"importable"
],
"source": "PATH:<SOURCE_DIR>/imp-mods/use.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": ["REGEX:CXXModules__export_build_database@synth_<HEX>@<CONFIG>"]
"visible-sets": [
"CXXModules__export_build_database@synth_0@<CONFIG>"
]
},
{
"family-name": "use_import_interfaces_matching",
"name": "use_import_interfaces_matching@<CONFIG>",
"translation-units": [
{
"arguments": [
"<IGNORE>",
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option",
"PATH:-Ddepflag=\"CMakeFiles/use_import_interfaces_matching.dir<CONFIG_DIR>/use.cxx<OBJEXT>.d\"",
"PATH:<OUTPUT_FLAG>CMakeFiles/use_import_interfaces_matching.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"-c",
"PATH:<SOURCE_DIR>/imp-mods/use.cxx"
],
"baseline-arguments": [
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option"
],
"local-arguments": [
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option"
],
"object": "PATH:CMakeFiles/use_import_interfaces_matching.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"private": true,
"provides": {},
"requires": [
"importable"
],
"source": "PATH:<SOURCE_DIR>/imp-mods/use.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": [
"CXXModules__export_build_database@synth_1@<CONFIG>"
]
},
{
"family-name": "REGEX:CXXModules::export_build_database@<HEX>",
"name": "REGEX:CXXModules__export_build_database@synth_<HEX>@<CONFIG>",
"name": "CXXModules__export_build_database@synth_0@<CONFIG>",
"translation-units": [
{
"arguments": [
"<IGNORE>",
"-D_MBCS",
"-Ddep_interface_define",
"-Dfrom_compile_definitions",
"-Dtarget_interface_define",
"-Dtarget_private_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/from_include_directories",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_private_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/dep_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option",
"PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_0.dir<CONFIG_DIR>/.d\"",
"REGEX:<BMI_ONLY_FLAG>",
"PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_0.dir<CONFIG_DIR>/",
"REGEX:-[cv]",
"PATH:<SOURCE_DIR>/exp-builddb/importable.cxx"
],
"baseline-arguments": [
"-D_MBCS",
"-Ddep_interface_define",
"-Dfrom_compile_definitions",
"-Dtarget_interface_define",
"-Dtarget_private_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/from_include_directories",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_private_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/dep_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
],
"local-arguments": [
"-D_MBCS",
"-Ddep_interface_define",
"-Dfrom_compile_definitions",
"-Dtarget_interface_define",
"-Dtarget_private_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/from_include_directories",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_private_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/dep_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
],
"private": false,
"provides": {
"importable": "<IGNORE>"
},
"requires": [],
"source": "PATH:<SOURCE_DIR>/exp-builddb/importable.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": []
},
{
"family-name": "REGEX:CXXModules::export_build_database@<HEX>",
"name": "CXXModules__export_build_database@synth_1@<CONFIG>",
"translation-units": [
{
"arguments": [
@@ -84,9 +233,9 @@
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"REGEX:PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_<HEX>.dir<CONFIG_DIR>/.d\"",
"PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_1.dir<CONFIG_DIR>/.d\"",
"REGEX:<BMI_ONLY_FLAG>",
"REGEX:PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_<HEX>.dir<CONFIG_DIR>/",
"PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_1.dir<CONFIG_DIR>/",
"REGEX:-[cv]",
"PATH:<SOURCE_DIR>/exp-builddb/importable.cxx"
],
@@ -132,7 +281,6 @@
"-Ddep_interface_option",
"-Dtarget_interface_option"
],
"object": "PATH:CMakeFiles/use_import_interfaces.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"private": false,
"provides": {
"importable": "<IGNORE>"
@@ -51,12 +51,16 @@
"object": "PATH:CMakeFiles/use_import_interfaces.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"private": true,
"provides": {},
"requires": ["importable"],
"requires": [
"importable"
],
"source": "PATH:<SOURCE_DIR>/imp-mods/use.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": ["REGEX:CXXModules__export_build_database@synth_<HEX>@<CONFIG>"]
"visible-sets": [
"CXXModules__export_build_database@synth_0@<CONFIG>"
]
},
{
"family-name": "use_import_interfaces",
@@ -107,16 +111,152 @@
"object": "PATH:CMakeFiles/use_import_interfaces.dir<CONFIG_OTHER_DIR>/use.cxx<OBJEXT>",
"private": true,
"provides": {},
"requires": ["importable"],
"requires": [
"importable"
],
"source": "PATH:<SOURCE_DIR>/imp-mods/use.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": ["REGEX:CXXModules__export_build_database@synth_<HEX>@<CONFIG_OTHER>"]
"visible-sets": [
"CXXModules__export_build_database@synth_0@<CONFIG_OTHER>"
]
},
{
"family-name": "use_import_interfaces_matching",
"name": "use_import_interfaces_matching@<CONFIG>",
"translation-units": [
{
"arguments": [
"<IGNORE>",
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option",
"PATH:-Ddepflag=\"CMakeFiles/use_import_interfaces_matching.dir<CONFIG_DIR>/use.cxx<OBJEXT>.d\"",
"PATH:<OUTPUT_FLAG>CMakeFiles/use_import_interfaces_matching.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"-c",
"PATH:<SOURCE_DIR>/imp-mods/use.cxx"
],
"baseline-arguments": [
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option"
],
"local-arguments": [
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option"
],
"object": "PATH:CMakeFiles/use_import_interfaces_matching.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"private": true,
"provides": {},
"requires": [
"importable"
],
"source": "PATH:<SOURCE_DIR>/imp-mods/use.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": [
"CXXModules__export_build_database@synth_1@<CONFIG>"
]
},
{
"family-name": "use_import_interfaces_matching",
"name": "use_import_interfaces_matching@<CONFIG_OTHER>",
"translation-units": [
{
"arguments": [
"<IGNORE>",
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_OTHER_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option",
"PATH:-Ddepflag=\"CMakeFiles/use_import_interfaces_matching.dir<CONFIG_OTHER_DIR>/use.cxx<OBJEXT>.d\"",
"PATH:<OUTPUT_FLAG>CMakeFiles/use_import_interfaces_matching.dir<CONFIG_OTHER_DIR>/use.cxx<OBJEXT>",
"-c",
"PATH:<SOURCE_DIR>/imp-mods/use.cxx"
],
"baseline-arguments": [
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_OTHER_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option"
],
"local-arguments": [
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_OTHER_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option"
],
"object": "PATH:CMakeFiles/use_import_interfaces_matching.dir<CONFIG_OTHER_DIR>/use.cxx<OBJEXT>",
"private": true,
"provides": {},
"requires": [
"importable"
],
"source": "PATH:<SOURCE_DIR>/imp-mods/use.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": [
"CXXModules__export_build_database@synth_1@<CONFIG_OTHER>"
]
},
{
"family-name": "REGEX:CXXModules::export_build_database@<HEX>",
"name": "REGEX:CXXModules__export_build_database@synth_<HEX>@<CONFIG>",
"name": "CXXModules__export_build_database@synth_0@<CONFIG>",
"translation-units": [
{
"arguments": [
@@ -135,14 +275,12 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"REGEX:PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_<HEX>.dir<CONFIG_DIR>/.d\"",
"-Dtarget_public_option",
"PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_0.dir<CONFIG_DIR>/.d\"",
"REGEX:<BMI_ONLY_FLAG>",
"REGEX:PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_<HEX>.dir<CONFIG_DIR>/",
"PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_0.dir<CONFIG_DIR>/",
"REGEX:-[cv]",
"PATH:<SOURCE_DIR>/exp-builddb/importable.cxx"
],
@@ -161,11 +299,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option"
"-Dtarget_interface_option",
"-Dtarget_public_option"
],
"local-arguments": [
"-D_MBCS",
@@ -182,13 +318,10 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option"
"-Dtarget_interface_option",
"-Dtarget_public_option"
],
"object": "PATH:CMakeFiles/use_import_interfaces.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"private": false,
"provides": {
"importable": "<IGNORE>"
@@ -202,7 +335,171 @@
},
{
"family-name": "REGEX:CXXModules::export_build_database@<HEX>",
"name": "REGEX:CXXModules__export_build_database@synth_<HEX>@<CONFIG_OTHER>",
"name": "CXXModules__export_build_database@synth_0@<CONFIG_OTHER>",
"translation-units": [
{
"arguments": [
"<IGNORE>",
"-D_MBCS",
"-Ddep_interface_define",
"-Dfrom_compile_definitions",
"-Dtarget_interface_define",
"-Dtarget_private_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/from_include_directories",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_private_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/dep_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_OTHER_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option",
"PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_0.dir<CONFIG_OTHER_DIR>/.d\"",
"REGEX:<BMI_ONLY_FLAG>",
"PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_0.dir<CONFIG_OTHER_DIR>/",
"REGEX:-[cv]",
"PATH:<SOURCE_DIR>/exp-builddb/importable.cxx"
],
"baseline-arguments": [
"-D_MBCS",
"-Ddep_interface_define",
"-Dfrom_compile_definitions",
"-Dtarget_interface_define",
"-Dtarget_private_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/from_include_directories",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_private_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/dep_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_OTHER_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
],
"local-arguments": [
"-D_MBCS",
"-Ddep_interface_define",
"-Dfrom_compile_definitions",
"-Dtarget_interface_define",
"-Dtarget_private_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/from_include_directories",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_private_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/dep_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_OTHER_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
],
"private": false,
"provides": {
"importable": "<IGNORE>"
},
"requires": [],
"source": "PATH:<SOURCE_DIR>/exp-builddb/importable.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": []
},
{
"family-name": "REGEX:CXXModules::export_build_database@<HEX>",
"name": "CXXModules__export_build_database@synth_1@<CONFIG>",
"translation-units": [
{
"arguments": [
"<IGNORE>",
"-D_MBCS",
"-Ddep_interface_define",
"-Dfrom_compile_definitions",
"-Dtarget_interface_define",
"-Dtarget_private_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/from_include_directories",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_private_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/dep_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_1.dir<CONFIG_DIR>/.d\"",
"REGEX:<BMI_ONLY_FLAG>",
"PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_1.dir<CONFIG_DIR>/",
"REGEX:-[cv]",
"PATH:<SOURCE_DIR>/exp-builddb/importable.cxx"
],
"baseline-arguments": [
"-D_MBCS",
"-Ddep_interface_define",
"-Dfrom_compile_definitions",
"-Dtarget_interface_define",
"-Dtarget_private_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/from_include_directories",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_private_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/dep_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option"
],
"local-arguments": [
"-D_MBCS",
"-Ddep_interface_define",
"-Dfrom_compile_definitions",
"-Dtarget_interface_define",
"-Dtarget_private_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/from_include_directories",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_private_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/dep_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option"
],
"private": false,
"provides": {
"importable": "<IGNORE>"
},
"requires": [],
"source": "PATH:<SOURCE_DIR>/exp-builddb/importable.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": []
},
{
"family-name": "REGEX:CXXModules::export_build_database@<HEX>",
"name": "CXXModules__export_build_database@synth_1@<CONFIG_OTHER>",
"translation-units": [
{
"arguments": [
@@ -226,9 +523,9 @@
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"REGEX:PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_<HEX>.dir<CONFIG_OTHER_DIR>/.d\"",
"PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_1.dir<CONFIG_OTHER_DIR>/.d\"",
"REGEX:<BMI_ONLY_FLAG>",
"REGEX:PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_<HEX>.dir<CONFIG_OTHER_DIR>/",
"PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_1.dir<CONFIG_OTHER_DIR>/",
"REGEX:-[cv]",
"PATH:<SOURCE_DIR>/exp-builddb/importable.cxx"
],
@@ -274,7 +571,6 @@
"-Ddep_interface_option",
"-Dtarget_interface_option"
],
"object": "PATH:CMakeFiles/use_import_interfaces.dir<CONFIG_OTHER_DIR>/use.cxx<OBJEXT>",
"private": false,
"provides": {
"importable": "<IGNORE>"
@@ -51,16 +51,165 @@
"object": "PATH:CMakeFiles/use_import_interfaces.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"private": true,
"provides": {},
"requires": ["importable"],
"requires": [
"importable"
],
"source": "PATH:<SOURCE_DIR>/imp-mods/use.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": ["REGEX:CXXModules__export_build_database@synth_<HEX>@<CONFIG>"]
"visible-sets": [
"CXXModules__export_build_database@synth_0@<CONFIG>"
]
},
{
"family-name": "use_import_interfaces_matching",
"name": "use_import_interfaces_matching@<CONFIG>",
"translation-units": [
{
"arguments": [
"<IGNORE>",
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option",
"PATH:-Ddepflag=\"CMakeFiles/use_import_interfaces_matching.dir<CONFIG_DIR>/use.cxx<OBJEXT>.d\"",
"PATH:<OUTPUT_FLAG>CMakeFiles/use_import_interfaces_matching.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"-c",
"PATH:<SOURCE_DIR>/imp-mods/use.cxx"
],
"baseline-arguments": [
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option"
],
"local-arguments": [
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option"
],
"object": "PATH:CMakeFiles/use_import_interfaces_matching.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"private": true,
"provides": {},
"requires": [
"importable"
],
"source": "PATH:<SOURCE_DIR>/imp-mods/use.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": [
"CXXModules__export_build_database@synth_1@<CONFIG>"
]
},
{
"family-name": "REGEX:CXXModules::export_build_database@<HEX>",
"name": "REGEX:CXXModules__export_build_database@synth_<HEX>@<CONFIG>",
"name": "CXXModules__export_build_database@synth_0@<CONFIG>",
"translation-units": [
{
"arguments": [
"<IGNORE>",
"-D_MBCS",
"-Ddep_interface_define",
"-Dfrom_compile_definitions",
"-Dtarget_interface_define",
"-Dtarget_private_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/from_include_directories",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_private_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/dep_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option",
"PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_0.dir<CONFIG_DIR>/.d\"",
"REGEX:<BMI_ONLY_FLAG>",
"PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_0.dir<CONFIG_DIR>/",
"REGEX:-[cv]",
"PATH:<SOURCE_DIR>/exp-builddb/importable.cxx"
],
"baseline-arguments": [
"-D_MBCS",
"-Ddep_interface_define",
"-Dfrom_compile_definitions",
"-Dtarget_interface_define",
"-Dtarget_private_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/from_include_directories",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_private_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/dep_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
],
"local-arguments": [
"-D_MBCS",
"-Ddep_interface_define",
"-Dfrom_compile_definitions",
"-Dtarget_interface_define",
"-Dtarget_private_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/from_include_directories",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_private_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/dep_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
],
"private": false,
"provides": {
"importable": "<IGNORE>"
},
"requires": [],
"source": "PATH:<SOURCE_DIR>/exp-builddb/importable.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": []
},
{
"family-name": "REGEX:CXXModules::export_build_database@<HEX>",
"name": "CXXModules__export_build_database@synth_1@<CONFIG>",
"translation-units": [
{
"arguments": [
@@ -84,9 +233,9 @@
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"REGEX:PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_<HEX>.dir<CONFIG_DIR>/.d\"",
"PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_1.dir<CONFIG_DIR>/.d\"",
"REGEX:<BMI_ONLY_FLAG>",
"REGEX:PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_<HEX>.dir<CONFIG_DIR>/",
"PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_1.dir<CONFIG_DIR>/",
"REGEX:-[cv]",
"PATH:<SOURCE_DIR>/exp-builddb/importable.cxx"
],
@@ -132,7 +281,6 @@
"-Ddep_interface_option",
"-Dtarget_interface_option"
],
"object": "PATH:CMakeFiles/use_import_interfaces.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"private": false,
"provides": {
"importable": "<IGNORE>"
@@ -0,0 +1,72 @@
{
"version": 1,
"revision": 0,
"sets": [
{
"family-name": "use_import_interfaces_matching",
"name": "use_import_interfaces_matching@<CONFIG>",
"translation-units": [
{
"arguments": [
"<IGNORE>",
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option",
"PATH:-Ddepflag=\"CMakeFiles/use_import_interfaces_matching.dir<CONFIG_DIR>/use.cxx<OBJEXT>.d\"",
"PATH:<OUTPUT_FLAG>CMakeFiles/use_import_interfaces_matching.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"-c",
"PATH:<SOURCE_DIR>/imp-mods/use.cxx"
],
"baseline-arguments": [
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option"
],
"local-arguments": [
"-D_MBCS",
"-Dtarget_interface_define",
"-Dtarget_public_define",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_interface_include",
"PATH:-I<SOURCE_DIR>/exp-builddb/target_public_include",
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Dtarget_interface_option"
],
"object": "PATH:CMakeFiles/use_import_interfaces_matching.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"private": true,
"provides": {},
"requires": [
"importable"
],
"source": "PATH:<SOURCE_DIR>/imp-mods/use.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": [
"CXXModules__export_build_database@synth_1@<CONFIG>"
]
}
]
}
@@ -51,12 +51,16 @@
"object": "PATH:CMakeFiles/use_import_interfaces.dir<CONFIG_DIR>/use.cxx<OBJEXT>",
"private": true,
"provides": {},
"requires": ["importable"],
"requires": [
"importable"
],
"source": "PATH:<SOURCE_DIR>/imp-mods/use.cxx",
"work-directory": "<BINARY_DIR>"
}
],
"visible-sets": ["REGEX:CXXModules__export_build_database@synth_<HEX>@<CONFIG>"]
"visible-sets": [
"CXXModules__export_build_database@synth_0@<CONFIG>"
]
}
]
}
@@ -8,15 +8,18 @@ if (RunCMake_GENERATOR_IS_MULTI_CONFIG)
check_build_database("exp-builddb-imped" "build_database_CXX_Debug.json" CXX_AND_DEBUG)
check_build_database("exp-builddb-imped" "build_database_Debug.json" JUST_DEBUG)
check_build_database("exp-builddb-imped" "CMakeFiles/use_import_interfaces.dir/Debug/CXX_build_database.json" JUST_TARGET_DEBUG)
check_build_database("exp-builddb-imped-matching" "CMakeFiles/use_import_interfaces_matching.dir/Debug/CXX_build_database.json" JUST_TARGET_DEBUG)
check_build_database("exp-builddb-imped" "build_database_CXX_Release.json" CXX_AND_RELEASE)
check_build_database("exp-builddb-imped" "build_database_Release.json" JUST_RELEASE)
check_build_database("exp-builddb-imped" "CMakeFiles/use_import_interfaces.dir/Release/CXX_build_database.json" JUST_TARGET_RELEASE)
check_build_database("exp-builddb-imped-matching" "CMakeFiles/use_import_interfaces_matching.dir/Release/CXX_build_database.json" JUST_TARGET_RELEASE)
else ()
check_build_database("exp-builddb-imped" "build_database.json" ALL)
check_build_database("exp-builddb-imped" "build_database_CXX.json" JUST_CXX)
check_build_database("exp-builddb-imped" "CMakeFiles/use_import_interfaces.dir/CXX_build_database.json" JUST_TARGET)
check_build_database("exp-builddb-imped-matching" "CMakeFiles/use_import_interfaces_matching.dir/CXX_build_database.json" JUST_TARGET)
endif ()
string(REPLACE ";" "\n " RunCMake_TEST_FAILED "${RunCMake_TEST_FAILED}")
@@ -9,14 +9,17 @@ if (RunCMake_GENERATOR_IS_MULTI_CONFIG)
check_build_database("exp-builddb-imped" "build_database_CXX_Debug.json" CXX_AND_DEBUG)
check_build_database("exp-builddb-imped" "build_database_Debug.json" JUST_DEBUG)
check_build_database("exp-builddb-imped" "CMakeFiles/use_import_interfaces.dir/Debug/CXX_build_database.json" JUST_TARGET_DEBUG)
check_build_database("exp-builddb-imped-matching" "CMakeFiles/use_import_interfaces_matching.dir/Debug/CXX_build_database.json" JUST_TARGET_DEBUG)
check_build_database("exp-builddb-imped" "build_database_CXX_Release.json" CXX_AND_RELEASE)
check_build_database("exp-builddb-imped" "build_database_Release.json" JUST_RELEASE)
check_build_database("exp-builddb-imped" "CMakeFiles/use_import_interfaces.dir/Release/CXX_build_database.json" JUST_TARGET_RELEASE)
check_build_database("exp-builddb-imped-matching" "CMakeFiles/use_import_interfaces_matching.dir/Release/CXX_build_database.json" JUST_TARGET_RELEASE)
else ()
check_build_database("exp-builddb-imped" "build_database_CXX.json" JUST_CXX)
check_build_database("exp-builddb-imped" "CMakeFiles/use_import_interfaces.dir/CXX_build_database.json" JUST_TARGET)
check_build_database("exp-builddb-imped-matching" "CMakeFiles/use_import_interfaces_matching.dir/CXX_build_database.json" JUST_TARGET)
endif ()
string(REPLACE ";" "\n " RunCMake_TEST_FAILED "${RunCMake_TEST_FAILED}")
@@ -8,12 +8,15 @@ if (RunCMake_GENERATOR_IS_MULTI_CONFIG)
check_build_database("exp-builddb-imped" "build_database_CXX_Debug.json" CXX_AND_DEBUG)
check_build_database("exp-builddb-imped" "build_database_Debug.json" NO_EXIST)
check_build_database("exp-builddb-imped" "CMakeFiles/use_import_interfaces.dir/Debug/CXX_build_database.json" JUST_TARGET_DEBUG)
check_build_database("exp-builddb-imped-matching" "CMakeFiles/use_import_interfaces_matching.dir/Debug/CXX_build_database.json" JUST_TARGET_DEBUG)
check_build_database("exp-builddb-imped" "build_database_CXX_Release.json" NO_EXIST)
check_build_database("exp-builddb-imped" "build_database_Release.json" NO_EXIST)
check_build_database("exp-builddb-imped" "CMakeFiles/use_import_interfaces.dir/Release/CXX_build_database.json" NO_EXIST)
check_build_database("exp-builddb-imped-matching" "CMakeFiles/use_import_interfaces_matching.dir/Release/CXX_build_database.json" NO_EXIST)
else ()
check_build_database("exp-builddb-imped" "CMakeFiles/use_import_interfaces.dir/CXX_build_database.json" JUST_TARGET)
check_build_database("exp-builddb-imped-matching" "CMakeFiles/use_import_interfaces_matching.dir/CXX_build_database.json" JUST_TARGET)
endif ()
string(REPLACE ";" "\n " RunCMake_TEST_FAILED "${RunCMake_TEST_FAILED}")
@@ -8,12 +8,15 @@ if (RunCMake_GENERATOR_IS_MULTI_CONFIG)
check_build_database("exp-builddb-imped" "build_database_CXX_Debug.json" CXX_AND_DEBUG)
check_build_database("exp-builddb-imped" "build_database_Debug.json" JUST_DEBUG)
check_build_database("exp-builddb-imped" "CMakeFiles/use_import_interfaces.dir/Debug/CXX_build_database.json" JUST_TARGET_DEBUG)
check_build_database("exp-builddb-imped-matching" "CMakeFiles/use_import_interfaces_matching.dir/Debug/CXX_build_database.json" JUST_TARGET_DEBUG)
check_build_database("exp-builddb-imped" "build_database_CXX_Release.json" CXX_AND_RELEASE)
check_build_database("exp-builddb-imped" "build_database_Release.json" NO_EXIST)
check_build_database("exp-builddb-imped" "CMakeFiles/use_import_interfaces.dir/Release/CXX_build_database.json" JUST_TARGET_RELEASE)
check_build_database("exp-builddb-imped-matching" "CMakeFiles/use_import_interfaces_matching.dir/Release/CXX_build_database.json" JUST_TARGET_RELEASE)
else ()
check_build_database("exp-builddb-imped" "CMakeFiles/use_import_interfaces.dir/CXX_build_database.json" JUST_TARGET)
check_build_database("exp-builddb-imped-matching" "CMakeFiles/use_import_interfaces_matching.dir/CXX_build_database.json" JUST_TARGET)
endif ()
string(REPLACE ";" "\n " RunCMake_TEST_FAILED "${RunCMake_TEST_FAILED}")
@@ -8,12 +8,15 @@ if (RunCMake_GENERATOR_IS_MULTI_CONFIG)
check_build_database("exp-builddb-imped" "build_database_CXX_Debug.json" CXX_AND_DEBUG)
check_build_database("exp-builddb-imped" "build_database_Debug.json" JUST_DEBUG)
check_build_database("exp-builddb-imped" "CMakeFiles/use_import_interfaces.dir/Debug/CXX_build_database.json" JUST_TARGET_DEBUG)
check_build_database("exp-builddb-imped-matching" "CMakeFiles/use_import_interfaces_matching.dir/Debug/CXX_build_database.json" JUST_TARGET_DEBUG)
check_build_database("exp-builddb-imped" "build_database_CXX_Release.json" NO_EXIST)
check_build_database("exp-builddb-imped" "build_database_Release.json" NO_EXIST)
check_build_database("exp-builddb-imped" "CMakeFiles/use_import_interfaces.dir/Release/CXX_build_database.json" NO_EXIST)
check_build_database("exp-builddb-imped-matching" "CMakeFiles/use_import_interfaces_matching.dir/Release/CXX_build_database.json" NO_EXIST)
else ()
check_build_database("exp-builddb-imped" "CMakeFiles/use_import_interfaces.dir/CXX_build_database.json" JUST_TARGET)
check_build_database("exp-builddb-imped-matching" "CMakeFiles/use_import_interfaces_matching.dir/CXX_build_database.json" JUST_TARGET)
endif ()
string(REPLACE ";" "\n " RunCMake_TEST_FAILED "${RunCMake_TEST_FAILED}")
@@ -8,12 +8,15 @@ if (RunCMake_GENERATOR_IS_MULTI_CONFIG)
check_build_database("exp-builddb-imped" "build_database_CXX_Debug.json" CXX_AND_DEBUG)
check_build_database("exp-builddb-imped" "build_database_Debug.json" JUST_DEBUG)
check_build_database("exp-builddb-imped" "CMakeFiles/use_import_interfaces.dir/Debug/CXX_build_database.json" JUST_TARGET_DEBUG)
check_build_database("exp-builddb-imped-matching" "CMakeFiles/use_import_interfaces_matching.dir/Debug/CXX_build_database.json" JUST_TARGET_DEBUG)
check_build_database("exp-builddb-imped" "build_database_CXX_Release.json" CXX_AND_RELEASE)
check_build_database("exp-builddb-imped" "build_database_Release.json" JUST_RELEASE)
check_build_database("exp-builddb-imped" "CMakeFiles/use_import_interfaces.dir/Release/CXX_build_database.json" JUST_TARGET_RELEASE)
check_build_database("exp-builddb-imped-matching" "CMakeFiles/use_import_interfaces_matching.dir/Release/CXX_build_database.json" JUST_TARGET_RELEASE)
else ()
check_build_database("exp-builddb-imped" "CMakeFiles/use_import_interfaces.dir/CXX_build_database.json" JUST_TARGET)
check_build_database("exp-builddb-imped-matching" "CMakeFiles/use_import_interfaces_matching.dir/CXX_build_database.json" JUST_TARGET)
endif ()
string(REPLACE ";" "\n " RunCMake_TEST_FAILED "${RunCMake_TEST_FAILED}")
@@ -56,3 +56,23 @@ if (BUILD_DATABASE AND
endif ()
add_test(NAME use_import_interfaces COMMAND use_import_interfaces)
if (BUILD_DATABASE)
add_executable(use_import_interfaces_matching)
target_sources(use_import_interfaces_matching
PRIVATE
use.cxx)
target_compile_features(use_import_interfaces_matching PRIVATE cxx_std_20)
target_compile_options(use_import_interfaces_matching PRIVATE
-Dfrom_compile_options
-Dtarget_private_option
-Dtarget_public_option)
target_link_libraries(use_import_interfaces_matching PRIVATE "${target_name}")
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND
CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")
target_link_libraries(use_import_interfaces_matching PRIVATE libcmt)
endif ()
add_test(NAME use_import_interfaces_matching COMMAND use_import_interfaces_matching)
endif ()
@@ -1,4 +1,5 @@
# Verify the build system generated a synthetic target/BMI for each unique importer
# Verify the build system reused the owning target BMI when compatible and
# generated a synthetic target BMI only for the incompatible importer.
set(expected_consumers consumer20 consumer23)
set(linked_dir_keys "")
set(linked_dir_names "")
@@ -31,9 +32,23 @@ foreach (consumer IN LISTS expected_consumers)
string(JSON linked_dirs_len LENGTH "${depend_info_json}" "linked-target-dirs")
string(JSON linked_dirs GET "${depend_info_json}" "linked-target-dirs")
if (consumer STREQUAL "consumer20")
set(expected_linked_tgt_regex "^importable\.dir$")
set(expected_linked_tgt_desc "owning target dir for 'importable'")
set(expected_linked_tgt_has_bmi 0)
elseif (consumer STREQUAL "consumer23")
set(expected_linked_tgt_regex "^importable@synth_[A-Za-z0-9_]+\.dir$")
set(expected_linked_tgt_desc "synthetic target dir for 'importable'")
set(expected_linked_tgt_has_bmi 1)
else ()
list(APPEND RunCMake_TEST_FAILED
"No linked target expectation defined for consumer '${consumer}'")
continue()
endif ()
if (NOT linked_dirs_len GREATER 0)
list(APPEND RunCMake_TEST_FAILED
"Consumer '${consumer}' has no linked-target-dirs but expected synthetic target for 'importable'")
"Consumer '${consumer}' has no linked-target-dirs but expected ${expected_linked_tgt_desc}")
continue()
endif ()
@@ -54,10 +69,9 @@ foreach (consumer IN LISTS expected_consumers)
cmake_path(GET linked_tgt_root FILENAME linked_tgt_name)
# Verify it is a synthetic target for the 'importable' library
if (NOT linked_tgt_name MATCHES "^importable@synth_[A-Za-z0-9_]+\.dir$")
if (NOT linked_tgt_name MATCHES "${expected_linked_tgt_regex}")
list(APPEND RunCMake_TEST_FAILED
"Consumer '${consumer}' should link to synthetic target dir for 'importable' but found ${linked_dir}")
"Consumer '${consumer}' should link to ${expected_linked_tgt_desc} but found ${linked_dir}")
continue()
endif ()
@@ -67,33 +81,37 @@ foreach (consumer IN LISTS expected_consumers)
set(linked_output_dir "${linked_dir}")
endif ()
# Verify the synthetic target dir exists and contains a BMI
# Verify the linked target dir exists and contains a BMI
if (NOT EXISTS "${linked_dir}")
list(APPEND RunCMake_TEST_FAILED
"Consumer '${consumer}' links to synthetic target directory that does not exist: ${linked_dir}")
"Consumer '${consumer}' links to target directory that does not exist: ${linked_dir}")
continue()
endif ()
file(GLOB_RECURSE bmi_files "${linked_dir}/*.bmi")
if (NOT bmi_files)
list(APPEND RunCMake_TEST_FAILED
"No BMI files found in synthetic target directory: ${linked_dir}")
continue()
if (expected_linked_tgt_has_bmi)
file(GLOB_RECURSE bmi_files "${linked_dir}/*.bmi")
if (NOT bmi_files)
list(APPEND RunCMake_TEST_FAILED
"No BMI files found in target directory: ${linked_dir}")
continue()
endif ()
endif ()
# Record the consumers of each linked dir to verify uniqueness
string(REGEX REPLACE "[^A-Za-z0-9_]" "_" linked_dir_key "${linked_tgt_name}")
set(linked_dir_consumers_var "linked_dir_consumers_${linked_dir_key}")
if (NOT DEFINED ${linked_dir_consumers_var})
list(APPEND linked_dir_keys "${linked_dir_key}")
list(APPEND linked_dir_names "${linked_tgt_name}")
endif ()
if (linked_tgt_name MATCHES "^importable@synth_[A-Za-z0-9_]+\.dir$")
# Record the consumers of each synthetic dir to verify uniqueness.
string(REGEX REPLACE "[^A-Za-z0-9_]" "_" linked_dir_key "${linked_tgt_name}")
set(linked_dir_consumers_var "linked_dir_consumers_${linked_dir_key}")
if (NOT DEFINED ${linked_dir_consumers_var})
list(APPEND linked_dir_keys "${linked_dir_key}")
list(APPEND linked_dir_names "${linked_tgt_name}")
endif ()
list(APPEND ${linked_dir_consumers_var} ${consumer})
list(APPEND ${linked_dir_consumers_var} ${consumer})
endif ()
endforeach ()
# Verify each synthetic target is consumed exactly once
# Verify each synthetic target is consumed exactly once.
foreach (linked_dir_key IN LISTS linked_dir_keys)
set(consumers "${linked_dir_consumers_${linked_dir_key}}")
list(LENGTH consumers linked_dir_consumer_count)
@@ -104,7 +122,7 @@ foreach (linked_dir_key IN LISTS linked_dir_keys)
string(JOIN ", " linked_dir_consumers_joined ${consumers})
list(APPEND RunCMake_TEST_FAILED
"Expected per-importer BMI generation, but '${linked_tgt_name}' is linked to by multiple targets: ${linked_dir_consumers_joined}")
"Expected per-compatibility synthetic BMI generation, but '${linked_tgt_name}' is linked to by multiple targets: ${linked_dir_consumers_joined}")
endif ()
endforeach ()