问题标签 [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 回答
7375 浏览

git - CMake ExternalProject_add 与子文件夹上的 CMakeLists

我正在尝试使用来自 cmake 的 ExternalProject_Add 命令下载和构建 DevIL,但由于某种原因,git repo 在项目的子文件夹中有 CMakeLists.txt 文件。

我似乎找不到让 ExternalProject_add 在正确文件夹上调用 cmake 的方法。我尝试使用前缀和 source_dir,但它仍然失败。

然后,我在网上看到了一个答案,其中涉及创建一个临时的 CMakeLists.txt,它将调用正确的 cmake 路径。但是由于我不知道如何提供 cmake 调用的路径,这意味着我必须将它放在下载的 git repo 中,后来证明这很痛苦......这是我正在使用的当前命令:包括(“外部项目”)

我尝试像这样对路径进行硬编码(“/src/ThirdParty_DevIL/”部分),但它丑得要命,如果 cmake 决定在将来更改它,它就会中断。此外,由于这实际上是在 git 树中复制文件,cmake 后来抱怨

有没有办法使这个解决方案(创建一个临时的 CMakeListst.txt )工作?或者更好的是,是否有另一种解决方案,只涉及正确配置 ExternalProject_add ?

我对参数、路径等没有任何要求,所以请随意提出任何建议。我怎样才能解决这个问题?谢谢

0 投票
1 回答
712 浏览

build - 避免额外的 ExternalProject 下载

假设我有以下具有这些依赖项的项目设置:

这些依赖项在ExternalProjectMainProjectDependency_1处理。

问题是Dependency_2将被下载两次:Dependency_1将为自己下载一个副本,并为自己MainProject下载一个副本。

这并不能实现高效的构建过程,有没有一种方法可以让我Dependency_2为两个项目下载一次?


有人建议这个问题是这个问题的重复。这个问题与我的略有不同,因为我不能假设这些库将通过 ExternalProject 安装到主机系统。我还想要一个CMake only 解决方案,这个问题不需要。

0 投票
1 回答
1861 浏览

linux - cmake:如何在外部项目中正确设置变量在 make 之前?

我正在为 pi 项目中需要的库设置交叉编译项目。我想通过最新的 mosquitto 库,我已经弄清楚我需要传递什么才能使其正确构建。不幸的是,当我定义我的 BUILD_COMMAND 时,我似乎无法正确设置变量以在调用之前进行。

这是我的 CMakeLists.txt 中定义的外部项目:

以下是失败步骤的 make 输出:

我发现导致问题的是 LDFLAGS 周围的引号。

如果我手动运行链接命令并删除上面的双引号,它会成功。

如何更好地形成 BUILD_COMMAND 中的参数以摆脱引号?

0 投票
1 回答
994 浏览

cmake - ExternalProject_add:有些文件没有用 INSTALL_COMMAND 复制

我们有一个外部项目,我们想使用 ExternalProject_add 使用 cmake 获取。
假设外部项目有一个结构:

我们使用以下方法获取 External_Project:

在此之后,我们要将获取的外部项目移动到另一个位置。所以我们使用

如上所示。

INSTALL_COMMAND 后最终位置的文件最终为:

“myClass.cpp”丢失。为什么??

该命令包括“copy_directory”,但这只是一个被遗漏的文件。

0 投票
1 回答
272 浏览

c++ - 使用 cmake 干净地构建代码,添加为外部项目时失败

问题总结。

我有一个使用 CMake 构建的项目 A,它可以干净地编译。

但是,当我使用 CMake 的 ExternalProject_Add 命令将 A 拉入另一个项目 B 时,当它到达构建 A 的点时编译失败。

我得到的那种错误。

编译 B 会出现这样的错误

当它开始编译 A(这又是由 ExternalProject_Add 引入的)时。

请注意,-std=c++11在所有涉及的 CMakeList.txt 文件中设置。

请注意,我也在使用 ExternalProject_Add 拉取一个谷歌项目,但它不会导致任何问题。

涉及的 CMakeLists.txt 文件中的一些细节。

以下摘录来自 A 的 CMakeLists.txt:

以下来自 B 的 CMakeLists.txt。不同的部分出现在星号 (*) 之后。

0 投票
0 回答
677 浏览

c++ - CMake ExternalProject GIT_REPOSITORY 无法取消隐藏更改

我正在尝试使用 CMake v3.7 的 ExternalProject 克隆 GSL git repo,但它失败并出现错误“无法取消存储更改”。有谁知道发生了什么?难道我做错了什么?CMake 或 GS​​L 做错了吗?

0 投票
1 回答
1692 浏览

cmake - 如何在 externalproject_add 中设置命令参数

我想创建一个 cmake 脚本来在我的项目中自动构建 zlib。

我添加了

但它会生成如下配置命令:

我认为没有正确引用。

我尝试了很多技巧,但我无法让命令工作。任何想法?

0 投票
2 回答
21603 浏览

cmake - 未知的 CMake 命令“ExternalProject_Add”

我有以下 CMakeLists.txt 文件:

我想将 json-c 库添加到我的项目中,但是当我运行 cmake 时出现错误:未知的 CMake 命令“ExternalProject_Add”。我的 CMake 版本在 OS X 上是 3.6.2

0 投票
0 回答
2148 浏览

cmake - cmake 的 ExternalProject_Add:如何设置源、构建和安装目录

我想使用ExternalProject_Add功能来安装启用 cmake 的项目。我需要控制构建和安装过程。更具体地说,我希望 cmake 在特定目录中构建和安装。

有一个选项可以选择放置源目录的路径:SOURCE_DIR. 和 有什么等价的BUILD_DIRINSTALL_DIR?我没有看到任何类似的东西。

有一个PREFIX选项:

整个项目的根目录

究竟是什么意思?cmake 的 ExternalProject_Add 是如何安装的?

编辑:

这项工作,但我无法控制源目录并且它不安装库:

  • 如果我取消注释SOURCE_DIR,它不会克隆,GIT_CLONE而是尝试从中获取源SOURCE_DIR(它失败了,因为这不是我所期望的......)
  • 如果我评论INSTALL_COMMAND "",那么它会尝试安装在C:/Program Files/wjelement,默认(显然)而不是INSTALL_DIR
  • 源文件的默认路径似乎是${CMAKE_BINARY_DIR}/wjelement-project-prefix/src

另一个 Stackoverflow 问题报告问题(或至少非直观行为)与INSTALL_DIR.

0 投票
1 回答
2742 浏览

cmake - cmake :使用 ExternalProject_Add 并指定输出文件夹

我目前正在使用一个 CMakeLists.txt 文件,该文件将执行外部 CMakeLists.txt(和依赖项)。

为此,我使用 ExternalProject_Add 命令,但我找不到指定生成“.sln”文件的位置的方法。

这是我使用的命令:

所以,我正在寻找一种在此调用中直接指定它的方法。任何想法 ?

我也试过,但没办法: