我试图根据名为CMAKE_SIZEOF_VOID_P
的cmake变量的值来控制程序的流程。
首先,我想通过在cmakelists.txt文件中发出以下命令来查看此变量在多种不同配置下的值:
message(${CMAKE_SIZEOF_VOID_P})
这完美无缺。但是,每当我尝试在BuildSetup.cmake文件上运行上面的命令时,我都没有返回给我的值(它只是抛出一个错误)。
重要的是我能够在BuildSetup.cmake文件中访问此变量的值,因为这将帮助我确定要传递给编译器的标志和其他参数。
我真正需要的是一种确定cmake是运行x64编译还是32位编译的方法,所以如果有任何其他变量(除了这一个,因为它没有在BuildSetup.cmake文件中定义)会给我这个,然后那也适用于我的目的。
非常感谢任何帮助。感谢。
答案 0 :(得分:2)
在之后调用CMAKE_SIZEOF_VOID_P
命令之前,你不能使用PROJECT()
,(我认为它是在TRY_COMPILE
阶段设置的PROJECT
阶段1}}执行)。
由于您使用cmake -C
调用BuildSetup.cmake,BuildSetup.cmake的内容将在主CMakeLists.txt中的任何内容之前进行解析。
但是,您可能不应该使用配置文件来确定CMake需要哪些编译器标记,它们确实属于PROJECT()
命令后某处的CMakeLists.txt。