2015-05-07 31 views
5

La mia domanda è in qualche modo simile a questo SO ma non uguale.CMake: aggiunta di arugmenti della riga di comando al progetto

Ho creato un programma di HelloWorld con il seguente:

add_executable(HelloWorld ${SRC}) 

Quando ho generare un file di progetto (ad esempio un file Studio .sln visiva, o un XCode .xcodeproj file). Voglio colpire il pulsante di esecuzione e passare alcuni argomenti della riga di comando per HelloWorld quando si esegue il programma, come il seguente:

./HelloWorld --gtest_filter=Test_Cases1* 

vedere anche questo SO per come questo è fatto è Visual Studio.

È possibile farlo nel file CMakeList? Se no, perché?

risposta

4

CMake non dispone di supporto integrato per questo. Il motivo è che le impostazioni della scheda Debugging delle proprietà di Visual Studio Project non sono memorizzate nel file di progetto (.vc[x]proj), ma in un file .user specifico per utente e macchina e CMake non le genera.

È possibile codificarlo da soli in CMake (l'ho fatto per il nostro framework al lavoro). Il file è solo XML, quindi puoi pre-compilare in base alle tue esigenze. La sua struttura è abbastanza facile da capire. Gli argomenti della riga di comando per il programma in fase di debug sono memorizzati nell'attributo CommandArguments all'interno di un elemento XML <DebugSettings> (nidificato in <Configurations><Configuration>), ad esempio.

0

Non un trucco di CMake. È possibile effettuare questa operazione per impostare il valore predefinito args per le build di debug:

int main(int argc,char* argv[]) 
{ const char* command = argv[1]; 
    if(argc < 2) 
    {    
#ifdef _DEBUG 
     command="hello"; 
#else 
     Usage(); 
     return 1; 
#endif 
    } 

[ process command arg... ] 
Problemi correlati