Недавно я наткнулся на следующую замечательную функцию cmake:
https://cmake.org/cmake/help/latest/variable/CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT.html
Сохраните следующий фрагмент как CMakeLists.txt, запустите mkdir build; cd build
:
cmake_minimum_required(VERSION 3.12)
message(STATUS "CMID: ${CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT}")
project( test )
При выполнении этого фрагмента не выводит истинную переменную:
➜ build /usr/bin/rm -rf *; cmake ../ | grep CMID
-- CMID:
Теперь, если вы измените этот фрагмент:
cmake_minimum_required(VERSION 3.12)
project( test )
message(STATUS "CMID: ${CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT}")
Выполнение дает результат, который я ожидаю из документации:
➜ build /usr/bin/rm -rf *; cmake ../ | grep CMID
-- CMID: 1
Поэтому мне интересно, как относительная позиция команды project( ... )
меняет эту переменную?