cmake ExternalProject_Add并使用project()命令

时间:2015-10-24 00:58:16

标签: c++ xcode cmake

我正在尝试使用cmake构建一个多项目项目,并使用了ExternalProject_Add()命令。但是,我无法使用CMAKE_CXX_COMPILER选项,这会导致以下问题:在配置期间,外部项目会检查多个编译器功能,设置(或不设置,在这种情况下)必要的标志.h文件。当我运行make时,使用不同的编译器,并且.h文件中的值不正确。

我已将其归结为以下代码行,这些代码行出现在我的CMakeLists.txt文件的顶部,用于外部项目(CGAL):

message("**** CXX Compiler is ${CMAKE_CXX_COMPILER}")
project(CGAL CXX C)
message("**** CXX Compiler is ${CMAKE_CXX_COMPILER}")

当我运行它时,第一条消息显示正确的值(通过XCode安装的Frameworks编译器)。但是,第二条消息显示错误的编译器(我使用MacPorts安装的GNU版本)。我查阅了project规范,但它们非常稀疏。他们确实注意到,如果不包含project()命令,将使用CXXC语言添加隐式命令。果然,当我删除project()命令时,两条消息都报告错误的编译器。

我对project()命令有什么不了解的吗?它是否在文件路径中的某处搜索CMakeLists.txt文件并默认加载它?有没有办法可以重载此设置(没有创建临时变量来保存旧值)?

FWIW,setting CMAKE_CACHE_ARGS不起作用。

0 个答案:

没有答案