2014-06-28 14 views
5

È possibile ottenere CMake per raccogliere tutte le librerie di pacchetti utilizzate durante la compilazione, afferrare in modo ricorsivo le proprie librerie richieste e quindi inserirle tutte in un'unica directory?CMake che distribuisce le librerie richieste

Ad esempio, se la mia applicazione richiede gtk, prenderebbe glib e le sue librerie richieste libiconv, gettext e libffi.

+2

Non credo che CMake ha questo, ma si potrebbe scrivere uno script che cammina in modo ricorsivo attraverso tutte le dipendenze usando 'librerie ldd' e copia scoperto nella directory (e chiamare da cmake) – szx

+1

Concordato, dal punto di vista generale, CMake fornisce gli strumenti per verificare se sono necessarie le librerie necessarie per la compilazione, raccogliere le posizioni delle librerie e ottenere le informazioni su cflags e ldflags necessarie affinché una compilazione di file multipli/directory possa essere completata correttamente. All'interno dei file CMakeLists.txt e altri, è possibile utilizzare i comandi del tipo di script per spostare i dati nelle directory desiderate per creare un layout più efficiente. –

+0

Non sono sicuro del motivo per cui questo non è stato votato .. domanda interessante. :) Quello che vuoi non fa parte della funzionalità di base di CMake (AFAIK) ma puoi scrivere uno script che faccia questo. Perché non generare semplicemente un pacchetto nativo invece di memorizzare le dipendenze? – wojciii

risposta

2

È possibile utilizzare il modulo CMake GetPrerequesites. Vedere here per ulteriori informazioni

+0

Ho usato il metodo ldd e i686-w64-mingw32-objdump, ma questo modulo rende la vita un po 'più semplice e funziona su tutte le piattaforme. Grazie per il suggerimento. –

Problemi correlati