[Cmake-commits] CMake branch, next, updated. v3.0.2-5704-g7e4240e

Brad King brad.king at kitware.com
Fri Oct 10 10:11:49 EDT 2014


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  7e4240e63ad0cd117bf1ee6ef2a0a68fdbc8a0c3 (commit)
       via  23c8eeb7d7aa749ceb4b54f06c4c6ab0f20f28e2 (commit)
       via  5ab9aa62fe1e5e1e74bafc69bf0e8d16f118ac9d (commit)
      from  c91a0885960bd7d811c0bf1bc1469f91603a7604 (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=7e4240e63ad0cd117bf1ee6ef2a0a68fdbc8a0c3
commit 7e4240e63ad0cd117bf1ee6ef2a0a68fdbc8a0c3
Merge: c91a088 23c8eeb
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Oct 10 10:11:48 2014 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Fri Oct 10 10:11:48 2014 -0400

    Merge topic 'fix-ninja-rc-include-flags' into next
    
    23c8eeb7 Ninja: Fix RC include directories regression
    5ab9aa62 CMake Nightly Date Stamp


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=23c8eeb7d7aa749ceb4b54f06c4c6ab0f20f28e2
commit 23c8eeb7d7aa749ceb4b54f06c4c6ab0f20f28e2
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Oct 10 09:57:07 2014 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Fri Oct 10 10:03:01 2014 -0400

    Ninja: Fix RC include directories regression
    
    Changes in commit b9aa5041 (cmLocalGenerator: Simplify GetIncludeFlags
    output formatting, 2014-03-04) caused Windows Resource Compiler include
    directories to be computed as relative paths in the Ninja generator.
    This breaks the cmcldeps handling of include paths.  The reason for the
    regression is that several cmLocalGenerator::GetIncludeFlags callers
    treated the fourth "bool forResponseFile" argument as if it controlled
    whether include directories were a full path.  It actually did control
    that by accident until the above commit.
    
    Add an explicit "bool forceFullPaths" argument to GetIncludeFlags
    and thread the value through ConvertToIncludeReference as needed.
    Update GetIncludeFlags call sites that really wanted to control the
    forResponseFile setting to be aware of the new argument.  Extend the
    VSResource test to cover this case.

diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index 4bd9191..50e279b 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -1287,9 +1287,11 @@ cmLocalGenerator::ConvertToOutputForExisting(RelativeRoot remote,
 //----------------------------------------------------------------------------
 std::string
 cmLocalGenerator::ConvertToIncludeReference(std::string const& path,
-                                            OutputFormat format)
+                                            OutputFormat format,
+                                            bool forceFullPaths)
 {
-  return this->ConvertToOutputForExisting(path, START_OUTPUT, format);
+  return this->ConvertToOutputForExisting(
+    path, forceFullPaths? FULL : START_OUTPUT, format);
 }
 
 //----------------------------------------------------------------------------
@@ -1297,6 +1299,7 @@ std::string cmLocalGenerator::GetIncludeFlags(
                                      const std::vector<std::string> &includes,
                                      cmGeneratorTarget* target,
                                      const std::string& lang,
+                                     bool forceFullPaths,
                                      bool forResponseFile,
                                      const std::string& config)
 {
@@ -1401,7 +1404,7 @@ std::string cmLocalGenerator::GetIncludeFlags(
       flagUsed = true;
       }
     std::string includePath =
-      this->ConvertToIncludeReference(*i, shellFormat);
+      this->ConvertToIncludeReference(*i, shellFormat, forceFullPaths);
     if(quotePaths && includePath.size() && includePath[0] != '\"')
       {
       includeFlags << "\"";
diff --git a/Source/cmLocalGenerator.h b/Source/cmLocalGenerator.h
index b25b9ab..3a9d5be 100644
--- a/Source/cmLocalGenerator.h
+++ b/Source/cmLocalGenerator.h
@@ -160,6 +160,7 @@ public:
   std::string GetIncludeFlags(const std::vector<std::string> &includes,
                               cmGeneratorTarget* target,
                               const std::string& lang,
+                              bool forceFullPaths = false,
                               bool forResponseFile = false,
                               const std::string& config = "");
 
@@ -215,7 +216,8 @@ public:
                                          OutputFormat format = SHELL);
 
   virtual std::string ConvertToIncludeReference(std::string const& path,
-                                                OutputFormat format = SHELL);
+                                                OutputFormat format = SHELL,
+                                                bool forceFullPaths = false);
 
   /** Called from command-line hook to clear dependencies.  */
   virtual void ClearDependencies(cmMakefile* /* mf */,
diff --git a/Source/cmLocalNinjaGenerator.cxx b/Source/cmLocalNinjaGenerator.cxx
index 5522e0d..398b55a 100644
--- a/Source/cmLocalNinjaGenerator.cxx
+++ b/Source/cmLocalNinjaGenerator.cxx
@@ -151,9 +151,10 @@ cmLocalNinjaGenerator::ConvertToLinkReference(std::string const& lib,
 
 std::string
 cmLocalNinjaGenerator::ConvertToIncludeReference(std::string const& path,
-                                                 OutputFormat format)
+                                                 OutputFormat format,
+                                                 bool forceFullPaths)
 {
-  return this->Convert(path, HOME_OUTPUT, format);
+  return this->Convert(path, forceFullPaths? FULL : HOME_OUTPUT, format);
 }
 
 //----------------------------------------------------------------------------
diff --git a/Source/cmLocalNinjaGenerator.h b/Source/cmLocalNinjaGenerator.h
index c787ac6..1d27224 100644
--- a/Source/cmLocalNinjaGenerator.h
+++ b/Source/cmLocalNinjaGenerator.h
@@ -108,7 +108,8 @@ public:
 
 protected:
   virtual std::string ConvertToIncludeReference(std::string const& path,
-                                                OutputFormat format = SHELL);
+                                                OutputFormat format = SHELL,
+                                                bool forceFullPaths = false);
 
 
 private:
diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx
index 7849d12..1f8f686 100644
--- a/Source/cmMakefileTargetGenerator.cxx
+++ b/Source/cmMakefileTargetGenerator.cxx
@@ -1962,7 +1962,7 @@ void cmMakefileTargetGenerator::AddIncludeFlags(std::string& flags,
 
   std::string includeFlags =
     this->LocalGenerator->GetIncludeFlags(includes, this->GeneratorTarget,
-                                          lang, useResponseFile);
+                                          lang, false, useResponseFile);
   if(includeFlags.empty())
     {
     return;
diff --git a/Tests/VSResource/CMakeLists.txt b/Tests/VSResource/CMakeLists.txt
index c5cb336..67c5a36 100644
--- a/Tests/VSResource/CMakeLists.txt
+++ b/Tests/VSResource/CMakeLists.txt
@@ -30,6 +30,8 @@ else()
   set(TEXTFILE_FROM_SOURCE_DIR "textfile, spaces in name, from binary dir")
   configure_file(${CMAKE_CURRENT_SOURCE_DIR}/test.txt
     "${CMAKE_CURRENT_BINARY_DIR}/test with spaces.txt" @ONLY)
+  configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include.rc.in
+    "${CMAKE_CURRENT_BINARY_DIR}/include.rc" @ONLY)
   include_directories(${CMAKE_CURRENT_BINARY_DIR})
   add_definitions(/DCMAKE_RCDEFINE="test with spaces.txt")
 endif()
diff --git a/Tests/VSResource/include.rc.in b/Tests/VSResource/include.rc.in
new file mode 100644
index 0000000..f0f6859
--- /dev/null
+++ b/Tests/VSResource/include.rc.in
@@ -0,0 +1 @@
+// This file should be included.
diff --git a/Tests/VSResource/test.rc b/Tests/VSResource/test.rc
index 4ce4b53..c6a54c7 100644
--- a/Tests/VSResource/test.rc
+++ b/Tests/VSResource/test.rc
@@ -1,4 +1,5 @@
 #ifdef CMAKE_RCDEFINE
+# include <include.rc>
 
 // This line can compile with either an unquoted or a quoted string
 1025 TEXTFILE CMAKE_RCDEFINE

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

Summary of changes:
 Source/CMakeVersion.cmake            |    2 +-
 Source/cmLocalGenerator.cxx          |    9 ++++++---
 Source/cmLocalGenerator.h            |    4 +++-
 Source/cmLocalNinjaGenerator.cxx     |    5 +++--
 Source/cmLocalNinjaGenerator.h       |    3 ++-
 Source/cmMakefileTargetGenerator.cxx |    2 +-
 Tests/VSResource/CMakeLists.txt      |    2 ++
 Tests/VSResource/include.rc.in       |    1 +
 Tests/VSResource/test.rc             |    1 +
 9 files changed, 20 insertions(+), 9 deletions(-)
 create mode 100644 Tests/VSResource/include.rc.in


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list