From b8968b4b3984b425497324c302948a197b2badbd Mon Sep 17 00:00:00 2001 From: Alexey Sokolov Date: Wed, 21 Dec 2016 01:53:41 +0000 Subject: UseSWIG: Automatically scan dependencies of SWIG files for Makefiles Issue: #4147 --- Copyright.txt | 2 ++ Modules/UseSWIG.cmake | 1 + Source/cmDependsC.cxx | 4 ++-- 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 * Alexander Neundorf * Alexander Smorkalov +* Alexey Sokolov * Alex Turbov * Andreas Pakulat * Andreas Schneider @@ -54,6 +55,7 @@ The following individuals and institutions are among the Contributors: * Eran Ifrah * Esben Mose Hansen, Ange Optimization ApS * Geoffrey Viola +* Google Inc * Gregor Jasny * Helio Chissini de Castro * Ilya Lavrenov 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) { -- cgit v0.12