【问题标题】:Making a Unix-specific CMake procedure cross-platform使特定于 Unix 的 CMake 过程跨平台
【发布时间】:2018-06-23 18:55:08
【问题描述】:

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

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

这在类 Unix 系统上相对稳健,其中catbash 可用并且路径分隔符为/。 (我可能忽略了其他假设。)但是 - 我希望它也能在 Windows 和其他系统上工作。我该怎么做?

注意事项:

【问题讨论】:

    标签: c++ cmake cross-platform portability cmake-modules


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-11
      • 1970-01-01
      • 2017-08-03
      • 2020-06-22
      • 2012-04-18
      相关资源
      最近更新 更多