我有一個項目,應該安裝在${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