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


索引

名称
描述
支持的 EAPIS
传递提供的 ECLASSES
函数
ECLASS 变量
作者
维护者
报告错误
文件
参见

本文档由 man2html 创建,使用手册页。
时间: 2024 年 11 月 12 日 03:27:01 GMT