问题标签 [external-project]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2553 浏览

cmake - 在 CMakes“Add_External_Project”函数中使用 cmake 作为配置工具(CONFIGURE_COMMAND)

我遇到了 CMakesAdd_External_Project功能的问题(比其他任何事情都更令人烦恼)。具体来说,我不明白键CONFIGURE_COMMAND和。BUILD_COMMANDINSTALL_COMMAND

在以下(工作)示例中,下载 Google 的测试库,问题末尾的两个文件将确保下载并构建第三方库(安装)。

但是,当我尝试将配置和构建命令添加为“CONFIGURE_COMMAND”和“BUILD_COMMAND”(cmake .cmake --build)时,不必执行execute_processCMake 并显示错误消息:

我是否正在尝试做一些明显不在功能范围内的事情Add_External_Project

示例文件:

CMakeLists.txt

CMakeLists.txt.in

0 投票
1 回答
1713 浏览

c++ - 将导入的库链接到 CMake ExternalProject

我正在尝试创建一个超级构建来编译依赖项(zlib、nifticlib 和 boost),然后根据所有这些库编译我的项目。

这是我的 CMakeLists:

问题是当我尝试将 MyProject 链接到 nifticlib 或 boost 时,因为库名称因平台而异(我在导入库时处理)链接失败。

我通过库目录并在 MyProject CMakeLists 中执行以下操作:

但 target_link_libraries 失败,因为找不到 zlib(但我在我的超级构建中导入了它)。如何告诉 MyProject 使用我的 superbuild 的导入库?

谢谢你。

0 投票
0 回答
1068 浏览

cmake - CMake ExternalProject_Add 忽略依赖项的 cmake 警告

我正在使用的库之一是向它的开发人员发出 cmake 警告。我试图在我ExternalProject_Add的 with中压制那个警告-Wno-dev

我尝试将其设置为:

  • CMAKE_ARGS
  • CMAKE_CACHE_ARGS
  • CMAKE_CACHE_DEFAULT_ARGS

这是 yaml-cpp.txt.in:

我主要CMakeLists.txt这样使用它:

所以,到目前为止,我还没有成功压制警告。如何通过 ExternalProject_Add 抑制开发人员 cmake 警告?

0 投票
1 回答
141 浏览

cmake - 来自 ExternalProject 的多个 Cmake_Prefix_Paths

所以,如果我从命令行运行 cmake ......

这工作正常。但是,如果我尝试从基于 cmake 的 ExternalProject 做同样的事情......

那么这不起作用。生成的 CMakeCache 只有 path1 而没有 path2。有谁知道如何解决这一问题?

0 投票
1 回答
1131 浏览

cmake - CMake ExternalProject_Add() 在其 include_directories() 中使用父文件夹

我有一个'int_tester' CMake 项目,它利用ExternalProject_Add它的'drv' 依赖项。现在,这个“drv”也是使用 CMake 构建的,它在其 include_directories() 中使用父目录。麻烦的是我不知道如何将这个父文件夹复制到里面ExternalProject_Add()

目录结构如下:

drv 的 CMakeLists.txt 看起来像:

CMakeLists.txt 用于 int_tester,例如:

可以看到, drv 取决于${CMAKE_CURRENT_SOURCE_DIR}/../../common/include/.

当'int_tester'构建'drv'(通过ExternalProject_Add)时,../../common/include/找不到文件夹(它不是由它带来的ExternalProject_Add)。即使我为这个公用文件夹添加了另一个伪造的 ExternProject,它的目录结构也不会与CMakeLists.txt“drv”所期望的目录结构相匹配。

请问我错过了什么?

0 投票
2 回答
1600 浏览

cmake - ExternalProject_Add() 下载完成后如何使用 add_subdirectory()?

我基本上问的问题和这里问的问题一样。然而,这个问题没有得到回答。

我想在我的项目中使用 googletest。为此,我使用 ExternalProject_Add(),它使用 git 克隆测试套件。之后,我喜欢使用add_subdirectory().

这也是官方存储库中描述的内容。这种方法的好处是,googletest 中的构建脚本自己处理构建过程。

但是,问题是add_subdirectory()找不到源文件夹,因为它从一开始就不存在。因此,add_subdirectory()应依赖于完成ExternalProject_Add()

是否可以像 add_dependencies() 那样对目标进行add_subdirectory()依赖?ExternalProject_Add()

PS。如果我注释掉它,我可以让它全部编译add_subdirectory(),构建它(由于缺少 googletest 库而以错误结束),取消注释并再次构建它(成功)。

0 投票
1 回答
1785 浏览

android - 使用 ExternalProject_Add 在 Android 中包含 Opus

这可能很简单。

我有一个使用 NDK 的 Android 项目。我想在本机代码中包含作品源代码。我尝试使用 CMake 的 ExternalProject_Add 属性,但我的本机代码仍然无法从 Opus 库导入标头并且无法构建。

下面是我的 ExternalProject_Add 定义:

0 投票
1 回答
680 浏览

makefile - 在 CMake 中的多个项目之间共享 ExternalProject

我想在不同的 CMake 项目之间共享一个 ExternalProject。想象一个像下面这样的结构:

我想要获得的是告诉CMakeLists.txt在 ExternalProject 中使用 gtest lib/ext/gtest,而不是每次都为每个项目重新构建 gtest。

理想情况下,gtest 在其文件夹中构建一次,项目只需使用它。我尝试使用这里解释的 ExternalProject ( http://kaizou.org/2014/11/gtest-cmake/ ) 并包含lib/ext/gtest/CMakeLists.txt在项目中,但 gtest 会为每个用户重新编译。

0 投票
2 回答
1637 浏览

cmake - 如何展平 CMake 超级构建?

在努力学习如何让 CMake 在 Visual Studio 中为跨平台项目做我需要的事情时,我了解了 ExternalProject_Add,它很好地解决了我的所有需求。摘抄:

它引入了几个这样的依赖项,它在 Linux 和 Windows 上运行良好,你不能指望安装 LLVM 之类的东西。问题是我最终得到了“超级构建”的 Makefile/解决方案,以及我的实际项目的另一个。它运作良好,但它很混乱。我一直在考虑尝试使用 git 模块来引入依赖项,但我不确定这是否能正常工作。如何降低复杂性以便只有一个构建系统?

基本 CMakeLists.txt 位于https://github.com/coder0xff/Plange/blob/master/CMakeLists.txt

0 投票
1 回答
3185 浏览

cmake - 为 ExternalProject_Add CONFIGURE_COMMAND 设置 WORKING_DIRECTORY

我正在尝试将 Automake 项目添加为外部项目。Automake 配置脚本(通常使用 运行./configure)包含资源文件的相对路径。当我手动运行配置时找到该文件,因为我的工作目录在源目录中。但是,当我使用 . 运行configureExternalProject_Add,它找不到资源文件,因为工作目录是CMAKE_CURRENT_BINARY_DIR.

如何设置配置步骤的工作目录,以便配置脚本找到所需的文件?