我的UNIX Makefile如下:
param=0
run:
./foo -r "fun($(param))"
Run Code Online (Sandbox Code Playgroud)
因此,如果我做到了make run,我就会争取./foo - r "fun(0)"和make run param=10争取./foo -r "fun(10)"。
现在,我想使用cmake生成类似的Makefile。
add_custom_target(
run
./foo -r "\"fun($(param))\""
)
Run Code Online (Sandbox Code Playgroud)
如何param在cmake配置文件中设置默认值?
CMake中的概念有些不同。您可以定义带有默认值和文档字符串等的“缓存变量”(基本上是在同一构建目录中为后续构建所记住的变量,并且可由用户自定义)。然后,可以通过将-D name:type=value选项传递给cmake或使用更友好的前端之一(例如ccmakeCMake的curses UI)来更改它们。
基于您的问题的示例:
SET(参数0 CACHE STRING“测试变量默认为'0'”)
#...
add_custom_target(run ./foo -r“ \” fun($ {param})\“”“)
您将在CMake的详尽文档中找到更多详细信息。
PS。这是针对CMake内部的变量,尤其是CMakeLists.txt本身的变量;据我所知,更改该值的可能性不会保留到生成的Makefile中。我不确定一开始是否有可能,因为它可能与CMake支持的所有目标(例如Visual Studio项目等)不兼容。无论如何,CMake似乎都不是为生成独立于CMake使用的构建文件而设计的。
| 归档时间: |
|
| 查看次数: |
4885 次 |
| 最近记录: |