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

相關文章
相關標籤/搜索