[Cmake-commits] CMake branch, next, updated. v2.8.12-3740-g8b7c1e9

Stephen Kelly steveire at gmail.com
Thu Oct 10 06:02:26 EDT 2013


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  8b7c1e9023cec0d36e68f51e6e2b2d8346a7a445 (commit)
       via  af1f6987571b6f8298b03e184aa4aad23882d5c8 (commit)
      from  6533627e2f2f5c5a861ed35952f0d4145128ac1b (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=8b7c1e9023cec0d36e68f51e6e2b2d8346a7a445
commit 8b7c1e9023cec0d36e68f51e6e2b2d8346a7a445
Merge: 6533627 af1f698
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Oct 10 06:02:22 2013 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Thu Oct 10 06:02:22 2013 -0400

    Merge topic 'fix-CMP0024-multiple-directories' into next
    
    af1f698 CMP0024: Store the fact of included export in global generator.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=af1f6987571b6f8298b03e184aa4aad23882d5c8
commit af1f6987571b6f8298b03e184aa4aad23882d5c8
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Oct 10 11:46:06 2013 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Thu Oct 10 12:01:39 2013 +0200

    CMP0024: Store the fact of included export in global generator.
    
    Storing it in the makefile means that the policy does not trigger
    when include and export are in differing directories.

diff --git a/Source/cmExportCommand.cxx b/Source/cmExportCommand.cxx
index 422b038..f335b8b 100644
--- a/Source/cmExportCommand.cxx
+++ b/Source/cmExportCommand.cxx
@@ -172,7 +172,9 @@ bool cmExportCommand
   ebfg.SetCommand(this);
   ebfg.SetExportOld(this->ExportOld.IsEnabled());
 
-  this->Makefile->AddExportedTargetsFile(fname);
+  cmGlobalGenerator *gg = this->Makefile->GetLocalGenerator()
+                                        ->GetGlobalGenerator();
+  gg->AddExportedTargetsFile(fname);
 
   // Compute the set of configurations exported.
   std::vector<std::string> configurationTypes;
diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h
index 70f6e32..b8860f1 100644
--- a/Source/cmGlobalGenerator.h
+++ b/Source/cmGlobalGenerator.h
@@ -293,6 +293,18 @@ public:
 
   void ProcessEvaluationFiles();
 
+  void AddExportedTargetsFile(const std::string &filename)
+  {
+    this->ExportedTargetsFiles.insert(filename);
+  }
+
+  bool IsExportedTargetsFile(const std::string &filename) const
+  {
+    const std::set<std::string>::const_iterator it
+                                  = this->ExportedTargetsFiles.find(filename);
+    return it != this->ExportedTargetsFiles.end();
+  }
+
 protected:
   typedef std::vector<cmLocalGenerator*> GeneratorVector;
   // for a project collect all its targets by following depend
@@ -372,6 +384,7 @@ private:
   std::map<cmStdString, cmStdString> ExtensionToLanguage;
   std::map<cmStdString, int> LanguageToLinkerPreference;
   std::map<cmStdString, cmStdString> LanguageToOriginalSharedLibFlags;
+  std::set<std::string> ExportedTargetsFiles;
 
   // Record hashes for rules and outputs.
   struct RuleHash { char Data[32]; };
diff --git a/Source/cmIncludeCommand.cxx b/Source/cmIncludeCommand.cxx
index a3d8b83..39d4993 100644
--- a/Source/cmIncludeCommand.cxx
+++ b/Source/cmIncludeCommand.cxx
@@ -93,7 +93,9 @@ bool cmIncludeCommand
       cmSystemTools::CollapseFullPath(fname.c_str(),
                                       this->Makefile->GetStartDirectory());
 
-  if (this->Makefile->IsExportedTargetsFile(fname_abs))
+  cmGlobalGenerator *gg = this->Makefile->GetLocalGenerator()
+                                        ->GetGlobalGenerator();
+  if (gg->IsExportedTargetsFile(fname_abs))
     {
     const char *modal = 0;
     cmake::MessageType messageType = cmake::AUTHOR_WARNING;
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 362b066..ca82336 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -489,18 +489,6 @@ public:
       return this->cmCurrentListFile.c_str();
     }
 
-  void AddExportedTargetsFile(const std::string &filename)
-  {
-    this->ExportedTargetsFiles.insert(filename);
-  }
-
-  bool IsExportedTargetsFile(const std::string &filename) const
-  {
-    const std::set<std::string>::const_iterator it
-                                  = this->ExportedTargetsFiles.find(filename);
-    return it != this->ExportedTargetsFiles.end();
-  }
-
   //@}
 
   /**
@@ -1053,7 +1041,6 @@ private:
   void EnforceDirectoryLevelRules();
 
   bool GeneratingBuildSystem;
-  std::set<std::string> ExportedTargetsFiles;
   /**
    * Old version of GetSourceFileWithOutput(const char*) kept for
    * backward-compatibility. It implements a linear search and support
diff --git a/Tests/RunCMake/include/CMP0024-NEW-stderr.txt b/Tests/RunCMake/include/CMP0024-NEW-stderr.txt
index 182c67a..059d7e4 100644
--- a/Tests/RunCMake/include/CMP0024-NEW-stderr.txt
+++ b/Tests/RunCMake/include/CMP0024-NEW-stderr.txt
@@ -1,15 +1,12 @@
-CMake Error at CMP0024-NEW.cmake:9 \(include\):
+CMake Error at subdir2/CMakeLists.txt:2 \(include\):
   Policy CMP0024 is not set: Disallow include export result.  Run "cmake
   --help-policy CMP0024" for policy details.  Use the cmake_policy command to
   set the policy and suppress this warning.
 
   The file
 
-    .*/Tests/RunCMake/include/CMP0024-NEW-build/theTargets.cmake
+    .*/Tests/RunCMake/include/CMP0024-NEW-build/subdir1/theTargets.cmake
 
   was generated by the export\(\) command.  It may not be used as the argument
   to the include\(\) command.  Use ALIAS targets instead to refer to targets by
   alternative names.
-
-Call Stack \(most recent call first\):
-  CMakeLists.txt:3 \(include\)
diff --git a/Tests/RunCMake/include/CMP0024-NEW.cmake b/Tests/RunCMake/include/CMP0024-NEW.cmake
index 0685d6c..0e03d2a 100644
--- a/Tests/RunCMake/include/CMP0024-NEW.cmake
+++ b/Tests/RunCMake/include/CMP0024-NEW.cmake
@@ -5,5 +5,5 @@ cmake_policy(SET CMP0024 NEW)
 
 add_library(foo SHARED empty.cpp)
 
-export(TARGETS foo FILE "${CMAKE_CURRENT_BINARY_DIR}/theTargets.cmake")
-include("${CMAKE_CURRENT_BINARY_DIR}/theTargets.cmake")
+add_subdirectory(subdir1)
+add_subdirectory(subdir2)
diff --git a/Tests/RunCMake/include/CMP0024-WARN-stderr.txt b/Tests/RunCMake/include/CMP0024-WARN-stderr.txt
index 2b36f17..9c79007 100644
--- a/Tests/RunCMake/include/CMP0024-WARN-stderr.txt
+++ b/Tests/RunCMake/include/CMP0024-WARN-stderr.txt
@@ -1,16 +1,14 @@
-CMake Warning \(dev\) at CMP0024-WARN.cmake:7 \(include\):
+CMake Warning \(dev\) at subdir2/CMakeLists.txt:2 \(include\):
   Policy CMP0024 is not set: Disallow include export result.  Run "cmake
   --help-policy CMP0024" for policy details.  Use the cmake_policy command to
   set the policy and suppress this warning.
 
   The file
 
-    .*/Tests/RunCMake/include/CMP0024-WARN-build/theTargets.cmake
+    .*/Tests/RunCMake/include/CMP0024-WARN-build/subdir1/theTargets.cmake
 
   was generated by the export\(\) command.  It should not be used as the
   argument to the include\(\) command.  Use ALIAS targets instead to refer to
   targets by alternative names.
 
-Call Stack \(most recent call first\):
-  CMakeLists.txt:3 \(include\)
 This warning is for project developers.  Use -Wno-dev to suppress it.
diff --git a/Tests/RunCMake/include/CMP0024-WARN.cmake b/Tests/RunCMake/include/CMP0024-WARN.cmake
index 583c7d4..783cf78 100644
--- a/Tests/RunCMake/include/CMP0024-WARN.cmake
+++ b/Tests/RunCMake/include/CMP0024-WARN.cmake
@@ -3,5 +3,5 @@ enable_language(CXX)
 
 add_library(foo SHARED empty.cpp)
 
-export(TARGETS foo FILE "${CMAKE_CURRENT_BINARY_DIR}/theTargets.cmake")
-include("${CMAKE_CURRENT_BINARY_DIR}/theTargets.cmake")
+add_subdirectory(subdir1)
+add_subdirectory(subdir2)
diff --git a/Tests/RunCMake/include/subdir1/CMakeLists.txt b/Tests/RunCMake/include/subdir1/CMakeLists.txt
new file mode 100644
index 0000000..11a76d1
--- /dev/null
+++ b/Tests/RunCMake/include/subdir1/CMakeLists.txt
@@ -0,0 +1,2 @@
+
+export(TARGETS foo FILE "${CMAKE_CURRENT_BINARY_DIR}/theTargets.cmake")
diff --git a/Tests/RunCMake/include/subdir2/CMakeLists.txt b/Tests/RunCMake/include/subdir2/CMakeLists.txt
new file mode 100644
index 0000000..7361f9c
--- /dev/null
+++ b/Tests/RunCMake/include/subdir2/CMakeLists.txt
@@ -0,0 +1,2 @@
+
+include("${CMAKE_CURRENT_BINARY_DIR}/../subdir1/theTargets.cmake")

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

Summary of changes:
 Source/cmExportCommand.cxx                     |    4 +++-
 Source/cmGlobalGenerator.h                     |   13 +++++++++++++
 Source/cmIncludeCommand.cxx                    |    4 +++-
 Source/cmMakefile.h                            |   13 -------------
 Tests/RunCMake/include/CMP0024-NEW-stderr.txt  |    7 ++-----
 Tests/RunCMake/include/CMP0024-NEW.cmake       |    4 ++--
 Tests/RunCMake/include/CMP0024-WARN-stderr.txt |    6 ++----
 Tests/RunCMake/include/CMP0024-WARN.cmake      |    4 ++--
 Tests/RunCMake/include/subdir1/CMakeLists.txt  |    2 ++
 Tests/RunCMake/include/subdir2/CMakeLists.txt  |    2 ++
 10 files changed, 31 insertions(+), 28 deletions(-)
 create mode 100644 Tests/RunCMake/include/subdir1/CMakeLists.txt
 create mode 100644 Tests/RunCMake/include/subdir2/CMakeLists.txt


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list