Per alcuni test interni, desidero che il prefisso di installazione sia impostato su una sottodirectory della directory di compilazione, a meno che non venga sovrascritto esplicitamente dall'utente. So che l'utente può specificare un prefisso di installazione da:Imposta automaticamente il prefisso di installazione sul percorso personalizzato se non specificato esplicitamente nella riga di comando
$ cmake -DCMAKE_INSTALL_PREFIX=/foo/bar ..
Ma se l'utente fa non specificare questo, si dovrebbe impostare, ad esempio, ${PWD}/installed
.
La variabile CMAKE_INSTALL_PREFIX
è già impostata su /usr/local
, quindi non posso semplicemente controllare se è disinserita/vuota prima di impostarla.
mia soluzione attuale è quella di aggiungere un interruttore personalizzato che l'utente deve richiamare per specificare che la variabile CMAKE_INSTALL_PREFIX
viene rispettata:
option(ENABLE_INSTALL_PREFIX "Install build targets to system (path given by '-DCMAKE_INSTALL_PREFIX' or '${CMAKE_INSTALL_PREFIX}' if not specified)." OFF)
if (ENABLE_INSTALL_PREFIX)
set (CMAKE_INSTALL_PREFIX installed CACHE PATH "Installation root")
else()
set (CMAKE_INSTALL_PREFIX installed CACHE PATH "Installation root" FORCE)
endif()
Le mie domande sono:
(a) non ci sono problemi con quanto sopra, oltre il fastidio della bandiera in più che deve essere passato a CMake per ottenere un effetto CMAKE_INSTALL_PREFIX
?
(b) Esiste un modo migliore, più pulito, più robusto, più idiomatico e/o meno fastidioso per ottenere quanto sopra?
Grazie.
Perfetto! Grazie! – Jeet
Vorrei aver trovato questo post pochi giorni fa mentre stavo tirando i capelli cercando di ottenere più dipendenze ExternalProject per fare la cosa giusta. Grazie! – KarateSnowMachine