问题标签 [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.
cmake - 在 CMakes“Add_External_Project”函数中使用 cmake 作为配置工具(CONFIGURE_COMMAND)
我遇到了 CMakesAdd_External_Project
功能的问题(比其他任何事情都更令人烦恼)。具体来说,我不明白键CONFIGURE_COMMAND
和。BUILD_COMMAND
INSTALL_COMMAND
在以下(工作)示例中,下载 Google 的测试库,问题末尾的两个文件将确保下载并构建第三方库(未安装)。
但是,当我尝试将配置和构建命令添加为“CONFIGURE_COMMAND”和“BUILD_COMMAND”(cmake .
和cmake --build
)时,不必执行execute_process
CMake 并显示错误消息:
我是否正在尝试做一些明显不在功能范围内的事情Add_External_Project
?
示例文件:
CMakeLists.txt
CMakeLists.txt.in
c++ - 将导入的库链接到 CMake ExternalProject
我正在尝试创建一个超级构建来编译依赖项(zlib、nifticlib 和 boost),然后根据所有这些库编译我的项目。
这是我的 CMakeLists:
问题是当我尝试将 MyProject 链接到 nifticlib 或 boost 时,因为库名称因平台而异(我在导入库时处理)链接失败。
我通过库目录并在 MyProject CMakeLists 中执行以下操作:
但 target_link_libraries 失败,因为找不到 zlib(但我在我的超级构建中导入了它)。如何告诉 MyProject 使用我的 superbuild 的导入库?
谢谢你。
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 警告?
cmake - 来自 ExternalProject 的多个 Cmake_Prefix_Paths
所以,如果我从命令行运行 cmake ......
这工作正常。但是,如果我尝试从基于 cmake 的 ExternalProject 做同样的事情......
那么这不起作用。生成的 CMakeCache 只有 path1 而没有 path2。有谁知道如何解决这一问题?
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”所期望的目录结构相匹配。
请问我错过了什么?
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 库而以错误结束),取消注释并再次构建它(成功)。
android - 使用 ExternalProject_Add 在 Android 中包含 Opus
这可能很简单。
我有一个使用 NDK 的 Android 项目。我想在本机代码中包含作品源代码。我尝试使用 CMake 的 ExternalProject_Add 属性,但我的本机代码仍然无法从 Opus 库导入标头并且无法构建。
下面是我的 ExternalProject_Add 定义:
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 会为每个用户重新编译。
cmake - 如何展平 CMake 超级构建?
在努力学习如何让 CMake 在 Visual Studio 中为跨平台项目做我需要的事情时,我了解了 ExternalProject_Add,它很好地解决了我的所有需求。摘抄:
它引入了几个这样的依赖项,它在 Linux 和 Windows 上运行良好,你不能指望安装 LLVM 之类的东西。问题是我最终得到了“超级构建”的 Makefile/解决方案,以及我的实际项目的另一个。它运作良好,但它很混乱。我一直在考虑尝试使用 git 模块来引入依赖项,但我不确定这是否能正常工作。如何降低复杂性以便只有一个构建系统?
基本 CMakeLists.txt 位于https://github.com/coder0xff/Plange/blob/master/CMakeLists.txt
cmake - 为 ExternalProject_Add CONFIGURE_COMMAND 设置 WORKING_DIRECTORY
我正在尝试将 Automake 项目添加为外部项目。Automake 配置脚本(通常使用 运行./configure
)包含资源文件的相对路径。当我手动运行配置时找到该文件,因为我的工作目录在源目录中。但是,当我使用 . 运行configure
时ExternalProject_Add
,它找不到资源文件,因为工作目录是CMAKE_CURRENT_BINARY_DIR
.
如何设置配置步骤的工作目录,以便配置脚本找到所需的文件?