我想知道如何从外部项目中获取变量和选项。例如,我正在使用ExternalProject_Add
添加我的项目依赖的库,问题是这个依赖项有一些变量和选项 - 默认情况下它们中的一些是 - 我想知道,如何获取他们来自我的CMakeLists.txt
。
答案 0 :(得分:1)
与ExternalProject_Add
相关的所有命令都在 build 阶段执行,但是当{em> configure 阶段解释您的CMakeLists.txt
时,外部库没有&# 39; t尚未配置,因此未定义其变量和选项。
更一般地说,可以在两种情况下提取外部项目中的cmake变量:
add_subdirectory
包含在主项目中。答案 1 :(得分:0)
我解析回答一个类似的问题。
这项工作对我来说:
set(ZIP_DEP ${CMAKE_BINARY_DIR}/httpserver.zip)
if(NOT EXISTS ${ZIP_DEP})
file(DOWNLOAD https://github.com/d3roch4/httpserver/archive/master.zip
${ZIP_DEP})
execute_process(COMMAND unzip -o ${ZIP_DEP}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
RESULT_VARIABLE rv
)
if(NOT rv EQUAL 0)
message(FATAL_ERROR "error: extract of '${ZIP_DEP}' failed")
endif()
endif()
add_subdirectory(${CMAKE_BINARY_DIR}/httpserver-master)