find_path() after mark_as_advanced()
This issue was created automatically from an original Mantis Issue. Further discussion may take place here.
It not clear to me if the following is a bug in CMake or just an invalid use: (I tested this for CMake 2.8.11, 3.0.1 and 3.2.1.)
set(my_path "anyvalue")
find_path(my_path NAMES CMakeLists.txt HINTS ${CMAKE_CURRENT_LIST_DIR})
mark_as_advanced(my_path)
find_path(my_path NAMES CMakeLists.txt HINTS ${CMAKE_CURRENT_LIST_DIR})
message("my_path: '${my_path}'") # my_path is empty here!
1st FIND_PATH()
uses only the non-cached variable and does not create the cache-variable
- this is not described in the docs
- the docs should also describe when and how the cached-variable and the non-cached variable is read and written
- same goes for all
find_*
-commands
MARK_AS_ADVANCED()
for an undefined cache-variable creates the cache-var with and empty value and type 'UNDEFINED'
- Is this a bug(?)
- It could use the value of the non-cached variable (if there is one)
- or it should not set the VALUE-property of the cached variable
- or set the type to 'STRING'
The 2nd FIND_PATH()
does not use the non-cached variable as in the first call, but clears the variable without search for the path
- For me this looks like a bug!