711b63f7e0
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.
41 lines
875 B
Plaintext
41 lines
875 B
Plaintext
CMake Warning \(dev\) in CMakeLists.txt:
|
|
Policy CMP0019 is not set: Do not re-expand variables in include and link
|
|
information. Run "cmake --help-policy CMP0019" for policy details. Use
|
|
the cmake_policy command to set the policy and suppress this warning.
|
|
|
|
The following variable evaluations were encountered:
|
|
|
|
Evaluated directory INCLUDE_DIRECTORIES
|
|
|
|
/usr/include/\${VAR_INCLUDE};/usr/include/normal
|
|
|
|
as
|
|
|
|
/usr/include/VAL_INCLUDE;/usr/include/normal
|
|
|
|
Evaluated target some_target INCLUDE_DIRECTORIES
|
|
|
|
/usr/include/\${VAR_INCLUDE};/usr/include/normal
|
|
|
|
as
|
|
|
|
/usr/include/VAL_INCLUDE;/usr/include/normal
|
|
|
|
Evaluated link directory
|
|
|
|
/usr/lib/\${VAR_LINK_DIRS}
|
|
|
|
as
|
|
|
|
/usr/lib/VAL_LINK_DIRS
|
|
|
|
Evaluated link library
|
|
|
|
\${VAR_LINK_LIBS}
|
|
|
|
as
|
|
|
|
VAL_LINK_LIBS
|
|
|
|
This warning is for project developers. Use -Wno-dev to suppress it.$
|