1

我已经写了一个小的 CMake 模块,好吧,不管做什么。关键是它的作用如下:

  • 当调用适当的 CMake 函数时,将调用具有相对路径scripts/whatever.sh(在项目目录下)的 shell 脚本。
  • 包含 CMake 找到的 C 编译器的 C 程序的 shell 脚本cat'sa 'here-file'(回退到cc
  • 程序被编译、链接和运行,产生一些文本
  • 输出文本保存为 CMake 变量

这在类 Unix 系统上相对健壮,在哪里catbash可用以及路径分隔符何时为/. (我可能忽略了其他假设。)但是 - 我希望它也能在 Windows 和其他系统上工作。我该怎么做呢?

笔记:

4

1 回答 1

1

您可以使用 CMake 脚本来实现跨平台。许多事情可以直接在其中执行CMakeLists.txt并包含其中的脚本:

  • CMake中的“Here in document”支持不是最好的,但是将小程序的文本存储到CMake变量中并不是很困难。

  • execute_process能够从 CMake 脚本运行外部程序并将该程序的输出存储在 CMake 变量中。此外,try_compile或者try_run在某些情况下可能有用。

于 2018-06-23T20:26:46.257 回答