使特定于Unix的CMake过程跨平台
Making a Unix-specific CMake procedure cross-platform
我已经写了一个小的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
可能很有用。
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 递归函数计算序列中的平方和(并输出过程)
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用CMake创建QML插件
- cmake如何在fedora工作站中找到boost静态库包
- 使用CMake检测支持的C++标准
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 如何使用CMake编译.proto文件来生成.grpcp.pb.cc和.grpc.pb.h文件
- cmake在我的项目中所需的所有静态库都不成功
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- 无法链接 CMake 中的本地库
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- 如何在Ubuntu中使用cmake设置qt4
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- 为什么 cmake 许可证<>样式不包括?
- cmake在构建过程中使用另一个工具检测标志
- 使特定于Unix的CMake过程跨平台
- 如何使用CMAKE在项目构建过程中构建SDL2
- CMAKE on (tortoisesvn) SVN project::配置过程中出现错误,项目文件可能无效