2015-05-07 11 views
5

Meine Frage ist dieser SO etwas ähnlich, aber nicht dasselbe.CMake: Hinzufügen von Befehlszeilenarguments zum Projekt

Ich habe ein HelloWorld Programm mit dem folgenden:

add_executable(HelloWorld ${SRC}) 

Wenn ich eine Projektdatei (zum Beispiel einer Visual Studio SLN-Datei oder ein XCode Xcodeproj-Datei) erzeugen. Ich mag den Lauf Knopf drücken und einige Kommandozeilenargumente zu HelloWorld passieren, wenn es in das Programm ausführen, wie folgt aus:

./HelloWorld --gtest_filter=Test_Cases1* 

Auch diese SO für sehen, wie das ist, Visual Studio gemacht.

Ist es möglich, dies in CMakeList-Datei zu tun? Wenn nicht, warum?

Antwort

4

CMake hat keine integrierte Unterstützung dafür. Der Grund dafür ist, dass die Einstellungen auf der Registerkarte Debugging der Visual Studio-Projekteigenschaften nicht in der Projektdatei (.vc[x]proj) gespeichert sind, sondern in einer benutzer- und maschinenspezifischen .user Datei, und CMake generiert diese nicht.

Sie können es selbst in CMake (ich tat das für unser Framework bei der Arbeit) Code. Die Datei besteht nur aus XML, sodass Sie sie entsprechend Ihren Anforderungen vorbelegen können. Seine Struktur ist ziemlich einfach zu verstehen. Die Befehlszeilenargumente für das zu debuggende Programm werden beispielsweise im CommandArguments-Attribut in einem <DebugSettings> XML-Element (verschachtelt in <Configurations><Configuration>) gespeichert.

0

Kein CMake-Trick. Sie können dies tun, um den Standard args für Debug-Builds festzulegen:

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... ] 
Verwandte Themen