不少文章會說,你能夠用 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