从CMake中的不同文件夹级别收集信息

时间:2014-02-25 12:24:21

标签: cmake

我有一个具有不同可配置依赖项的项目:

IF(HAVE_LIBA)
  ADD_SUBDIRECTORY(something)
ENDIF()

IF(HAVE_LIBB)
  ADD_SUBDIRECTORY(somethingElse)
ENDIF()

我想拥有一个库的中央列表,包括最终使用特定配置构建的库的路径和安装路径。

的CMakeLists.txt:

SET(MYPROJECT_LIBS "")

东西/的CMakeLists.txt:

ADD_LIBRARY(somethingLib ...)
# Howto append somethingLib to MYPROJECT_LIBS

SET(... PARENT_SCOPE)[CMake> = 2.6]将是一种方法,但是,我有几个级别的文件夹,父范围只修改上面一个级别的变量。

缓存MYPROJECT_LIBS也没有效果。

关于如何填充这些列表的任何其他(可能是一般性的)建议?

1 个答案:

答案 0 :(得分:3)

改为填充全局属性。

set_property(GLOBAL APPEND PROPERTY THE_LIBS_PROP liba) 

读:

get_property(THE_LIBS GLOBAL PROPERTY THE_LIBS_PROP)
message("The libs: ${THE_LIBS}")