CMake的ExternalProject_Add是一个用于在构建过程中下载和构建第三方项目的功能。 在使用ExternalProject_Add时,URL参数用于指定要下载的项目的地址。URL可以是一个指向存储库的Git URL,也可以是指向存档文件的URL。 ExternalProject_Add的URL参数可以是以下几种形式之一: Git URL:指向Git存储库的URL。例如,可以使用以下...
首先,在CMakeLists.txt文件中使用ExternalProject_Add函数来定义外部项目。我们可以指定外部项目的名称、URL、构建目录、安装目录等信息。例如: 代码语言:txt 复制 ExternalProject_Add( my_external_project URL https://example.com/my_external_project.zip PREFIX ${CMAKE_CURRENT_BINARY_DIR}/external INSTALL_DIR...
但是考虑到需要用到的太多,为了提高项目的可用性,决定使用第三方导入的方式(使用ExternalProject_Add指令)。 官方说明 基本说明 使用之前 在使用使用ExternalProject_Add之前需要导入插件 include(ExternalProject) 关于导入方式 导入的工程可以直接在网络端(使用git/svn等工具)也或为本地URL,具体配置如下图: image 其中URL...
URL https://github.com/google/googletest/archive/release-1.8.0.zip PREFIX ${DMP_CLIENT_SOURCE_DIR}/third/gtest CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${DMP_CLIENT_SOURCE_DIR}/third/gtest/build -DBUILD_SHARED_LIBS=OFF ) add_dependencies(third google_gtest) ExternalProject_Add( google_proto...
这里核心的命令是 ExternalProject_Add,功能很强大,支持不同的地址去获取依赖,可以是打包文件的URL,比如 github 上的某个项目的 tag,或者像 boost 这种,在官网提供的下载链接,也可以直接是GIT_REPOSITORY,一般建议直接使用打包的 tag,因为比较快,而且有固定的 tag,比较好做版本管理,但是有些项目引用了外部项目需要执...
ExternalProject_Add(MyLibrary URL CMAKE_ARGS -DCMAKE_INSTALL_PREFIX={CMAKE_INSTALL_PREFIX} ) 在这个例子中,我们使用URL选项指定了外部依赖项的源代码地址,同时使用CMAKE_ARGS选项将我们的安装目录传递给外部项目的构建过程。当我们构建我们的主项目时,CMake将自动下载并构建外部依赖项。 但是,当我们的项目有多...
ExternalProject_Add可以从URL远程下载压缩文件,也可以编译本地源文件压缩包。这样如果需要在多个平台编译so,就可以保存源文件的压缩包,当然也可以用git的submodule方法。例如: set(OpenSSL_ROOT "${CMAKE_CURRENT_BINARY_DIR}/openssl") ExternalProject_Add( ...
在上述示例中,我们使用ExternalProject_Add命令添加了一个名为my_dependency的外部依赖。指定了依赖库的下载链接URL、构建目录PREFIX、安装目录INSTALL_DIR以及CMake配置参数CMAKE_ARGS。 1.3 应用场景 ExternalProject适用于那些外部依赖库不包含在项目代码中,需要下载并构建的情况。它允许我们将外部依赖库作为独立的项目进行...
ExternalProject_Add( google_protobuf URL https://github.com/google/protobuf/archive/v3.5.2.zip PREFIX${DMP_CLIENT_SOURCE_DIR}/third/protobuf BUILD_IN_SOURCEtrueCONFIGURE_COMMAND""BUILD_COMMAND sh autogen.sh && ./configure --prefix=${DMP_CLIENT_SOURCE_DIR}/third/protobuf/build --disable-shar...
ExternalProject_Add(project_opus URL https://archive.mozilla.org/pub/opus/opus-1.2.1.tar.gz CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR> BUILD_COMMAND make INSTALL_COMMAND make install ) ExternalProject_Get_Property(project_opus install_dir) include_directories(${install_dir}/...