CMP0026: Use compatibility codepath until configure is finished (#15748)
Use it instead of the similar cmMakefile API. It is necessary to
know that the Configure step is completely done, not just that one
particular cmMakefile is finished configuring.
Prior to commit 611220f7
(cmTarget: Use reliable test for CMP0024 and CMP0026
OLD., 2015-07-25), this was determined by checking whether cmGeneratorTargets
exist yet, which happens after the Configure step.
This commit is contained in:
parent
b98f7712ea
commit
2514e4265c
|
@ -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);
|
||||
|
|
|
@ -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