不少文章会说,你能够用 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