外部项目的属性在首次调用 ExternalProject_Add 命令时设置。例如,检索配置 recipe-01_core 时传递给 CMake 的参数可以通过以下方式实现: ExternalProject_Get_Property(${PROJECT_NAME}_core CMAKE_ARGS) message(STATUS "CMAKE_ARGS of ${PROJECT_NAME}_core ${CMAKE_ARGS}") ExternalProject_Add的完整选项列表...
上次说了第三方依赖管理,提到了我们团队在使用ExternalProject来管理依赖,这次来说说具体实践,以及一个基于 CMake 的开源依赖管理工具vcpkg。 ExternalProject 实践 来看看它长什么样: ExternalProject_Add(<name> [...]) ExternalProject_Add_Step(<name> <step> [...]) ExternalProject_Get_Property ExternalProject_A...
--target install ) set ( FOO_LIB ${FOO_ROOT}/lib/foo.lib) set ( FOO_INCLUDE_DIR ${FOO_ROOT}/include ) ExternalProject_Get_property(foobar PREFIX) message( STATUS "PREFIX = ${PREFIX}" ) project ( testprj ) add_executable( testprj ) add_dependencies( testprj foobar ) target_sources...
而 ExternalProject_Get_Property 对于在你将 ExternalProject 作为主项目编译步骤时使用有些用处,只是考虑到它不是在配置时下载编译,毕竟如 target_link_libraies 这类方法需要求你已经有编译产物了,因此不怎么会用到。 当你编译完成后,可以将所有的编译产物打包上传至公共存储空间,然后再在主目录下的 CMakeLists.txt...
然后,在需要使用外部项目的项目的CMakeLists.txt文件中,使用ExternalProject_Get_Property函数来获取外部项目的属性。我们可以获取外部项目的构建目录、安装目录等信息。例如: 代码语言:txt 复制 ExternalProject_Get_Property(my_external_project BINARY_DIR) ExternalProject_Get_Property(my_external_project INSTALL_...
include(ExternalProject) ExternalProject_Add( google-benchmark GIT_REPOSITORY "https://github.com/google/benchmark.git" GIT_TAG "master" CMAKE_ARGS "-DBENCHMARK_ENABLE_GTEST_TESTS=OFF" UPDATE_COMMAND "" INSTALL_COMMAND "" ) ExternalProject_Get_property(google-benchmark INSTALL_DIR) set(google-...
ExternalProject_Get_Property()是获取工程的一些属性。 add_dependencies增加依赖编译项目 五、总结 这些变量和指令不好记,怎么快速记忆。 全为大写 大小写混用 规则指令add_xxxxxx等 token之间没有逗号,用空格隔断两个token 5.1 cmake开启详细信息调试模式
ExternalProject.cmake 定义了命令 ExternalProject_Get_Property,顾名思义,这对于检索外部项目的属性非常有用。外部项目的属性在首次调用 ExternalProject_Add 命令时设置。例如,检索配置 recipe-01_core 时传递给 CMake 的参数可以通过以下方式实现: 代码语言:javascript 复制 ExternalProject_Get_Property(${PROJECT_NAME...
ExternalProject_Get_Property(jsoncpp INSTALL_DIR) set(JSONCPP_LIBRARY ${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}jsoncpp${CMAKE_STATIC_LIBRARY_SUFFIX}) set(JSONCPP_INCLUDE_DIR ${INSTALL_DIR}/include) # 构建逻辑上的目标,方便使用 ...
ExternalProject_Get_Property(libsqlite SOURCE_DIR) set(SQLITE3_INCLUDE_DIR ${SOURCE_DIR}) set(SQLITE3_LIBRARY_DIR ${SOURCE_DIR}/.libs) add_library(sqlite IMPORTED STATIC GLOBAL) add_dependencies(sqlite libsqlite) set_target_properties(sqlite PROPERTIES IMPORTED_LOCATION "${SQLITE3_LIBRARY_DIR}/...