CMAKE_INSTALL_PREFIX如何设置默认值,而且保留从命令行覆盖的能力?

不少文章会说,你能够用 set(CACHE),但实际上由于CMAKE_INSTALL_PREFIX总会有一个默认值,因此根本不会生效;命令行

若是你用 set(CACHE FORCE),那么将失去从命令行覆盖设置的能力。code

正确的方式应该是:变量

if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
    set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/MyInstallPath CACHE PATH "My default install prefix" FORCE)
endif()

CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT:这是一个CMake的内部变量,不须要你本身维护。技巧

(虽然是个小技巧,但找到答案也花了我一些时间。若是对你有帮助,那就点个赞吧 :) )di

相关文章
相关标签/搜索