diff options
author | Brad King <brad.king@kitware.com> | 2008-05-14 15:54:52 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2008-05-14 15:54:52 (GMT) |
commit | a1bb7e90ef878c41f9725f0f7000b027f8dcd14a (patch) | |
tree | b4a43d18ca91d43c657f1314b514d6aee45bbdb8 /Source/cmMakefile.cxx | |
parent | 7652a8a1e5cd7095afee45c8212d4c23e5fef599 (diff) | |
download | CMake-a1bb7e90ef878c41f9725f0f7000b027f8dcd14a.zip CMake-a1bb7e90ef878c41f9725f0f7000b027f8dcd14a.tar.gz CMake-a1bb7e90ef878c41f9725f0f7000b027f8dcd14a.tar.bz2 |
ENH: Allow users to specify macro-like #include line transforms for dependency scanning.
- Define IMPLICIT_DEPENDS_INCLUDE_TRANSFORM property on targets and directories.
- Make the directory version inherited.
- See issue #6648.
Diffstat (limited to 'Source/cmMakefile.cxx')
-rw-r--r-- | Source/cmMakefile.cxx | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index bc60955..4c871ef 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -1294,6 +1294,12 @@ void cmMakefile::InitializeFromParent() // define flags this->DefineFlags = parent->DefineFlags; + // Include transform property. There is no per-config version. + { + const char* prop = "IMPLICIT_DEPENDS_INCLUDE_TRANSFORM"; + this->SetProperty(prop, parent->GetProperty(prop)); + } + // compile definitions property and per-config versions { this->SetProperty("COMPILE_DEFINITIONS", @@ -3209,6 +3215,26 @@ void cmMakefile::DefineProperties(cmake *cm) "in the directory's parent.\n"); cm->DefineProperty + ("IMPLICIT_DEPENDS_INCLUDE_TRANSFORM", cmProperty::DIRECTORY, + "Specify #include line transforms for dependencies in a directory.", + "This property specifies rules to transform macro-like #include lines " + "during implicit dependency scanning of C and C++ source files. " + "The list of rules must be semicolon-separated with each entry of " + "the form \"A_MACRO(%)=value-with-%\" (the % must be literal). " + "During dependency scanning occurrences of A_MACRO(...) on #include " + "lines will be replaced by the value given with the macro argument " + "substituted for '%'. For example, the entry\n" + " MYDIR(%)=<mydir/%>\n" + "will convert lines of the form\n" + " #include MYDIR(myheader.h)\n" + "to\n" + " #include <mydir/myheader.h>\n" + "allowing the dependency to be followed.\n" + "This property applies to sources in all targets within a directory. " + "The property value is initialized in each directory by its value " + "in the directory's parent."); + + cm->DefineProperty ("EXCLUDE_FROM_ALL", cmProperty::DIRECTORY, "Exclude the directory from the all target of its parent.", "A property on a directory that indicates if its targets are excluded " |