我已经写了一个小的CMake模块,嗯,为了什么并不重要。关键是它的作用如下:
- 调用相应的 CMake 函数时,将调用具有相对路径
scripts/whatever.sh
(在项目目录下(的 shell 脚本。 - shell脚本
cat
是一个"here-file",其中包含CMake找到的C编译器的C程序(回退到cc
( - 该程序被编译,链接和运行,产生一些文本
- 输出文本另存为 CMake 变量
这在类Unix系统上相对健壮,其中cat
和bash
可用,并且路径分隔符/
。(可能还有其他我忽略的假设。但是 - 我希望这也适用于 Windows 和其他系统。我该怎么做?
笔记:
- 如果相关:外壳脚本和 CMake 模块。
- 如果有帮助,我可以使用C++而不是 C。
您可以使用 CMake 脚本进行跨平台。许多事情可以直接在CMakeLists.txt
中执行,并且其中包含脚本:
-
CMake 中的"此处文档"支持不是最好的,但将小程序的文本存储到 CMake 变量中并不是很困难。
-
execute_process
能够从 CMake 脚本运行外部程序,并将该程序的输出存储在 CMake 变量中。此外,在某些情况下,try_compile
或try_run
可能很有用。