Merge topic 'fix-compatibility-mode-LOCATION'
2514e426
CMP0026: Use compatibility codepath until configure is finished (#15748)b98f7712
cmGlobalGenerator: Add API for the configure step being finished.b5de2bd9
cmLocalGenerator: Simplify condition.
This commit is contained in:
commit
dd8285c688
|
@ -2218,7 +2218,7 @@ cmGeneratorTarget::GetIncludeDirectories(const std::string& config,
|
|||
"INCLUDE_DIRECTORIES")
|
||||
!= debugProperties.end();
|
||||
|
||||
if (this->Makefile->IsConfigured())
|
||||
if (this->GlobalGenerator->GetConfigureDoneCMP0026())
|
||||
{
|
||||
this->DebugIncludesDone = true;
|
||||
}
|
||||
|
@ -2365,7 +2365,7 @@ void cmGeneratorTarget::GetCompileOptions(std::vector<std::string> &result,
|
|||
"COMPILE_OPTIONS")
|
||||
!= debugProperties.end();
|
||||
|
||||
if (this->Makefile->IsConfigured())
|
||||
if (this->GlobalGenerator->GetConfigureDoneCMP0026())
|
||||
{
|
||||
this->DebugCompileOptionsDone = true;
|
||||
}
|
||||
|
@ -2435,7 +2435,7 @@ void cmGeneratorTarget::GetCompileFeatures(std::vector<std::string> &result,
|
|||
"COMPILE_FEATURES")
|
||||
!= debugProperties.end();
|
||||
|
||||
if (this->Makefile->IsConfigured())
|
||||
if (this->GlobalGenerator->GetConfigureDoneCMP0026())
|
||||
{
|
||||
this->DebugCompileFeaturesDone = true;
|
||||
}
|
||||
|
@ -2503,7 +2503,7 @@ void cmGeneratorTarget::GetCompileDefinitions(std::vector<std::string> &list,
|
|||
"COMPILE_DEFINITIONS")
|
||||
!= debugProperties.end();
|
||||
|
||||
if (this->Makefile->IsConfigured())
|
||||
if (this->GlobalGenerator->GetConfigureDoneCMP0026())
|
||||
{
|
||||
this->DebugCompileDefinitionsDone = true;
|
||||
}
|
||||
|
@ -3937,7 +3937,7 @@ cmGeneratorTarget::ReportPropertyOrigin(const std::string &p,
|
|||
p)
|
||||
!= debugProperties.end();
|
||||
|
||||
if (this->Target->GetMakefile()->IsConfigured())
|
||||
if (this->GlobalGenerator->GetConfigureDoneCMP0026())
|
||||
{
|
||||
this->DebugCompatiblePropertiesDone[p] = true;
|
||||
}
|
||||
|
@ -4504,7 +4504,7 @@ void cmGeneratorTarget::GetLanguages(std::set<std::string>& languages,
|
|||
|
||||
std::vector<cmGeneratorTarget*> objectLibraries;
|
||||
std::vector<cmSourceFile const*> externalObjects;
|
||||
if (!this->Makefile->IsConfigured())
|
||||
if (!this->GlobalGenerator->GetConfigureDoneCMP0026())
|
||||
{
|
||||
std::vector<cmTarget*> objectTargets;
|
||||
this->Target->GetObjectLibrariesCMP0026(objectTargets);
|
||||
|
|
|
@ -72,6 +72,8 @@ cmGlobalGenerator::cmGlobalGenerator(cmake* cm)
|
|||
this->ExtraGenerator = 0;
|
||||
this->CurrentMakefile = 0;
|
||||
this->TryCompileOuterMakefile = 0;
|
||||
|
||||
this->ConfigureDoneCMP0026 = false;
|
||||
}
|
||||
|
||||
cmGlobalGenerator::~cmGlobalGenerator()
|
||||
|
@ -1110,9 +1112,12 @@ void cmGlobalGenerator::Configure()
|
|||
this->CMakeInstance->GetHomeOutputDirectory());
|
||||
|
||||
// now do it
|
||||
this->ConfigureDoneCMP0026 = false;
|
||||
dirMf->Configure();
|
||||
dirMf->EnforceDirectoryLevelRules();
|
||||
|
||||
this->ConfigureDoneCMP0026 = true;
|
||||
|
||||
// Put a copy of each global target in every directory.
|
||||
cmTargets globalTargets;
|
||||
this->CreateDefaultGlobalTargets(&globalTargets);
|
||||
|
|
|
@ -363,6 +363,8 @@ public:
|
|||
cmFileLockPool& GetFileLockPool() { return FileLockPool; }
|
||||
#endif
|
||||
|
||||
bool GetConfigureDoneCMP0026() const { return this->ConfigureDoneCMP0026; }
|
||||
|
||||
std::string MakeSilentFlag;
|
||||
protected:
|
||||
typedef std::vector<cmLocalGenerator*> GeneratorVector;
|
||||
|
@ -520,6 +522,7 @@ protected:
|
|||
bool ForceUnixPaths;
|
||||
bool ToolSupportsColor;
|
||||
bool InstallTargetEnabled;
|
||||
bool ConfigureDoneCMP0026;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -2850,7 +2850,7 @@ cmIML_INT_uint64_t cmLocalGenerator::GetBackwardsCompatibility()
|
|||
}
|
||||
}
|
||||
this->BackwardsCompatibility = CMake_VERSION_ENCODE(major, minor, patch);
|
||||
this->BackwardsCompatibilityFinal = this->Makefile->IsConfigured();
|
||||
this->BackwardsCompatibilityFinal = true;
|
||||
}
|
||||
|
||||
return this->BackwardsCompatibility;
|
||||
|
|
|
@ -636,7 +636,7 @@ void cmTarget::GetSourceFiles(std::vector<std::string> &files,
|
|||
{
|
||||
assert(this->GetType() != INTERFACE_LIBRARY);
|
||||
|
||||
if (!this->Makefile->IsConfigured())
|
||||
if (!this->GetMakefile()->GetGlobalGenerator()->GetConfigureDoneCMP0026())
|
||||
{
|
||||
// At configure-time, this method can be called as part of getting the
|
||||
// LOCATION property or to export() a file to be include()d. However
|
||||
|
@ -682,7 +682,7 @@ void cmTarget::GetSourceFiles(std::vector<std::string> &files,
|
|||
"SOURCES")
|
||||
!= debugProperties.end();
|
||||
|
||||
if (this->Makefile->IsConfigured())
|
||||
if (this->GetMakefile()->GetGlobalGenerator()->GetConfigureDoneCMP0026())
|
||||
{
|
||||
this->DebugSourcesDone = true;
|
||||
}
|
||||
|
|
|
@ -11,3 +11,4 @@ run_cmake(CMP0026-LOCATION-CONFIG-OLD)
|
|||
run_cmake(CMP0026-LOCATION-CONFIG-WARN)
|
||||
run_cmake(ObjlibNotDefined)
|
||||
run_cmake(LOCATION-and-TARGET_OBJECTS)
|
||||
run_cmake(clear-cached-information)
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
add_executable(Hello ${CMAKE_CURRENT_BINARY_DIR}/main.c)
|
|
@ -0,0 +1,14 @@
|
|||
|
||||
enable_language(C)
|
||||
|
||||
cmake_policy(SET CMP0026 OLD)
|
||||
|
||||
add_subdirectory(clear-cached-information-dir)
|
||||
|
||||
# Critical: this needs to happen in root CMakeLists.txt and not inside
|
||||
# the subdir.
|
||||
get_target_property(mypath Hello LOCATION)
|
||||
# Now we create the file later, so you can see, ultimately no error should
|
||||
# happen e.g. during generate phase:
|
||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/clear-cached-information-dir/main.c)
|
||||
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/clear-cached-information-dir/main.c PROPERTIES GENERATED TRUE)
|
Loading…
Reference in New Issue