2015-05-07 87 views
5

我的問題有點類似於這個SO,但不一樣。CMake:向項目中添加命令行參數

我創建了一個HelloWorld程序有以下:

add_executable(HelloWorld ${SRC}) 

當我生成一個項目文件(例如Visual Studio的.sln文件,或的XCode .xcodeproj文件)。我想點擊運行按鈕和一些命令行參數傳遞到HelloWorld當執行程序,如下所示:

./HelloWorld --gtest_filter=Test_Cases1* 

另請參閱該SO如何做到這一點是Visual Studio中。

CMakeList文件中可以這樣做嗎?如果不是,爲什麼?

回答

4

CMake沒有內置的支持。原因是Visual Studio項目屬性的Debugging選項卡中的設置未存儲在項目文件(.vc[x]proj)中,而是存儲在特定於用戶和機器的.user文件中,並且CMake不生成這些文件。

你可以自己在CMake中編寫代碼(我爲我們的框架做了這個工作)。該文件只是XML,所以您可以根據自己的需要預先填充它。它的結構很容易理解。例如,正在調試的程序的命令行參數存儲在<DebugSettings> XML元素(嵌套在<Configurations><Configuration>中)內的CommandArguments屬性中。

0

不是CMake技巧。你可以這樣做來設置調試版本的默認args

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