CMake:从BuildSetup.cmake文件中访问变量

时间:2012-02-23 16:29:42

标签: variables configuration cmake 32bit-64bit

我试图根据名为CMAKE_SIZEOF_VOID_P的cmake变量的值来控制程序的流程。

首先,我想通过在cmakelists.txt文件中发出以下命令来查看此变量在多种不同配置下的值:

message(${CMAKE_SIZEOF_VOID_P})

这完美无缺。但是,每当我尝试在BuildSetup.cmake文件上运行上面的命令时,我都没有返回给我的值(它只是抛出一个错误)。

重要的是我能够在BuildSetup.cmake文件中访问此变量的值,因为这将帮助我确定要传递给编译器的标志和其他参数。

我真正需要的是一种确定cmake是运行x64编译还是32位编译的方法,所以如果有任何其他变量(除了这一个,因为它没有在BuildSetup.cmake文件中定义)会给我这个,然后那也适用于我的目的。

非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:2)

在之后调用CMAKE_SIZEOF_VOID_P命令之前,你不能使用PROJECT(),(我认为它是在TRY_COMPILE阶段设置的PROJECT阶段1}}执行)。

由于您使用cmake -C调用BuildSetup.cmake,BuildSetup.cmake的内容将在主CMakeLists.txt中的任何内容之前进行解析。

但是,您可能不应该使用配置文件来确定CMake需要哪些编译器标记,它们确实属于PROJECT()命令后某处的CMakeLists.txt。