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

cmake - CMake & ExternalProject:找不到特定文件

我们的存储库中有一些依赖库。主要部分是用 cmake 构建的。现在 cmake-makefiles 将构建依赖库,它没有 cmake 构建系统。对于一个特定的库,应该使用“Makefile.squirrel”。该库的 cmakelists.txt :

但是,在运行 make 时,我收到一条错误消息:

ls -lA on /home/enrico/projekte/projectname/dependencies/SQUIRREL2/Makefile.squirrel显示文件存在。

硬编码文件路径(不是解决方案的选项)也不起作用。

有什么想法或提示吗?

0 投票
2 回答
2965 浏览

build - ExternalProject 的 CMake 错误

两天前,我添加了一个外部项目来使用 autotools 编译一个项目。直到今天它都可以正常工作...

我有一个奇怪的错误:

/usr/share/cmake-2.8/Modules/ExternalProject.cmake:710(消息)处的 CMake 错误:错误:没有“libantlr3c”的下载信息——请指定现有的 SOURCE_DIR 或 URL、CVS_REPOSITORY 和 CVS_MODULE、SVN_REPOSITORY 或 DOWNLOAD_COMMAND 之一

并且实际上指定了这些规则之一(SOURCE_DIR):

所以这个错误没有任何意义......昨天它工作得很好(直到现在没有任何改变)。

任何的想法 ?

谢谢!

0 投票
6 回答
34643 浏览

cmake - CMake - 链接到从 ExternalProject_add() 下载的库

我正在尝试使用 ExternalProject_add() 下载/安装依赖项。它安装得很好,但我不知道下载后如何实际链接库。

我想在刚刚下载的库上调用 target_link_libraries(),但是库的路径会因系统而异。

如果这是系统依赖项,我可以调用 find_package() - 但这些包没有安装在默认搜索路径上。我认为您不能在模块模式下为 find_package 指定搜索路径。

这是我的 CMakeLists.txt 的一个片段,它不起作用:

0 投票
1 回答
5931 浏览

cmake - CMake ExternalProject_Add() - 使用自定义 CMakeLists.txt 构建

我将 lua 构建为外部项目,我想使用自己的 CMakeLists.txt 而不是捆绑的 Makefile。这就是我的主要 CMakeLists.txt 中的内容:

要使 BUILD 步骤起作用,SOURCE_DIR 中必须有一个 CMakeLists.txt。我现在在 SOURCE_DIR 中有这个 CMakeLists.txt:

这行得通,但我对 lua 源文件弄乱我的版本控制 CMakeLists.txt 感到不高兴。

有没有办法为不在SOURCE_DIR中的构建步骤指定自定义 CMakeLists.txt ?

0 投票
1 回答
232 浏览

build - cmake:如何从项目目录中包含/编译文件?

我有这个目录结构:

顶级项目目录不能被认为是顶级项目,而只是不相关项目的集合,所以我不会CMakeLists.txt在该级别放置文件。

我希望 project1 包含 project2 中的文件而不指定完整路径,例如:

而且我还希望在project1中构建project2的实现文件。

我需要 project2 不是一个库,而只是使用它的文件,就像它们是 project1 的一部分一样。

我正在使用cmake,这是CMakeLists.txt我写的文件(它不起作用):

即使指定 project2 的完整路径也不起作用:${CMAKE_CURRENT_SOURCE_DIR)/../../project2/src

我从make.

0 投票
5 回答
134785 浏览

cmake - CMake:如何构建外部项目并包含其目标

我有一个将静态库作为目标导出的项目 A:

现在我想将项目 A 用作项目 B 的外部项目并包含其构建目标:

问题是项目B的CMakeLists运行时包含文件还不存在。

有没有办法让包含依赖于正在构建的外部项目?

更新:我根据这个和我遇到的其他常见问题编写了一个简短的CMake by Example 教程。

0 投票
2 回答
3208 浏览

cmake - ExternalProject_Add 不安装项目的发布配置

编辑:我找到了一个可能的原因,但我不明白为什么:Project(Externals)删除以下脚本中的最后一行修复了我的问题。那么现在的问题是为什么?

我在上面的 CMakeLists.txt 文件上调用 cmake,并CMAKE_INSTALL_PREFIX设置为“d:\externals”CMAKE_BUILD_TYPE设置为“Release”

期望: 我希望只构建发布配置。在它建成后,我希望它能够安装在D:\externals\bin\zlib.dll.

问题: 实际上, ExternalProject_Add 构建了一个Debug和一个Release,并将调试版本的 dll 安装在D:\externals\bin\zlibd.dll

我的构建脚本不正确吗?我究竟做错了什么?

编辑:更多信息。我刚注意到。在生成的D:\externals\src\Release\zlib_external-build\zlib.sln中,根本没有选择INSTALL目标来构建。如果我检查它以构建发布配置,然后从 Visual Studio 中点击“构建”,则 INSTALL 目标将构建并安装我期望它们的文件。我不知道是怎么回事...

0 投票
2 回答
33484 浏览

cmake - 如何以跨平台方式使用 CMake ExternalProject_Add 或替代方案?

我想构建一个第三方项目,该项目已经将 CMake 作为我项目的 CMake 条的一部分。ExternalProject_Add 就是为此目的,但我发现它只能用于特定的生成器,并且我希望它可以轻松地在许多平台上工作。

例如,这是我的外部项目,其中添加了 zlib 脚本,它有自己的 CMakeLists.txt:

问题在于它适用于 make,但不适用于 Xcode 或 Visual Studio。也许有一些方法可以将 CMake 构建命令传递给我的项目并将它们转发给 ExternalProject_Add。

如何以最小的代码复杂性以跨平台方式编写 ExternalProject_Add 调用,还是有更好的选择?

0 投票
2 回答
622 浏览

c++ - ExternalProject_Add 的奇怪行为与包含空格的命令

我需要使用 编译 boost 库ExternalProject_Add,并且构建命令需要使用 Clang 在 MacOS 平台上使用 c++11 标志。

该命令应如下所示:

但我对引号和空格有疑问。

${BOOST_TOOL_SET}值是一个列表,并且cxxflags="-std=c++11 -stdlib=libc++"是其中的一项。生成的命令行变得奇怪:

当 CMake 检测到参数内的空格并用引号将其包裹时,似乎该标志是由 CMake 翻译的,但这不是我想要的。

我在互联网上搜索,但没有找到任何帮助。关于这个问题有什么提示吗?

0 投票
3 回答
24479 浏览

c++ - CMake ExternalProject_Add() 和 FindPackage()

是否有适当的方法来查找使用FindPackage()构建的库(通过)ExternalProject_Add()

问题是 CMake 在 CMake 时找不到库,因为外部库是在编译时构建的。我知道在超级构建中构建库和项目时可以结合这两个 CMake 函数,但我想在普通的 CMake 项目中使用它。

事实上,我想构建 VTK 6并在我的 CMake 项目中ExternalProject_Add找到它。FindPackage