2013-05-22 23 views
10

Questo è quello che ho, quando ho iniziato a generazione:CMake generare progetto Xcode da fonti esistenti

iMac:IXCSoftswitch alex$ /usr/bin/cmake -G Xcode . 
-- CMAKE_SOURCE_DIR = /Users/alex/Desktop/ixc-v/IXCSoftswitch, CMAKE_BINARY_DIR = /Users/alex/Desktop/ixc-v/IXCSoftswitch 
CMake Error at CMakeLists.txt:25 (MESSAGE): 
    Binary and source directory cannot be the same 


-- Configuring incomplete, errors occurred! 

come posso risolvere il problema? Sono nuovo in cmake, i campioni sono apprezzati.

risposta

39

CMake viene utilizzato per produrre build out-of-source.

L'idea è che non si mischiano i file creati durante la compilazione con i file di origine originali. In pratica, in genere si esegue CMake da una nuova directory di compilazione vuota e si fornisce il percorso alla directory di origine come argomento.

cd IXCSoftswitch 
mkdir build 
cd build 
cmake -G Xcode .. 

Tutti i file generati da CMake (che potrebbe essere un sacco ) sarà ora andare in build sottodirectory, mentre la vostra directory di origine rimane pulita di manufatti di compilazione.

Il concetto di build out-source può sembrare strano all'inizio, ma in realtà è un modo molto pratico di lavorare una volta che ci si abitua.

+0

sembra che questa sia la soluzione, ma non riesco a trovare il progetto Xcode finale che include tutti i file di origine. puoi modificare la risposta, dove si trova? – user170317

+0

Questo è determinato dal progetto stesso. Suggerirei di controllare la documentazione fornita con il codice sorgente. – ComicSansMS

3

Dalla radice della directory del progetto.

cmake -G Xcode -H. -B_build 

Questo è simile alla risposta sopra. Tuttavia, stai gestendo manualmente la compilazione esterna. -B imposta la directory di costruzione di destinazione (mi capita di preferire _build). Ho provato a cercare -H per ricontrollare, ma non sono riuscito a trovarlo. Se la memoria serve, specifica dove vive il tuo CMakeList.txt.

Mantengo questo comando in un file .sh/.bat (a seconda). In questo modo, posso mantenere i miei script che costruiscono il mio progetto nella radice in cui una nuova persona può facilmente trovarli.

Problemi correlati