我有一个项目,应该安装在${CMAKE_INSTALL_PREFIX}
(由用户提供)。修改子目录CMAKE_INSTALL_PREFIX
我包括一个子项目add_subdirectory(subproject)
。该子项目将内容安装到${CMAKE_INSTALL_PREFIX}
,但我宁愿将其安装到${CMAKE_INSTALL_PREFIX}/subproject
。我怎样才能不触及子项目?
我已经试过这样:但它没有任何效果:
set(_INSTALL_PREFIX_BACKUP ${CMAKE_INSTALL_PREFIX})
set(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}/subproject)
add_subdirectory(subproject)
set(CMAKE_INSTALL_PREFIX ${_INSTALL_PREFIX_BACKUP})
我也试过这样:
include(ExternalProject)
ExternalProject_Add(subproject
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/subproject
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}/subproject"
INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/subproject"
)
不知道有关Windows,但在Linux上安装主,子项目进入**同一目录**(使用相同* CMAKE_INSTALL_PREFIX *)是可以的。而且,将子项目安装到子目录中对于用户而言是不寻常的。您可以将* CMAKE_INSTALL_PREFIX *视为不是每个项目目录,而是**每个环境**。一个环境可能包含许多已安装的项目,这些项目会相互干扰。这又是关于Linux的。至于你的尝试,使用'ExternalProject'应该工作。 – Tsyvarev