问题标签 [cmake-language]
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 - 自定义目标的属性
我add_cusmtom_target
用来进行自定义构建,但是这个目标有什么属性?尤其是如何获取目标中列出的依赖项列表:
D
找不到,如何获取自定义目标的属性?
cmake - CMake 的动态源列表
我尝试配置我的 CMake 项目,以便它可以接受动态源列表。但由于某种原因,我从文件函数中得到了空列表。所以我尝试以两种方式执行相同的操作:
[1] 静态列表(不需要的方式)
在这里我得到了我需要的文件列表。
[2] 动态列表(即我想做的)
尽管message(${Sources})
打印出相同的字符串,但由于某种原因,我在这里得到了空列表${VARIANT_A}
。
那么我做错了什么?
cmake - 在 CMake (cmake-gui) 中使用 ComboBoxes 约束值
我遇到了 CMake 项目,其中 cmake-gui 中的缓存条目显示为组合框。但是我找不到这个项目。如何使用组合框约束的值将缓存条目添加到 CMakeLists.txt?
cmake - cmake 使用通配符作为 find_library NAMES 选项
在 cmake 中找到我们使用的库find_library(MyLibrary_LIBRARY NAMES mylibrary mylibrary10 mylibrary11 HINTS /path/to/library)
。mylibrary.so
该命令mylibrary10.so
告诉cmakemylibrary11.so
在.lib
每个HINTS
. 如果找到上述任何文件,则文件的路径将写入MyLibrary_LIBRARY
变量。但是,由于我正在使用的库之一经常被更新——因此该库很快就会被重命名为mylibrary20.so
或mylibrary21.so
——我需要经常更新 cmake 脚本以反映更改。我想知道是否有一种方法可以在这里使用通配符,以便 cmake 会自动在mylibraryXX.so
这里找到,这XX
意味着两位数。
根据文档(https://cmake.org/cmake/help/latest/command/find_library.html),这似乎不受支持。如果是这种情况,是否还有其他解决方法?(创建从mylibraryXX.so
to的链接mylibrary.so
对我来说不太有效,因为我无法控制库。)
c++ - GLOB_RECURSE 抓取错误的源文件
我的源项目目录是这样的,
我需要用源 a.cpp 和 b.cpp 制作一个可执行文件,
我希望这会将 a.cpp 和 b.cpp 作为唯一的源文件,但是当我打印时
它也拾取了 test.cpp,我不知道为什么会这样。我的理解是 ${CMAKE_CURRENT_SOURCE_DIR}/src/*/ *.cpp,在这个语句中由于通配符 * 它会遍历 src 文件夹的每个子目录,然后使用 *.cpp 它会在每个子目录中附加所有 cpp 文件这些子目录。
cmake - 即使 BUILD_SHARED_LIBS 设置为 ON,如何强制 cmake 静态链接特定库
即使我希望其他库动态链接,如何强制库静态链接。我想动态链接我的大部分库,但我的一个库需要静态链接。有没有一种方法可以强制到该库的任何链接都是静态的,同时允许其他库动态链接?
请注意,以上是伪代码,因此修复代码中的“错误”不会解决我的问题。我只想知道是否有办法强制库始终静态链接,即使 CMake 中的其他库正在动态链接。
c++ - 如何在cmake中的项目之间添加_dependencies
我有一个如上所述的 CMakeLists.txt。正在尝试构建项目 abc。但要构建它,我还需要“a_certain_source_file.cpp”,它是来自另一个名为 xyz 的项目的自动生成的源文件。如果 xyz 是从同一个 CMakeLists.txt 构建的,那么 add_dependencies 工作不会有问题。我无法通过我现在拥有 CMakeLists.txt 的方式解决对“a_certain_source_file.cpp”的依赖。任何可以提供帮助的 CMake 爱好者或专家?
我在这里也看到了一个密切的匹配 - cmake: add_dependencies 不适用于外部项目,但我不需要下载任何东西。所以不确定这是否是我需要的。
c - 如何创建需要外部头文件的 cmake 库
我觉得我错过了这个的一些关键想法。
我有一个库,我想为其创建一个 CMakeLists.txt 文件。我想将它与不同的应用程序链接起来。
该库需要conf.h
定义一个文件。应用程序必须提供这一点。图书馆期待它。这种关系叫什么?
我目前的解决方案CMakeLists.txt
是有一个变量,如:
然后让应用程序定义 CONF_DIR。这很不酷,因为我不能有多个应用程序链接它。
唯一的另一种选择是将整个源库的副本保留在应用程序文件夹中,这也很不酷。
我希望最大限度地提高可重用性。我该如何处理?
旁注:对于任何熟悉的人,有问题的库是 STM32Cube 的 HAL 库,讨厌的文件是stm32h7xx_hal_conf.h
.
c++ - 为什么从并行文件夹CMake中找不到文件
为了让我的 .cpp 和 .h 文件稍微整理一下,等待他们的职责,我决定将它们放入单独的文件夹中,我使用了以下结构:
根
|
-CMakeLists.txt [rootCmakeList]
src
|
-main.cpp
.......|
....... 数学
.......|
.......-CMakeLists.txt[mathCmakeList]
.......-Algebra.h
.......-Algebra.cpp
....... XML [xmlCmakeList]
... ....|
.......-CMakeLists.txt
.......-AwesomeXML.h
.......-AwesomeXML.cpp
[rootCmakeList] 看起来:
[mathCmakeList] 看起来:
[xmlCmakeList] 看起来:
到目前为止一切顺利,没有任何问题。但是如果我想#include Algebra.h 到 AweseomeXML.cpp 我找不到文件。
老实说,我什至不确定 cmake 命令add_library和target_link_libraries在这里是否真的有意义,因为我不想创建自己的库,只是想整理一下我的文件,等待他们的主题。
c - 如何在cmake中根据条件包含目录
我正在使用windriver编译。我按照以下步骤