Come posso aggiungere progetti esterni in CMake quando il repository del progetto non è la radice della libreria che voglio usare, ma in realtà contiene due directory che sono le directory radice dei repository che voglio usare nel mio progetto?Come gestire CMake ExternalProject quando il repository (googletest) ha più librerie?
sto lavorando per realizzare un progetto CMake un'infrastruttura che utilizza Google prova e Mock per il test, tuttavia quando provo a scaricare il test repo Google (https://github.com/google/googletest) con ExternalProject_Add
, si lamenta il build che non riesce a trovare la fonte del progetto. Beh, questo è perché Google ha fuso googletest e googlemock in un singolo progetto, tranne che ora sono due progetti.
Alcuni di struttura dei file del pronti contro termine:
googletest-master/
├──[...no CMakeFiles.txt exists here...]
├──googletest/
│ ├──src/
│ └──CMakeFiles.txt
└──googlemock/
├──src/
└──CMakeFiles.txt
Quando effettuare le seguenti ...
ExternalProject_Add(
gtest
GIT_REPOSITORY https://github.com/google/googletest.git
TIMEOUT 10
INSTALL_COMMAND ""
LOG_DOWNLOAD ON
LOG_CONFIGURE ON
LOG_BUILD ON
PREFIX "googletest-master"
)
... scarica i pronti contro termine effettivo per googletest-master/src/gtest
perché sto anteponendo il repo con "googletest-master" per tenerlo fuori dal mio codice sorgente principale e presuppone che sto scaricando un progetto che è solo sorgente e che la fonte è nella directory root.
Così mi piacerebbe realizzare due cose:
- Scarica il repo nella directory googletest-master, esattamente come sarebbe se ho clonato il repo là, o scaricato lo zip off GitHub ed estratto esso.
- Costruire e includono sia googletest e googlemock nel mio progetto CMake
ho finito per fare un po 'di personalizzazione di alcuni dei relativi percorsi per soddisfare le mie esigenze/preferenze un po 'di più - questa soluzione raw ha portato ad alcune strutture di directory apparentemente inutilmente complesse (googletest-master/src/googletest/src). Ma questo funziona ed è esattamente ciò di cui avevo bisogno. – AberrantWolf