如何在我的根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