相关疑难解决方法(0)

如何在编译时在CMake生成的Makefile中运行命令?

我想将一些选项传递给编译器.该选项必须在编译时计算 - 每次调用'make'时,而不是'cmake',因此execute_process命令不会删除它.(可以?)

例如,将日期传递给g ++编译器,如下所示:

g++ prog.cpp -o prog -DDATETIME="17:09:2009,14:25"
Run Code Online (Sandbox Code Playgroud)

但是在编译时计算DATETIME.

知道如何在CMake中做到这一点吗?

赏金编辑:

最不受欢迎的解决方案将被接受.

请注意,我希望能够在编译时执行任意命令,而不仅仅是'date'.

编辑2:

它必须适用于Linux,Windows(VS),Mingw,Cygwin和OS X.您不能假设Ruby,Perl或Python,因为它们在Windows上是非标准的.你可以假设BOOST,但我想这没用.

目标是强制cmake生成Makefile(在Linux的情况下),当make执行时,将完成工作.

创建自定义*.h文件是可以的,但它必须由make的Makefile(或其他操作系统上的等效文件)启动.*.h的创建不必(也不应该)使用cmake.

build-process cmake pre-compilation

33
推荐指数
2
解决办法
4万
查看次数

CMake:如何在CMakeLists.txt中使用bash命令

我想知道如何在CMakeLists.txt中使用bash命令.我想要的是使用以下方法获取检索到的处理器数量:

export variable=`getconf _NPROCESSORS_ONLN`
Run Code Online (Sandbox Code Playgroud)

并使用以下内容将NB_PROCESSOR设置为变量:

SET (NB_PROCESSOR variable)
Run Code Online (Sandbox Code Playgroud)

所以我的问题是如何在CMakeLists.txt中使用getconf命令以及如何在CMake SET命令中使用结果(存储在变量中)?

bash cmake

22
推荐指数
2
解决办法
2万
查看次数

标签 统计

cmake ×2

bash ×1

build-process ×1

pre-compilation ×1