如何在我的根CMakeLists.txt文件中設置CMAKE_INSTALL_PREFIX?從CMakeLists.txt文件設置CMAKE_INSTALL_PREFIX
我一直在做
cmake_minimum_required(VERSION 2.8)
project(MyProject)
# Set default install prefix
set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR})
與希望,通過安裝將在源代碼樹註定文件夾。即,
install(TARGETS my_exe DESTINATION bin/)
將安裝到${CMAKE_SOURCE_DIR}/bin/
。相反,它一直試圖寫入/usr/local/bin
(Ubuntu 14.04的默認設置)。
我嘗試了this question的答案,但是當我檢查CMakeCache.txt時,仍然將標準usr/local/
作爲我的CMAKE_INSTALL_PREFIX。
唯一的工作解決我是做
install(TARGETS my_exe DESTINATION "${CMAKE_SOURCE_DIR}/bin/")
但這然後刪除用戶來指定要安裝的bin目錄的能力。
tl; dr我想make install
默認自動安裝到${CMAKE_SOURCE_DIR}
,而不是/usr/local/
。
CMAKE_INSTALL_PREFIX的關鍵是使用FORCE。 –
您不希望使用FORCE將其放入緩存的原因是因爲這消除了傳入的任何命令行選項。要求CMake使用默認值的建議是一個非常健壯的解決方案,不會混淆用戶如果他們嘗試使用命令行覆蓋它。 – KymikoLoco