2015-08-15 10 views
8

Sto costruendo una libreria multipiattaforma con cmake che ha alcune dipendenze (piuttosto comuni), ad es. PCRE. I deps sono disponibili tramite i soliti gestori di pacchetti (APT su Ubuntu/Debian, Homebrew su OSX) e anche tramite NuGet su Windows. Nel mio CMakeLists.txt, utilizzo la versione "modulo" di find_pacakge per individuare questi deps e impostare i giusti flag di inclusione/libreria.a find_package NuGet-aware per cmake

This question fornisce un modo di integrare CMake + NuGet, ma suggerisce anche che CMake e NuGet non sono suscettibili di bel gioco insieme, e io non riesco a trovare un modo per ottenere find_package per trovare le dipendenze installate. C'è un modo per far sì che cmake legga i file di configurazione di nuget (per esempio, pkg_check_modules funziona su sistemi con pkg-config) e compilare le variabili cmake appropriate da lì? O devo girare a mano la mia soluzione in FindPCRE.cmake?

+0

Avete provato ad aggiungere i percorsi di installazione Nuget a CMAKE_PREFIX_PATH? – usr1234567

+0

Non sono sicuro che CMAKE_PREFIX_PATH sarebbe sufficiente, perché sembra che la gerarchia della directory sia un po '... pazzesca. – Atifm

+0

Sì, è peloso. Ci ho provato, ma non ho trovato gli incantesimi magici. – Ben

risposta

4

Per risolvere il problema (un po 'sporca), sto contando sullo strumento nuget cli essere presenti e utilizzando

find_program(NUGET nuget) 
if(NOT NUGET) 
    message(FATAL "Cannot find nuget command line tool.\nInstall it with e.g. choco install nuget.commandline") 
else() 
    execute_process(COMMAND ${NUGET} install foolib) 
endif() 
Problemi correlati