[Cmake-commits] CMake branch, next, updated. v3.3.0-2135-g4c8cbce

Brad King brad.king at kitware.com
Tue Aug 11 08:56:42 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  4c8cbce8b9a875e4d34544dded53ba0db1891eb1 (commit)
       via  8c076a8bdba8c5bc77fc01b3fafafa100fb59657 (commit)
       via  5790aca4adfc21e9e042e93fa0dd290aab91be5c (commit)
      from  69e527a1c2f170afb6dbb5179fe2f97d609496ea (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=4c8cbce8b9a875e4d34544dded53ba0db1891eb1
commit 4c8cbce8b9a875e4d34544dded53ba0db1891eb1
Merge: 69e527a 8c076a8
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Aug 11 08:56:42 2015 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Aug 11 08:56:42 2015 -0400

    Merge topic 'target_include_directories-relative-SYSTEM-dirs' into next
    
    8c076a8b cmTarget: Remove unused AddSystemIncludeDirectories overload
    5790aca4 target_include_directories: Support relative SYSTEM include dirs (#15464)


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8c076a8bdba8c5bc77fc01b3fafafa100fb59657
commit 8c076a8bdba8c5bc77fc01b3fafafa100fb59657
Author:     Gregor Jasny <gjasny at googlemail.com>
AuthorDate: Mon Aug 10 21:41:38 2015 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Aug 11 08:53:38 2015 -0400

    cmTarget: Remove unused AddSystemIncludeDirectories overload

diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index d3170e4..316d85c 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -1350,13 +1350,6 @@ cmTarget::AddSystemIncludeDirectories(const std::set<std::string> &incs)
   this->SystemIncludeDirectories.insert(incs.begin(), incs.end());
 }
 
-//----------------------------------------------------------------------------
-void
-cmTarget::AddSystemIncludeDirectories(const std::vector<std::string> &incs)
-{
-  this->SystemIncludeDirectories.insert(incs.begin(), incs.end());
-}
-
 #if defined(_WIN32) && !defined(__CYGWIN__)
 //----------------------------------------------------------------------------
 void
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index 490aaa3..2007b40 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -427,7 +427,6 @@ public:
                                   cmTarget::LinkLibraryType llt) const;
 
   void AddSystemIncludeDirectories(const std::set<std::string> &incs);
-  void AddSystemIncludeDirectories(const std::vector<std::string> &incs);
   std::set<std::string> const & GetSystemIncludeDirectories() const
     { return this->SystemIncludeDirectories; }
 

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5790aca4adfc21e9e042e93fa0dd290aab91be5c
commit 5790aca4adfc21e9e042e93fa0dd290aab91be5c
Author:     Gregor Jasny <gjasny at googlemail.com>
AuthorDate: Sun Aug 9 22:24:34 2015 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Aug 11 08:53:00 2015 -0400

    target_include_directories: Support relative SYSTEM include dirs (#15464)

diff --git a/Source/cmTargetIncludeDirectoriesCommand.cxx b/Source/cmTargetIncludeDirectoriesCommand.cxx
index 7824c89..7dfe9ca 100644
--- a/Source/cmTargetIncludeDirectoriesCommand.cxx
+++ b/Source/cmTargetIncludeDirectoriesCommand.cxx
@@ -75,7 +75,23 @@ bool cmTargetIncludeDirectoriesCommand
   tgt->InsertInclude(this->Join(content), lfbt, prepend);
   if (system)
     {
-    tgt->AddSystemIncludeDirectories(content);
+    std::string prefix =
+      this->Makefile->GetCurrentSourceDirectory() + std::string("/");
+    std::set<std::string> sdirs;
+    for (std::vector<std::string>::const_iterator it = content.begin();
+      it != content.end(); ++it)
+      {
+      if (cmSystemTools::FileIsFullPath(it->c_str())
+          || cmGeneratorExpression::Find(*it) == 0)
+        {
+        sdirs.insert(*it);
+        }
+      else
+        {
+        sdirs.insert(prefix + *it);
+        }
+      }
+    tgt->AddSystemIncludeDirectories(sdirs);
     }
   return true;
 }
@@ -91,7 +107,7 @@ void cmTargetIncludeDirectoriesCommand
 
   if (system)
     {
-    std::string joined = cmJoin(content, ";");
+    std::string joined = this->Join(content);
     tgt->AppendProperty("INTERFACE_SYSTEM_INCLUDE_DIRECTORIES",
                         joined.c_str());
     }
diff --git a/Tests/IncludeDirectories/SystemIncludeDirectories/CMakeLists.txt b/Tests/IncludeDirectories/SystemIncludeDirectories/CMakeLists.txt
index 0215e93..dcee85e 100644
--- a/Tests/IncludeDirectories/SystemIncludeDirectories/CMakeLists.txt
+++ b/Tests/IncludeDirectories/SystemIncludeDirectories/CMakeLists.txt
@@ -35,6 +35,16 @@ add_library(imported_consumer2 imported_consumer.cpp)
 target_link_libraries(imported_consumer2 imported_consumer)
 target_compile_options(imported_consumer2 PRIVATE -Werror=unused-variable)
 
+# add a target which has a relative system include
+add_library(somelib imported_consumer.cpp)
+target_include_directories(somelib SYSTEM PUBLIC "systemlib_header_only")
+target_compile_options(somelib PRIVATE -Werror=unused-variable)
+
+# add a target which consumes a relative system include
+add_library(otherlib upstream.cpp)
+target_link_libraries(otherlib PUBLIC somelib)
+target_compile_options(somelib PRIVATE -Werror=unused-variable)
+
 macro(do_try_compile error_option)
   set(TC_ARGS
     IFACE_TRY_COMPILE_${error_option}

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

Summary of changes:
 Source/cmTarget.cxx                                |    7 -------
 Source/cmTarget.h                                  |    1 -
 Source/cmTargetIncludeDirectoriesCommand.cxx       |   20 ++++++++++++++++++--
 .../SystemIncludeDirectories/CMakeLists.txt        |   10 ++++++++++
 4 files changed, 28 insertions(+), 10 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list