我想将一些选项传递给编译器.该选项必须在编译时计算 - 每次调用'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.
我想知道如何在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命令中使用结果(存储在变量中)?