问题标签 [cmake-modules]

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 回答
458 浏览

cmake - What is the proper way to document a CMake module?

A quick Google search (...actually many rather extensive Google searches) have not been able to explain how to properly document a CMake module.

What I'm looking for is a way to document custom CMake modules so that they work with the cmake --help-module <module_name> command. Is there any standard way of doing this? Can anyone point me to some good examples? The documentation process seems oddly.... not well documented. Haha.

How are modules that work with cmake --help-module documented?

Any help is appreciated.

0 投票
0 回答
19 浏览

cmake - 不同子目录中的相同库名称:在父级调用 `add_subdirectory` 时发生冲突

简单的文件夹结构就像

假设我add_library(SubDirLib fooX.cpp)SubA/CMakeLists.txt其中X 分别是 A 和 B ,SubB/CMakeLists.txt我如何链接两个库SubA/SubDirLib和?请注意,如果我打电话,它将是名称冲突SubB/SubDirLibRoot/CMakeLists.txt

Root/CMakeLists.txt

0 投票
0 回答
978 浏览

cmake - 我在 shogun 界面上遇到问题

这是我面临的错误:

0 投票
1 回答
10511 浏览

c++ - 如何使用 CMake 创建包

大家好。

我是 CMake 的新手,我正在尝试获得类似以下内容。考虑到我的 C++ 项目的上述目录树:

我有一个目录(比如说“MyPack”),其中包含几个子目录(Lib1、Lib2...),每个子目录都代表我编写的一个 C++ 库。

如何设置所有内容以便可以find_package(MyPack)在其他子项目中编写?

每个子项目都是一个独立的项目,不依赖于其他子项目,只依赖于“MyPack”中的库。

0 投票
0 回答
180 浏览

cmake - 如何忽略子目录中的所有 cmake 开发警告?

我正在使用一些外部库,它们使用该add_subdirectory命令作为 git 子模块包含在内。他们中的一些人正在使用旧版本的 cmake,并且他们正在发出有关策略 CMP0048 和 CMP0077 的警告。

有没有办法关闭这些库的所有 cmake 警告?

我已经尝试OLD在包含项目之前明确设置策略,但它没有帮助。

我不想编辑 git 子模块中的任何文件,因为当有人必须克隆我的项目的 repo 并在他们的机器上构建它时,会有额外的步骤。

0 投票
1 回答
3560 浏览

linux - CMake 错误“包含找不到加载文件:FetchContent”

cmake在 Ubuntu 上执行命令时出现以下错误。CMake 版本 - 3.10.2。

以下是第CMakeLists.txt1 行的内容。31:

我是新手,今天才开始使用 CMake。如果我在 CMake 中做错了什么和/或遗漏了什么,请告诉我。

include(FetchContent)在 Ubuntu 上支持 CMAke 版本 - 3.10.2。

0 投票
0 回答
987 浏览

c++ - CMAKE 将变量传递到包含的 cmake 子文件中

我目前正在配置我的项目的构建,并决定拆分CMakeLists.txt为负责单个构建子任务(如测试、打包、编译等)的子文件。问题是cmake子文件需要有关如何完成任务的信息。所以我决定在包含模块之前需要设置一些变量。看起来像

CpackMylib.cmake

和根CMakeLists.txt

所以我需要定义项目特定的变量,这些变量将用于使用CPack. 我是新手CMake,这样做似乎很自然。但我不确定在处理CMake.

CMake定义子模块需要的所有变量并在根目录中提供它们是否有意义CMakeLists.txt

0 投票
1 回答
996 浏览

c++ - 如何为“boost-like”多组件库编写 cmake 模块?

我目前正在编写一个 c++ 库,它有几个“子库”,例如 boost 库。

让我们将库命名为“TestLib”,将子库命名为“Base”和“Ext”,其中 Base 包含基本的东西,它们不依赖于任何其他子库。然而,Ext 依赖于某些类的 Base。

每个“子库”都应该编译成一个单独的 .a 或 .so 文件,但它们都应该共享一个命名空间(TestLib)。现在我的目标是编写干净的 cmake 脚本以实现这一目标。

最后我希望能够在cmake中做这样的事情:

或者

我已将每个“子库”放在一个单独的 git 存储库中,并将它们作为子模块添加到一个新存储库中,该存储库只有一个 CMakeLists.txt,它只在每个存储库上调用 add_subdirectory。

我实现的大部分 cmake 东西,都是从 https://pabloariasal.github.io/这个很棒的教程中获得的

并且 Base 部分按预期工作(这不足为奇,因为它不依赖于其他任何东西)。

但我的问题来自 Ext 部分。为了编译它,我必须链接到 Base 库,这应该不难,并且经过一些试验和错误,我相信我会让它工作。

但我想以正确的方式去做。

我的方法是

在 TestLib.Ext 的 CMakeLists.txt 中。但这找不到,因为它没有 TestLibConfig.cmake。

这是有道理的,但我不知道在这个文件中放什么。

我试图提供一些能准确描述我的问题的代码,但由于这里发布的内容太多,我为此创建了一个 github:

https://github.com/PowerSupplyTopologies/TestLib

这应该包含所有相关代码。

这对你们中的一些人来说可能是微不足道的,但我敢打赌,有更多的人可以从这种方法中受益。

提前感谢您的任何想法。

编辑:

Base 的 CMakeLists.txt 中的库创建为:

和分机:

0 投票
0 回答
649 浏览

cmake - 为什么这个 find_package 在较新的 CMake 版本中失败?

从 CMake 3.8 升级到 3.14 时,我在项目中遇到问题。我已将其简化为以下问题。请注意,这project是之前find_package(相反我没有我所描述的问题)。

当我使用 CMake 3.8 构建时,输出如下:

使用 CMake 3.14,我得到以下输出:

我想知道为什么较新的 CMake 版本会发生这种情况(尽管 FindMPI.cmake 完全不同)?

另外,我能做些什么来解决这个问题?我需要编写自己的配置吗?

(我不能只改变 and 的顺序projectfind_package因为包装器是为编译器创建的(不是我的选择,请不要怪我))

0 投票
2 回答
784 浏览

qt - Cmake:访问 qtvirtual 键盘模块

任何人都可以做一个将 qtvirtualkeyboard 模块包含到 cmake 文件中的简单示例吗?我想访问这些类,但我不知道如何包含它。