• Brad King's avatar
    Add policy CMP0019 to skip include/link variable re-expansion · 711b63f7
    Brad King authored
    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.
    711b63f7
Name
Last commit
Last update
..
CMP0019 Loading commit data...
GeneratorExpression Loading commit data...
Languages Loading commit data...
ObjectLibrary Loading commit data...
SolutionGlobalSections Loading commit data...
TargetPropertyGeneratorExpressions Loading commit data...
build_command Loading commit data...
find_package Loading commit data...
include Loading commit data...
include_directories Loading commit data...
include_external_msproject Loading commit data...
list Loading commit data...
load_command Loading commit data...
CMakeLists.txt Loading commit data...
RunCMake.cmake Loading commit data...