2016-02-25 177 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) 

当然你也可以添加其他东西的脚本,如环境变量等