cmake外部项目属性列表

时间:2016-02-23 16:55:06

标签: cmake

我在ExternalProject_Add中使用CMakeLists.txt命令添加一些外部项目。我想要检索一些项目属性(我希望从<project>_DEFINITIONS获得Find<package>.cmake之类的预处理器定义。)

有没有办法让所有允许的项目属性用作ExternalProject_Get_property命令参数?例如,我知道 source_dir binary_dir ,i。即像这样的东西:

ExternalProject_Get_property(<my project> binary_dir)

OR有没有办法在下载外部项目后立即使用find_package函数?我确实知道这个项目的find_package在启动构建之后工作(即在已经配置外部项目之后)。它会自动设置所有必要的变量(如<project>_DEFINITIONS),但显然find_package(<project>)最初不可用(即在配置外部项目之前)。

1 个答案:

答案 0 :(得分:2)

下载外部包时,您只有其来源。 CMake没有通用的方法只使用其来源提取有关包的信息。

仅限来源

函数ExternalProject_Get_property返回ExternalProject_Add调用本身 set 的属性。外部项目甚至没有在此次通话中配置,因此您无法获得有关该包的任何信息。

<强>配置

有命令export,它允许配置的外部包发布有关其某些目标的信息。

<强>已安装

命令find_package要求(通常)已安装软件包。