问题标签 [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 投票
1 回答
320 浏览

visual-studio-2012 - 使用 ExternalProject_Add 后缺少项目

我正在使用 VS2012+cmake2.8.12。我的问题是 CMake 无法为我的外部项目生成正确的路径。例如:

'external.vcxproj'应该是..\path\to\external.vcxproj

这是我使用 ExternalProject_Add 命令的方式:

非常感谢任何帮助!

0 投票
2 回答
5691 浏览

windows - ExternalProject_Add 何时构建?

我想构建 openssl 并将我的项目链接到它。在我的项目中,我有一个名为 net 的库,它是使用 openssl 的部分。所以在我的 net\CMakeList 中,我添加了

在用于组织所有外部库的 ext 文件夹中,我在名为 openssl 的文件夹中有一个全新的解压缩 openssl 源代码。然后我编辑了 ext\CmakeList

编译时,编译器报错找不到包含文件,openssl源代码根本没有编译,因为没有out32dll和inc32。

我的问题是: ExternalProject_Add 何时真正构建项目?如果我根据openssl制作我的网络库,这是否意味着当我构建网络时需要先检查并构建openssl?

0 投票
1 回答
7236 浏览

c++ - 将 CMake 变量传递给 ExternalProject_Add

我正在使用带有 ExternalProject_Add 的 CMake 构建一个外部库。我在这里使用了答案来生成以下内容(它捕获了 CMake 的命令行输入,以便将其传递给 ExternalProject_Add 命令):

ExternalProject_Add 命令如下所示:

我无法弄清楚如何正确地将 CMAKE_ARGS 变量传递给该命令。显然,其他变量工作正常,但 CMAKE_ARGS 似乎没有正确扩展,因为我知道它包含我希望它包含的内容。我在 CMake 的语法上做错了吗?

0 投票
1 回答
1520 浏览

c++ - CMake:GLFW 作为 ExternalProject

问题

我正在尝试制作一个使用GLFW的项目。对于这个项目,我使用CMake作为构建系统。我想这样做,因此用户只需使用 CMake 构建我的项目,并且作为该过程的一部分,GLFW 将得到适当的构建和链接。

为此,我将 GLFW 添加为ExternalProject我的 CMake 文件中的一个:

但是,当我生成项目(对于 VS12 2013 x64)并运行时ALL_BUILD,出现以下错误:

当我尝试使用 CMake 构建 GLFW 而不指定CMAKE_INSTALL_PREFIX.

尝试的解决方案

为了解决这个问题,我想为ExternalProject指定CMAKE_INSTALL_PREFIX选项。glfw但是,我不希望能够做到这一点。我试过了:

添加外部项目后。然而,这个接缝没有任何效果。

问题

如何CMAKE_INSTALL_PREFIXglfwExternalProject 设置?

正如@drescherjm 所提到的,此失败的根源是CMake 正在尝试创建C:/Program Files需要特殊权限的文件。问题是 CMake 默认为这个位置,因为我无法在我的 CMake 文件中设置正确的位置。

附加信息

操作系统:Windows 8.1 x64
CMake 版本:3.1.1
Visual Studio 版本:Community 2013 V4.5.53349
CMake 文件

0 投票
3 回答
8657 浏览

git - CMake ExternalProject_Add Git

I have a git-bare-repository on my desktop and I would like to clone it with CMake. My repository has this path C:\Users\demoUser\Desktop\learnGIT\prog. My CMakeLists.txt looks like this:

but in the generated folder prog-build is just wast. The generated folder structure doesn't include any of my files from the repository.

Does somebody has an idea?

0 投票
1 回答
7309 浏览

cmake - 在 ExternalProject_Add 命令中 INSTALL_DIR 有什么用?

我不明白在 ExternalProject_Add 命令中 INSTALL_DIR 的用法。我尝试使用它,但它似乎不起作用。下面是一个 CMakeLists.txt 示例,使用了可以快速编译的 Eigen 库:

我选择了以下项目层次结构:

从构建存储库中,我输入:

安装过程失败并显示以下消息:

文件无法创建目录:/usr/local/include/eigen3.
也许需要管理权限。

据我了解,这意味着我需要在配置步骤中定义一个“前缀”:

但是,INSTALL_DIR 变量已在 ExternalProject_Add 命令中定义。但是,当我通过添加修改 INSTALL_DIR 的值时,我得到了同样的错误

在 ExternalProject_Add 命令中。

那么,INSTALL_DIR 有什么用呢?我究竟做错了什么?

当然,我知道如何提供自己的配置命令来添加前缀并解决问题。但这不是我的问题。我的问题是:如果我必须这样做,INSTALL_DIR 的目的是什么?

0 投票
1 回答
5837 浏览

cmake - cmake external projects 命令似乎忽略了 INSTALL_DIR

首先,我对 cmake 比较陌生。我正在尝试使用 cmake 构建具有单个外部依赖项的项目。我将外部项目的 INSTALL_DIR 指定为 CMAKE_INSTALL_PREFIX,因此它安装到与父项目相同的位置。但是当我运行 make 时,它​​会忽略它并尝试安装到 /usr/local/lib。

这是我的 CMakeList.txt:

外部项目的 CMakeLists.txt 如下所示:

它可以很好地克隆和构建外部项目,但是在安装步骤中会卡住:

如您所见,安装配置为空。查看为外部项目生成的配置,我在 cmake_install.cmake 中找到了这个:

因此,似乎将 INSTALL_DIR 传递给 ExternalProject_Add 并没有设置安装前缀。安装步骤成功,如果我改为使用:

那么 INSTALL_DIR 的目的是什么?

0 投票
1 回答
1993 浏览

cmake - 如何获取 ExternalProject_Add 到下载库?

我整理了一个简单的 CMakeLists.txt 文件,该文件对 ExternalProject_Add 进行了一次调用,但从未下载过该项目。我需要在文件中添加更多内容吗?

然后我执行cmake -G "Visual Studio 12" ..

0 投票
1 回答
4254 浏览

shell - 使用 shell 命令作为 INSTALL_COMMAND 到 ExternalProject_Add

INSTALL_COMMAND是否可以在 cmake 的阶段使用任何 shell 命令ExternalProject_Add?例如

我注释掉了我想使用的 INSTALL_COMMAND,find 和 cp 似乎不允许,“没有这样的文件或目录,错误 127”是使用它的结果。

0 投票
0 回答
1418 浏览

cmake - 作为 git 子模块的依赖项,没有配置 cmake 项目

我有一个以 cmake 作为其构建系统的项目。我希望将项目的依赖项作为 git 子模块提取,并将它们的构建过程集成到整个项目的一个 cmake 构建过程中。

如果依赖项也使用 cmake 作为它的构建系统,那么它非常容易使用ExternalProject_Add。我已经能够集成这样的依赖项(SDL)。

但是,如果我的依赖项不使用 cmake,我该怎么办?例如,在我的情况下,这些将是 lua 和 bgfx。考虑到这种情况,有哪些可能的方法来组织所有内容?我是否应该自己为此类项目编写和维护 CMakeLists.txt 文件,并../../bgfx/src/main.cpp为每个此类依赖项提供一些丑陋的源引用,并为每个此类 CMakeLists.txt 文件创建一个文件夹以引用此文件夹ExternalProject_Add?或者可能还有其他方法?