J'ai un projet qui doit être installé à ${CMAKE_INSTALL_PREFIX}
(fourni par l'utilisateur). Je joins un sous-projet avec add_subdirectory(subproject)
. Ce sous-projet installe le contenu à ${CMAKE_INSTALL_PREFIX}
, mais je préfère l'installer à ${CMAKE_INSTALL_PREFIX}/subproject
. Comment puis-je faire cela sans toucher au sous-projet?Modifier CMAKE_INSTALL_PREFIX pour les sous-répertoires
J'ai essayé: Mais il n'a eu aucun effet:
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})
J'ai aussi essayé ceci:
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"
)
ne suis pas sûr de Windows, mais sur Linux installer à la fois principal et sous-projet dans le même répertoire ** ** (en utilisant même * CMAKE_INSTALL_PREFIX *) est OK. De plus, l'installation du sous-projet dans le sous-répertoire est quelque peu inhabituelle pour l'utilisateur. Vous pouvez penser à * CMAKE_INSTALL_PREFIX * en tant que répertoire par projet, mais ** par-environnement ** un. Un environnement peut contenir de nombreux projets installés, qui interfèrent les uns avec les autres. Encore une fois, c'est à propos de Linux. En ce qui concerne vos tentatives, l'utilisation de 'ExternalProject' devrait fonctionner. – Tsyvarev