2014-09-15 11 views
13

Sono in una situazione in cui non dovrei disturbare il CMakeLists.txt esistente ma dovrei comunque aggiungere qualche directory di sistema g ++ alla mia build. In altre parole, ho bisogno di -isystem /path/to/my/include aggiunto ai miei flag del compilatore ma quando si chiama qualcosa come cmake ... Forse qualcosa come cmake .. -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS -isystem /path/to/my/include"? C'è un modo per fare questo?Aggiunta di include directory a cmake quando la chiama dalla riga di comando

+0

quindi si desidera aggiungere flag di compilazione e quindi rimuoverli? O vuoi semplicemente aggiungerli? –

+0

Voglio solo aggiungerli senza toccare CMakeLists. –

+0

Nota che il riferimento variabile '$ CMAKE_CXX_FLAGS', sarebbe fare riferimento a una variabile di shell. Probabilmente non è quello che vorresti. In realtà, dovrebbe essere inutile sulla linea di comando. –

risposta

10

Ho lo stesso problema. Ho trovato 2 soluzioni:

  1. quello proposto da sakra nella risposta precedente, i. e. regolazione variabile d'ambiente con bandiere C++:

    export CXXFLAGS=-isystem\ /path/to/my/include 
    cmake <path to my sources> 
    

    O la stessa cosa, ma variabile d'ambiente sono impostate solo per questo cmake chiamata:

    CXXFLAGS=-isystem\ /path/to/my/include cmake <path to my sources> 
    

    IMPORTANTE: si must pulita la tua directory di compilazione (es. pulisci la cache di cmake) prima di lanciare uno di questi moduli. Senza pulire la cache, cmake continuerà a utilizzare la cache CMAKE_CXX_FLAGS della precedente esecuzione.

  2. Direttamente impostazione CMAKE_CXX_FLAGS nella stringa cmake:

    cmake -DCMAKE_CXX_FLAGS=-isystem\ /path/to/my/include <path to my sources> 
    

Credo che può essere fatto da altro modo 'nativo', ma non ho trovato variabile responsabile per percorsi di intestazioni a cmake .

10

Prima di richiamare CMake, è possibile impostare la variabile di ambiente CXXFLAGS.

$ export CXXFLAGS=-isystem\ /path/to/my/include 
$ cmake .. 

CMake sarà il inizializzare la variabile di cache CMAKE_CXX_FLAGS con le bandiere della variabile d'ambiente. La variabile influenza tutti i tipi di build.

+2

o senza 'export' forma:' CXXFLAGS = -isystem \/path/to/mio/include cmake ..' – avtomaton

Problemi correlati