[Cmake-commits] CMake branch, next, updated. v3.3.2-3103-g7720172

Stephen Kelly steveire at gmail.com
Fri Sep 18 14:49:54 EDT 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  77201729619377b7ece124e1ab4347038cbbb833 (commit)
       via  2514e4265c1914f53f9445f331ddb7183f0d9501 (commit)
       via  b98f7712eab7fd928e7e332124b2a6fdcdfec7e6 (commit)
      from  5c7e0a97e953d0905b0d9e7bbc042cfbb6b6dfa0 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=77201729619377b7ece124e1ab4347038cbbb833
commit 77201729619377b7ece124e1ab4347038cbbb833
Merge: 5c7e0a9 2514e42
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Fri Sep 18 14:49:53 2015 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Fri Sep 18 14:49:53 2015 -0400

    Merge topic 'fix-compatibility-mode-LOCATION' into next
    
    2514e426 CMP0026: Use compatibility codepath until configure is finished (#15748)
    b98f7712 cmGlobalGenerator: Add API for the configure step being finished.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2514e4265c1914f53f9445f331ddb7183f0d9501
commit 2514e4265c1914f53f9445f331ddb7183f0d9501
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Fri Sep 18 01:34:46 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Sep 18 20:49:00 2015 +0200

    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.

diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx
index fb5805b..555c437 100644
--- a/Source/cmGeneratorTarget.cxx
+++ b/Source/cmGeneratorTarget.cxx
@@ -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);
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 2dfa19c..13e0d7e 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -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;
     }
diff --git a/Tests/RunCMake/CMP0026/RunCMakeTest.cmake b/Tests/RunCMake/CMP0026/RunCMakeTest.cmake
index fc58ea5..6331717 100644
--- a/Tests/RunCMake/CMP0026/RunCMakeTest.cmake
+++ b/Tests/RunCMake/CMP0026/RunCMakeTest.cmake
@@ -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)
diff --git a/Tests/RunCMake/CMP0026/clear-cached-information-dir/CMakeLists.txt b/Tests/RunCMake/CMP0026/clear-cached-information-dir/CMakeLists.txt
new file mode 100644
index 0000000..c51e883
--- /dev/null
+++ b/Tests/RunCMake/CMP0026/clear-cached-information-dir/CMakeLists.txt
@@ -0,0 +1,2 @@
+
+add_executable(Hello ${CMAKE_CURRENT_BINARY_DIR}/main.c)
diff --git a/Tests/RunCMake/CMP0026/clear-cached-information.cmake b/Tests/RunCMake/CMP0026/clear-cached-information.cmake
new file mode 100644
index 0000000..dd2dd72
--- /dev/null
+++ b/Tests/RunCMake/CMP0026/clear-cached-information.cmake
@@ -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)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b98f7712eab7fd928e7e332124b2a6fdcdfec7e6
commit b98f7712eab7fd928e7e332124b2a6fdcdfec7e6
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Fri Sep 18 01:34:46 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Sep 18 20:48:15 2015 +0200

    cmGlobalGenerator: Add API for the configure step being finished.

diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 33b04ac..7aa8bb6 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -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);
diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h
index 9fc2d45..40f98dc 100644
--- a/Source/cmGlobalGenerator.h
+++ b/Source/cmGlobalGenerator.h
@@ -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

-----------------------------------------------------------------------

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list