diff options
author | Brad King <brad.king@kitware.com> | 2012-12-06 14:59:18 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2012-12-07 14:51:19 (GMT) |
commit | 711b63f7e095992d6ab84063af076d23a916b1f3 (patch) | |
tree | 416a696ab99e6cf27ec76607c73704e43049b44d /Source/cmPolicies.h | |
parent | d5ac791366595be307896e9894c66815c1e1eb2f (diff) | |
download | CMake-711b63f7e095992d6ab84063af076d23a916b1f3.zip CMake-711b63f7e095992d6ab84063af076d23a916b1f3.tar.gz CMake-711b63f7e095992d6ab84063af076d23a916b1f3.tar.bz2 |
Add policy CMP0019 to skip include/link variable re-expansion
Historically CMake has always expanded ${} variable references in the
values given to include_directories(), link_directories(), and
link_libraries(). This has been unnecessary since general ${}
evaluation syntax was added to the language a LONG time ago, but has
remained for compatibility with VERY early CMake versions.
For a long time the re-expansion was a lightweight operation because it
was only processed once at the directory level and the fast-path of
cmMakefile::ExpandVariablesInString was usually taken because values did
not have any '$' in them. Then commit d899eb71 (Call
ExpandVariablesInString for each target's INCLUDE_DIRECTORIES,
2012-02-22) made the operation a bit heavier because the expansion is
now needed on a per-target basis. In the future we will support
generator expressions in INCLUDE_DIRECTORIES with $<> syntax, so the
fast-path in cmMakefile::ExpandVariablesInString will no longer be taken
and re-expansion will be very expensive.
Add policy CMP0019 to skip the re-expansion altogether in NEW behavior.
In OLD behavior perform the expansion but improve the fast-path
heuristic to match ${} but not $<>. If the policy is not set then warn
if expansion actually does anything. We expect this to be encountered
very rarely in practice.
Diffstat (limited to 'Source/cmPolicies.h')
-rw-r--r-- | Source/cmPolicies.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/Source/cmPolicies.h b/Source/cmPolicies.h index 6932565..d7d945c 100644 --- a/Source/cmPolicies.h +++ b/Source/cmPolicies.h @@ -68,6 +68,7 @@ public: CMP0018, ///< Ignore language flags for shared libs, and adhere to /// POSITION_INDEPENDENT_CODE property and *_COMPILE_OPTIONS_PI{E,C} /// instead. + CMP0019, ///< No variable re-expansion in include and link info /** \brief Always the last entry. * |