summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexey Sokolov <sokolov@google.com>2016-12-21 01:53:41 (GMT)
committerBrad King <brad.king@kitware.com>2017-01-10 18:05:59 (GMT)
commitb8968b4b3984b425497324c302948a197b2badbd (patch)
treeb023c600310296f87523e3b715d4d8f8823913bc
parent4918cd8c98938ab245d7fea74ba6e20f3ec8ef8b (diff)
downloadCMake-b8968b4b3984b425497324c302948a197b2badbd.zip
CMake-b8968b4b3984b425497324c302948a197b2badbd.tar.gz
CMake-b8968b4b3984b425497324c302948a197b2badbd.tar.bz2
UseSWIG: Automatically scan dependencies of SWIG files for Makefiles
Issue: #4147
-rw-r--r--Copyright.txt2
-rw-r--r--Modules/UseSWIG.cmake1
-rw-r--r--Source/cmDependsC.cxx4
3 files changed, 5 insertions, 2 deletions
diff --git a/Copyright.txt b/Copyright.txt
index aa91102..daaa1d1 100644
--- a/Copyright.txt
+++ b/Copyright.txt
@@ -37,6 +37,7 @@ The following individuals and institutions are among the Contributors:
* Aleksey Avdeev <solo@altlinux.ru>
* Alexander Neundorf <neundorf@kde.org>
* Alexander Smorkalov <alexander.smorkalov@itseez.com>
+* Alexey Sokolov <sokolov@google.com>
* Alex Turbov <i.zaufi@gmail.com>
* Andreas Pakulat <apaku@gmx.de>
* Andreas Schneider <asn@cryptomilk.org>
@@ -54,6 +55,7 @@ The following individuals and institutions are among the Contributors:
* Eran Ifrah <eran.ifrah@gmail.com>
* Esben Mose Hansen, Ange Optimization ApS
* Geoffrey Viola <geoffrey.viola@asirobots.com>
+* Google Inc
* Gregor Jasny
* Helio Chissini de Castro <helio@kde.org>
* Ilya Lavrenov <ilya.lavrenov@itseez.com>
diff --git a/Modules/UseSWIG.cmake b/Modules/UseSWIG.cmake
index 651f9f1..ffb72a0 100644
--- a/Modules/UseSWIG.cmake
+++ b/Modules/UseSWIG.cmake
@@ -212,6 +212,7 @@ macro(SWIG_ADD_SOURCE_TO_MODULE name outfiles infile)
"${swig_source_file_fullname}"
MAIN_DEPENDENCY "${swig_source_file_fullname}"
DEPENDS ${SWIG_MODULE_${name}_EXTRA_DEPS}
+ IMPLICIT_DEPENDS CXX "${swig_source_file_fullname}"
COMMENT "Swig source")
set_source_files_properties("${swig_generated_file_fullname}" ${swig_extra_generated_files}
PROPERTIES GENERATED 1)
diff --git a/Source/cmDependsC.cxx b/Source/cmDependsC.cxx
index e6000db..9d4b9cc 100644
--- a/Source/cmDependsC.cxx
+++ b/Source/cmDependsC.cxx
@@ -12,7 +12,7 @@
#include "cmSystemTools.h"
#define INCLUDE_REGEX_LINE \
- "^[ \t]*#[ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])"
+ "^[ \t]*[#%][ \t]*(include|import)[ \t]*[<\"]([^\">]+)([\">])"
#define INCLUDE_REGEX_LINE_MARKER "#IncludeRegexLine: "
#define INCLUDE_REGEX_SCAN_MARKER "#IncludeRegexScan: "
@@ -420,7 +420,7 @@ void cmDependsC::SetupTransforms()
if (!this->TransformRules.empty()) {
// Construct the regular expression to match lines to be
// transformed.
- std::string xform = "^([ \t]*#[ \t]*(include|import)[ \t]*)(";
+ std::string xform = "^([ \t]*[#%][ \t]*(include|import)[ \t]*)(";
const char* sep = "";
for (TransformRulesType::const_iterator tri = this->TransformRules.begin();
tri != this->TransformRules.end(); ++tri) {