c++modules: Copy props from BMI consumers more correctly

Fixes: #27891
This commit is contained in:
Vito Gamberini
2026-06-19 09:23:38 -04:00
parent 6d3e9d8220
commit 42d2d63235
13 changed files with 163 additions and 135 deletions
+29 -5
View File
@@ -12,6 +12,8 @@
#include "cmGeneratorTarget.h"
#include "cmListFileCache.h"
#include "cmMakefile.h"
#include "cmRange.h"
#include "cmStringAlgorithms.h"
#include "cmTarget.h"
#include "cmValue.h"
@@ -96,10 +98,17 @@ FlagFilter GetFlagFilter(cmGeneratorTarget const* gt)
return filter;
}
void AppendUsage(std::string& usageHashInput, std::string const& entry)
{
usageHashInput += entry;
usageHashInput.push_back('\0');
}
template <typename Range>
void AppendUsageEntries(std::string& usageHashInput, Range const& entries)
{
std::vector<std::string> entryValues;
entryValues.reserve(entries.size());
for (auto const& entry : entries) {
entryValues.push_back(entry.Value);
}
@@ -114,7 +123,8 @@ void AppendUsageEntries(std::string& usageHashInput, Range const& entries)
}
}
cmCxxModuleUsageEffects::cmCxxModuleUsageEffects(cmGeneratorTarget const* gt)
cmCxxModuleUsageEffects::cmCxxModuleUsageEffects(cmGeneratorTarget const* gt,
std::string const& config)
{
auto const* tgt = gt->Target;
auto const filter = GetFlagFilter(gt);
@@ -128,11 +138,25 @@ cmCxxModuleUsageEffects::cmCxxModuleUsageEffects(cmGeneratorTarget const* gt)
tgt->GetImportedCxxModulesCompileOptionsEntries().filter(
[&](const BT<std::string>& flag) { return !filter(flag.Value); }));
} else {
AppendUsageEntries(usageHashInput, tgt->GetCompileFeaturesEntries());
AppendUsageEntries(
AppendUsageEntries(usageHashInput,
cmMakeRange(gt->GetCompileOptions(config, "CXX"))
.filter([&](const BT<std::string>& flag) {
return !filter(flag.Value);
}));
cmValue langStd = gt->GetLanguageStandard("CXX", config);
if (!langStd) {
langStd = gt->Makefile->GetDefinition("CMAKE_CXX_STANDARD_DEFAULT");
}
AppendUsage(usageHashInput,
cmStrCat("CXX_STANDARD:", langStd ? *langStd : "20"));
AppendUsage(
usageHashInput,
tgt->GetCompileOptionsEntries().filter(
[&](const BT<std::string>& flag) { return !filter(flag.Value); }));
cmStrCat("CXX_EXTENSIONS:", *gt->GetLanguageExtensions("CXX")));
AppendUsage(
usageHashInput,
cmStrCat("CXX_STANDARD_REQUIRED:",
gt->GetLanguageStandardRequired("CXX") ? "TRUE" : "FALSE"));
}
cmCryptoHash hasher(cmCryptoHash::AlgoSHA3_512);
+2 -1
View File
@@ -11,7 +11,8 @@ class cmGeneratorTarget;
class cmCxxModuleUsageEffects
{
public:
cmCxxModuleUsageEffects(cmGeneratorTarget const* gt);
cmCxxModuleUsageEffects(cmGeneratorTarget const* gt,
std::string const& config);
std::string const& GetHash() const;
private:
+14 -8
View File
@@ -5485,21 +5485,26 @@ bool cmGeneratorTarget::ApplyCXXStdTarget()
return true;
}
cmCxxModuleUsageEffects const& cmGeneratorTarget::GetCxxModuleUsageEffects()
const
cmCxxModuleUsageEffects const& cmGeneratorTarget::GetCxxModuleUsageEffects(
std::string const& config) const
{
if (!this->CxxModuleUsageEffects) {
this->CxxModuleUsageEffects.emplace(this);
auto iter = this->CxxModuleUsageEffects.find(config);
if (iter == this->CxxModuleUsageEffects.end()) {
auto result = this->CxxModuleUsageEffects.emplace(
std::pair<std::string, cmCxxModuleUsageEffects>{
config, cmCxxModuleUsageEffects(this, config) });
return result.first->second;
}
return *this->CxxModuleUsageEffects;
return iter->second;
}
cmGeneratorTarget const* cmGeneratorTarget::GetTargetForCxxModules(
std::string const& config, cmGeneratorTarget const& bmiConsumer) const
{
auto const& consumingUsage = bmiConsumer.GetCxxModuleUsageEffects();
auto const& owningUsage = this->GetCxxModuleUsageEffects();
auto const& consumingUsage = bmiConsumer.GetCxxModuleUsageEffects(config);
auto const& owningUsage = this->GetCxxModuleUsageEffects(config);
if (consumingUsage.GetHash() == owningUsage.GetHash()) {
if (this->IsImported()) {
return this->GetCxxSyntheticTarget(config, *this);
@@ -5513,7 +5518,8 @@ cmGeneratorTarget const* cmGeneratorTarget::GetTargetForCxxModules(
cmGeneratorTarget const* cmGeneratorTarget::GetCxxSyntheticTarget(
std::string const& config, cmGeneratorTarget const& bmiConsumer) const
{
auto const& usageHash = bmiConsumer.GetCxxModuleUsageEffects().GetHash();
auto const& usageHash =
bmiConsumer.GetCxxModuleUsageEffects(config).GetHash();
auto cached = this->SynthCxxTargets.find(usageHash);
if (cached != this->SynthCxxTargets.end()) {
return cached->second;
+3 -2
View File
@@ -1147,7 +1147,8 @@ public:
std::string GetImportedXcFrameworkPath(std::string const& config) const;
bool ApplyCXXStdTarget();
cmCxxModuleUsageEffects const& GetCxxModuleUsageEffects() const;
cmCxxModuleUsageEffects const& GetCxxModuleUsageEffects(
std::string const& config) const;
cmGeneratorTarget const* GetTargetForCxxModules(
std::string const& config, cmGeneratorTarget const& bmiConsumer) const;
bool DiscoverSyntheticTargets(
@@ -1617,7 +1618,7 @@ private:
std::map<cmSourceFile const*, ClassifiedFlags> SourceFlags;
};
mutable std::map<std::string, cmGeneratorTarget*> SynthCxxTargets;
mutable cm::optional<cmCxxModuleUsageEffects> CxxModuleUsageEffects;
mutable std::map<std::string, cmCxxModuleUsageEffects> CxxModuleUsageEffects;
mutable std::map<std::string, InfoByConfig> Configs;
std::unique_ptr<cmGeneratorFileSets> FileSets;
bool PchReused = false;
+30 -17
View File
@@ -25,6 +25,7 @@
#include "cmFileSetMetadata.h"
#include "cmFindPackageStack.h"
#include "cmGeneratorExpression.h"
#include "cmGeneratorTarget.h"
#include "cmGlobalGenerator.h"
#include "cmList.h"
#include "cmListFileCache.h"
@@ -595,6 +596,16 @@ TargetProperty const StaticTargetProperties[] = {
#undef COMMON_LANGUAGE_PROPERTIES
#undef IC
#undef R
cmValue copyProperty(cmTarget const* src, cmTarget* dst,
std::string const& prop)
{
cmValue value = src->GetProperty(prop);
// Always set the property; it may have been explicitly unset.
dst->SetProperty(prop, value);
return value;
};
}
class cmTargetInternals
@@ -1739,12 +1750,16 @@ cmBTStringRange cmTarget::GetLinkInterfaceDirectExcludeEntries() const
return cmMakeRange(this->impl->InterfaceLinkLibrariesDirectExclude.Entries);
}
void cmTarget::CopyUsageEffects(cmTarget const* tgt)
void cmTarget::CopyUsageEffects(cmGeneratorTarget const* gt,
std::string const& config)
{
// Normal targets cannot be the target of a copy.
assert(!this->IsNormal());
// Imported targets cannot be the target of a copy.
assert(!this->IsImported());
auto const* tgt = gt->Target;
// Only imported or normal targets can be the source of a copy.
assert(tgt->IsImported() || tgt->IsNormal());
@@ -1758,10 +1773,17 @@ void cmTarget::CopyUsageEffects(cmTarget const* tgt)
cmMakeRange(tgt->impl->ImportedCxxModulesCompileOptions.Entries));
} else {
this->impl->CompileFeatures.CopyFromEntries(
cmMakeRange(tgt->impl->CompileFeatures.Entries));
cmMakeRange(gt->GetCompileFeatures(config)));
this->impl->CompileOptions.CopyFromEntries(
cmMakeRange(tgt->impl->CompileOptions.Entries));
cmMakeRange(gt->GetCompileOptions(config, "CXX")));
}
cmValue langStd = gt->GetLanguageStandard("CXX", config);
if (langStd) {
this->SetProperty("CXX_STANDARD", *langStd);
}
copyProperty(tgt, this, "CXX_EXTENSIONS");
copyProperty(tgt, this, "CXX_STANDARD_REQUIRED");
}
void cmTarget::CopyPolicyStatuses(cmTarget const* tgt)
@@ -1857,9 +1879,6 @@ void cmTarget::CopyCxxModulesProperties(cmTarget const* tgt)
// -- Language
// ---- C++
"CXX_COMPILER_LAUNCHER",
"CXX_STANDARD",
"CXX_STANDARD_REQUIRED",
"CXX_EXTENSIONS",
"CXX_VISIBILITY_PRESET",
"CXX_MODULE_STD",
@@ -1896,15 +1915,8 @@ void cmTarget::CopyCxxModulesProperties(cmTarget const* tgt)
"SYSTEM",
};
auto copyProperty = [this, tgt](std::string const& prop) -> cmValue {
cmValue value = tgt->GetProperty(prop);
// Always set the property; it may have been explicitly unset.
this->SetProperty(prop, value);
return value;
};
for (auto const& prop : propertiesToCopy) {
copyProperty(prop);
copyProperty(tgt, this, prop);
}
static cm::static_string_view const perConfigPropertiesToCopy[] = {
@@ -1919,12 +1931,13 @@ void cmTarget::CopyCxxModulesProperties(cmTarget const* tgt)
for (std::string const& configName : configNames) {
std::string configUpper = cmSystemTools::UpperCase(configName);
for (auto const& perConfigProp : perConfigPropertiesToCopy) {
copyProperty(cmStrCat(perConfigProp, configUpper));
copyProperty(tgt, this, cmStrCat(perConfigProp, configUpper));
}
}
if (this->GetGlobalGenerator()->IsXcode()) {
cmValue xcodeGenerateScheme = copyProperty("XCODE_GENERATE_SCHEME");
cmValue xcodeGenerateScheme =
copyProperty(tgt, this, "XCODE_GENERATE_SCHEME");
// TODO: Make sure these show up on the imported target in the first place
// XCODE_ATTRIBUTE_???
@@ -1954,7 +1967,7 @@ void cmTarget::CopyCxxModulesProperties(cmTarget const* tgt)
};
for (auto const& xcodeProperty : xcodeSchemePropertiesToCopy) {
copyProperty(xcodeProperty);
copyProperty(tgt, this, xcodeProperty);
}
#endif
}
+3 -1
View File
@@ -32,6 +32,7 @@ enum class Visibility;
class cmCustomCommand;
class cmFileSet;
class cmFindPackageStack;
class cmGeneratorTarget;
class cmGlobalGenerator;
class cmInstallTargetGenerator;
class cmMakefile;
@@ -327,7 +328,8 @@ public:
cmBTStringRange GetLinkInterfaceDirectEntries() const;
cmBTStringRange GetLinkInterfaceDirectExcludeEntries() const;
void CopyUsageEffects(cmTarget const* tgt);
void CopyUsageEffects(cmGeneratorTarget const* gt,
std::string const& config);
void CopyPolicyStatuses(cmTarget const* tgt);
void CopyCxxModulesEntries(cmTarget const* tgt);
void CopyCxxModulesProperties(cmTarget const* tgt);
@@ -2,26 +2,7 @@ file(GLOB synth_dirs
"${RunCMake_TEST_BINARY_DIR}/CMakeFiles/depchain_with_modules_json_file@synth_*.dir")
list(LENGTH synth_dirs synth_dirs_len)
if (NOT synth_dirs_len EQUAL 1)
if (NOT synth_dirs_len EQUAL 0)
list(APPEND RunCMake_TEST_FAILED
"Expected exactly one synthetic target for consuming 'depchain_with_modules_json_file' but found ${synth_dirs_len}: ${synth_dirs}")
endif ()
list(GET synth_dirs 0 synth_dir)
if (RunCMake_GENERATOR_IS_MULTI_CONFIG)
set(dep_modules_json_path "CMakeFiles/depchain_modules_json_file.dir/Debug/CXX.dd")
set(modules_json_path "${synth_dir}/Debug/CXXModules.json")
else ()
set(dep_modules_json_path "CMakeFiles/depchain_modules_json_file.dir/CXX.dd")
set(modules_json_path "${synth_dir}/CXXModules.json")
endif ()
if ("${modules_json_path}" IS_NEWER_THAN "${RunCMake_TEST_BINARY_DIR}/${dep_modules_json_path}")
cmake_path(RELATIVE_PATH modules_json_path
BASE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
list(APPEND RunCMake_TEST_FAILED
"Object '${dep_modules_json_path}' should have recompiled if '${modules_json_path}' changed.")
"Expected no synthetic targets for consuming 'depchain_with_modules_json_file' but found ${synth_dirs_len}: ${synth_dirs}")
endif ()
@@ -275,9 +275,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option",
"-Ddep_interface_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>/",
@@ -299,9 +299,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
"-Dtarget_public_option",
"-Ddep_interface_option"
],
"local-arguments": [
"-D_MBCS",
@@ -318,9 +318,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
"-Dtarget_public_option",
"-Ddep_interface_option"
],
"private": false,
"provides": {
@@ -354,9 +354,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_OTHER_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option",
"-Ddep_interface_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>/",
@@ -378,9 +378,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_OTHER_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
"-Dtarget_public_option",
"-Ddep_interface_option"
],
"local-arguments": [
"-D_MBCS",
@@ -397,9 +397,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_OTHER_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
"-Dtarget_public_option",
"-Ddep_interface_option"
],
"private": false,
"provides": {
@@ -436,8 +436,8 @@
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Ddep_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>/",
@@ -462,8 +462,8 @@
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option"
"-Dtarget_interface_option",
"-Ddep_interface_option"
],
"local-arguments": [
"-D_MBCS",
@@ -483,8 +483,8 @@
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option"
"-Dtarget_interface_option",
"-Ddep_interface_option"
],
"private": false,
"provides": {
@@ -521,8 +521,8 @@
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Ddep_interface_option",
"PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_1.dir<CONFIG_OTHER_DIR>/.d\"",
"REGEX:<BMI_ONLY_FLAG>",
"PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_1.dir<CONFIG_OTHER_DIR>/",
@@ -547,8 +547,8 @@
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option"
"-Dtarget_interface_option",
"-Ddep_interface_option"
],
"local-arguments": [
"-D_MBCS",
@@ -568,8 +568,8 @@
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option"
"-Dtarget_interface_option",
"-Ddep_interface_option"
],
"private": false,
"provides": {
@@ -149,9 +149,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option",
"-Ddep_interface_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>/",
@@ -173,9 +173,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
"-Dtarget_public_option",
"-Ddep_interface_option"
],
"local-arguments": [
"-D_MBCS",
@@ -192,9 +192,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
"-Dtarget_public_option",
"-Ddep_interface_option"
],
"private": false,
"provides": {
@@ -231,8 +231,8 @@
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Ddep_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>/",
@@ -257,8 +257,8 @@
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option"
"-Dtarget_interface_option",
"-Ddep_interface_option"
],
"local-arguments": [
"-D_MBCS",
@@ -278,8 +278,8 @@
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option"
"-Dtarget_interface_option",
"-Ddep_interface_option"
],
"private": false,
"provides": {
@@ -149,9 +149,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option",
"-Ddep_interface_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>/",
@@ -173,9 +173,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
"-Dtarget_public_option",
"-Ddep_interface_option"
],
"local-arguments": [
"-D_MBCS",
@@ -192,9 +192,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
"-Dtarget_public_option",
"-Ddep_interface_option"
],
"private": false,
"provides": {
@@ -231,8 +231,8 @@
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Ddep_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>/",
@@ -257,8 +257,8 @@
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option"
"-Dtarget_interface_option",
"-Ddep_interface_option"
],
"local-arguments": [
"-D_MBCS",
@@ -278,8 +278,8 @@
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option"
"-Dtarget_interface_option",
"-Ddep_interface_option"
],
"private": false,
"provides": {
@@ -149,9 +149,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option",
"-Ddep_interface_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>/",
@@ -173,9 +173,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
"-Dtarget_public_option",
"-Ddep_interface_option"
],
"local-arguments": [
"-D_MBCS",
@@ -192,9 +192,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
"-Dtarget_public_option",
"-Ddep_interface_option"
],
"private": false,
"provides": {
@@ -231,8 +231,8 @@
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Ddep_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>/",
@@ -257,8 +257,8 @@
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option"
"-Dtarget_interface_option",
"-Ddep_interface_option"
],
"local-arguments": [
"-D_MBCS",
@@ -278,8 +278,8 @@
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option"
"-Dtarget_interface_option",
"-Ddep_interface_option"
],
"private": false,
"provides": {
@@ -275,9 +275,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option",
"-Ddep_interface_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>/",
@@ -299,9 +299,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
"-Dtarget_public_option",
"-Ddep_interface_option"
],
"local-arguments": [
"-D_MBCS",
@@ -318,9 +318,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
"-Dtarget_public_option",
"-Ddep_interface_option"
],
"private": false,
"provides": {
@@ -354,9 +354,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_OTHER_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option",
"-Ddep_interface_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>/",
@@ -378,9 +378,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_OTHER_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
"-Dtarget_public_option",
"-Ddep_interface_option"
],
"local-arguments": [
"-D_MBCS",
@@ -397,9 +397,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_OTHER_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
"-Dtarget_public_option",
"-Ddep_interface_option"
],
"private": false,
"provides": {
@@ -436,8 +436,8 @@
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Ddep_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>/",
@@ -462,8 +462,8 @@
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option"
"-Dtarget_interface_option",
"-Ddep_interface_option"
],
"local-arguments": [
"-D_MBCS",
@@ -483,8 +483,8 @@
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option"
"-Dtarget_interface_option",
"-Ddep_interface_option"
],
"private": false,
"provides": {
@@ -521,8 +521,8 @@
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Ddep_interface_option",
"PATH:-Ddepflag=\"CMakeFiles/CXXModules__export_build_database@synth_1.dir<CONFIG_OTHER_DIR>/.d\"",
"REGEX:<BMI_ONLY_FLAG>",
"PATH:<OUTPUT_FLAG>CMakeFiles/CXXModules__export_build_database@synth_1.dir<CONFIG_OTHER_DIR>/",
@@ -547,8 +547,8 @@
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option"
"-Dtarget_interface_option",
"-Ddep_interface_option"
],
"local-arguments": [
"-D_MBCS",
@@ -568,8 +568,8 @@
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option"
"-Dtarget_interface_option",
"-Ddep_interface_option"
],
"private": false,
"provides": {
@@ -149,9 +149,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option",
"-Ddep_interface_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>/",
@@ -173,9 +173,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
"-Dtarget_public_option",
"-Ddep_interface_option"
],
"local-arguments": [
"-D_MBCS",
@@ -192,9 +192,9 @@
"-Dfrom_cmake_cxx_flags",
"-Dfrom_cmake_cxx_<CONFIG_LOWER>_flags",
"<CXX20_OPTION>",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Dtarget_public_option"
"-Dtarget_public_option",
"-Ddep_interface_option"
],
"private": false,
"provides": {
@@ -231,8 +231,8 @@
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option",
"-Ddep_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>/",
@@ -257,8 +257,8 @@
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option"
"-Dtarget_interface_option",
"-Ddep_interface_option"
],
"local-arguments": [
"-D_MBCS",
@@ -278,8 +278,8 @@
"-Dfrom_compile_options",
"-Dtarget_private_option",
"-Dtarget_public_option",
"-Ddep_interface_option",
"-Dtarget_interface_option"
"-Dtarget_interface_option",
"-Ddep_interface_option"
],
"private": false,
"provides": {