CMAKE.ECLASS
部分: eclass-manpages (5)更新: 2024 年 11 月
索引 返回主要内容
名称
cmake.eclass - 基于 cmake 的软件包的通用 ebuild 函数描述
cmake eclass 使得为基于 cmake 的软件包创建 ebuild 变得更加容易。它提供了所有继承的特性(DOCS、HTML_DOCS、PATCHES)以及源外构建(默认)和源内构建。支持的 EAPIS
7 8传递提供的 ECLASSES
ninja-utils函数
- cmake_run_in <工作目录> <运行命令>
- 为函数或命令设置所需的 工作目录。
- cmake_comment_add_subdirectory <子目录>
- 在当前目录的 CMakeLists.txt 中注释掉一个或多个 add_subdirectory 调用
- cmake_use_find_package <USE 标志> <软件包名称>
- 基于 use_enable。参见 ebuild(5)。
`cmake_use_find_package foo LibFoo` 如果 foo 被启用,则回显 -DCMAKE_DISABLE_FIND_PACKAGE_LibFoo=OFF,如果被禁用,则回显 -DCMAKE_DISABLE_FIND_PACKAGE_LibFoo=ON。这可用于使 find_package 可选。
- cmake_src_prepare
- 应用 ebuild 和用户补丁。*必须*运行,否则 cmake_src_configure 会失败。
- MYCMAKEARGS
- 用户控制的环境变量,其中包含要传递给 cmake_src_configure 中 cmake 的参数。
- cmake_src_configure
- 使用 cmake 配置的一般函数。默认行为是启动源外构建。通过从可选预定义的本地 mycmakeargs bash 数组中读取来将参数传递给 cmake。
src_configure() { local mycmakeargs=( $(cmake_use_find_package foo LibFoo) ) cmake_src_configure }
- cmake_src_compile
- 使用 cmake 编译的一般函数。所有参数都传递给 cmake_build。
- cmake_build
- 构建软件包的函数。自动检测构建类型。所有参数都传递给 eninja(默认)或 emake,具体取决于 CMAKE_MAKEFILE_GENERATOR 的值。
- cmake_src_test
- 测试软件包的函数。自动检测构建类型。
- cmake_src_install
- 安装软件包的函数。自动检测构建类型。
ECLASS 变量
- BUILD_DIR
- 构建目录,所有 cmake 处理的文件应该在此目录中生成。对于源内构建,它固定为 ${CMAKE_USE_DIR}。对于源外构建,它可以被覆盖,默认情况下它使用 ${CMAKE_USE_DIR}_build(在 EAPI-7 中:${WORKDIR}/${P}_build)。
- CMAKE_BINARY ?= cmake
- Eclass 可以使用与系统提供的不同的 cmake 二进制文件。
- CMAKE_BUILD_TYPE ?= RelWithDebInfo
- 设置为覆盖默认的 CMAKE_BUILD_TYPE。仅对已知使用“if (CMAKE_BUILD_TYPE MATCHES xxx)”的软件包有用。如果即将设置 - 需要在调用 cmake_src_configure 之前设置。
默认值为 RelWithDebInfo,因为这最不可能附加不希望的标志。但是,您可能仍然需要 sed CMake 文件或选择不同的构建类型以获得理想的结果。
在 EAPI 7 中,默认值为 Gentoo 的非标准构建类型。
- CMAKE_IN_SOURCE_BUILD
- 设置为启用源内构建。
- CMAKE_MAKEFILE_GENERATOR ?= ninja (在 INHERIT 之前设置)
- 指定 cmake 要使用的 makefile 生成器。在这一点上,只支持“emake”和“ninja”。默认设置为“ninja”。
- CMAKE_REMOVE_MODULES_LIST (在 INHERIT 之前设置)
- 在 src_prepare 期间要从 ${CMAKE_USE_DIR}(在 EAPI-7 中:${S})中删除的 .cmake 模块数组,以便强制软件包使用系统版本。默认情况下,包含“FindBLAS”和“FindLAPACK”。设置为空以完全禁用删除模块。
- CMAKE_USE_DIR
- 设置使用 cmake 工作的目录,例如当应用程序使用 autotools 并且只需要使用 cmake 来完成一个插件时。默认情况下,它使用当前工作目录(在 EAPI-7 中:${S})。
- CMAKE_VERBOSE ?= ON (用户变量)
- 设置为 OFF 以禁用编译期间的详细消息
- CMAKE_WARN_UNUSED_CLI ?= yes
- 警告有关在命令行声明但未使用的变量。可能会给出误报。“no”表示禁用(默认值),其他任何值表示启用。
- CMAKE_EXTRA_CACHE_FILE (用户变量)
- 指定要传递给 cmake 的额外缓存文件。这是 EXTRA_ECONF 对 econf 的模拟,用于在交叉编译时传递 TRY_RUN 结果。应该由用户在每个软件包的基础上设置,位于 /etc/portage/package.env 中。
- CMAKE_QA_SRC_DIR_READONLY (用户变量)
- 在运行 cmake_src_prepare 后,将 ${CMAKE_USE_DIR}(在 EAPI-7 中:${S})设置为只读。这是一个用户标志,绝不应该在 ebuild 中设置。有助于提高对写入源代码树的构建系统的 QA。
- CMAKE_SKIP_TESTS
- 运行 CTest 时应跳过的测试数组。
作者
Tomáš Chvátal <[email protected]>Maciej Mrozowski <[email protected]>
(未公开的贡献者)
原始作者: Zephyrus ([email protected])
维护者
[email protected][email protected]
报告错误
请通过 https://bugs.gentoo.org/ 报告错误文件
cmake.eclass参见
ebuild(5)https://gitweb.gentoo.org/repo/gentoo.git/log/eclass/cmake.eclass
索引
本文档由 man2html 创建,使用手册页。
时间: 2024 年 11 月 12 日 03:27:01 GMT