我通过cmake / CMakeLists.txt创建二进制文件myBinary
。
我想在我的二进制文件中“包含”默认选项。
换句话说,即使我只是运行myBinary --option myopt
./myBinary
调用我的二进制文件
我该怎么做?
答案 0 :(得分: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)
您当然可以在脚本中添加其他内容,例如环境变量等。
答案 1 :(得分:0)
如果您可以控制来源并且想要不同的默认行为...更改来源!
这绝不是构建系统问题(CMake 或其他)。