2016-02-25 184 views
0

我通過cmake/CMakeLists.txt創建二進制myBinaryCmake將命令行參數添加到二進制文件

我想「包括」我的二進制文件的默認選項。

換句話說,我希望我的二進制與myBinary --option myopt被稱爲甚至當我就跑./myBinary

我怎麼能這樣做?

+2

不是CMake的工作,更改您的程序源代碼,以設置默認值時,參數丟失。 – Youka

+0

我明白了,謝謝。 – DevShark

回答

1

CMake沒有內置的支持你想要你做。

一個解決方案就是像@Youka所說的那樣 - 更改程序的源代碼。

,我有時使用的另一種解決方案是自動生成執行可執行的腳本:

# Create startup script 
MACRO(GEN_START_SCRIPT binName) 
    # Generate content 
    SET(fileContent 
     "#!/bin/bash\n" 
     "\n" 
     "# This startup script is auto generated - do not modify!\n" 
     "\n" 
     "${binName} -a 23 -b 34 -c 976\n" 
     "\n" 
    ) 

    # Write to file 
    SET(fileName ${CMAKE_CURRENT_BINARY_DIR}/${binName}.sh) 
    FILE(WRITE ${fileName} ${fileContent}) 
ENDMACRO() 

然後調用宏定義你的可執行文件後:

ADD_EXECUTABLE(myBinary file1.c file.2) 
GEN_START_SCRIPT(myBinary) 

當然你也可以添加其他東西的腳本,如環境變量等