ECM.ECLASS

章节: eclass-manpages (5)
更新: 2024 年 11 月
索引 返回主目录

名称

ecm.eclass - 支持使用 ECM 的 KDE Frameworks 软件包的 eclass。

描述

此 eclass 旨在简化使用 cmake 和 KDE Frameworks 的 extra-cmake-modules 创建软件包 ebuild 的过程,从而遵循其中的一些打包约定。它主要用于三个上游发布组(Frameworks、Plasma、Gear),但也适用于遵循类似约定的任何其他软件包。

此 eclass 无条件继承 cmake.eclass,其所有公共变量和辅助函数(非阶段函数)都可以视为此 eclass API 的一部分。

此 eclass 的阶段函数不打算混合和匹配使用,因此,如果覆盖了任何阶段函数,则也应调用此处的版本。

支持的 EAPIS

8

传递提供的 ECLASSES

cmake virtualx

函数

ecm_punt_kf_module <modulename>
从具有多个组件的 find_package 调用中移除 Frameworks(KF - 匹配任何一位数字的版本)模块。
ecm_punt_qt_module <modulename>
从具有多个组件的 find_package 调用中移除 Qt(匹配任何一位数字的版本)模块。
ecm_punt_bogus_dep <dependency> 或 <prefix> <dependency>
从 find_package 调用中移除指定的依赖项,可以选择性地支持具有多个组件的 find_package 的前缀。
ecm_punt_po_install
禁用对 po 子目录的处理,通常是在软件包将通用文件外包到 ${PN}-common 分离软件包时。
ecm_pkg_pretend
检查活动编译器是否满足最低版本要求。仅当定义了 KDE_GCC_MINIMAL 时才导出阶段函数。
ecm_pkg_setup
检查活动编译器是否满足最低版本要求。
ecm_src_prepare
cmake_src_prepare 的包装器,包含用于语言、测试、手册等的魔术处理的许多额外逻辑。
ecm_src_configure
cmake_src_configure 的包装器,包含用于手册、测试等的魔术处理的额外逻辑。
ecm_src_compile
cmake_src_compile 的包装器。目前没有做任何额外的事情,但作为 API 的一部分包含在内,以防将来需要。
ecm_src_test
cmake_src_test 的包装器,包含用于 dbus 和 virtualx 的魔术处理的额外逻辑。
ecm_src_install
cmake_src_install 的包装器。删除安装在 /usr/share/applications 内部的 .desktop 文件的可执行位。这是在 cmake 中调用 install() 的 PROGRAM 形式时设置的,如许多 kde.org 项目中所见。如果检测到 kde.org.eclass,如果 KDE_ORG_NAME != PN,则尝试尽力检测,然后重命名 metainfo.xml appdata 文件为包含 SLOT 的唯一名称(如果除了“0”之外还有其他名称)(基本上 KDE_ORG_NAME -> PN+SLOT)。
ecm_pkg_preinst
设置 ecm_pkg_postinst 中所需的 environment 变量。
ecm_pkg_postinst
根据需要更新各种 XDG 缓存(图标、桌面、mime)。
ecm_pkg_postrm
根据需要更新各种 XDG 缓存(图标、桌面、mime)。

ECLASS 变量

VIRTUALX_REQUIRED ?= manual
有关正确描述,请参阅 virtualx.eclass 手册页。在这里,我们将默认值重新定义为 manual,如果您的软件包需要 virtualx 用于测试,则应继续设置 VIRTUALX_REQUIRED=test。
ECM_NONGUI
默认情况下,对于除 kde-frameworks 之外的所有 CATEGORY,假设我们正在构建一个 GUI 应用程序。添加对 kde-frameworks/breeze-icons 或 kde-frameworks/oxygen-icons 的依赖,并为 pkg_preinst、pkg_postinst 和 pkg_postrm 运行 xdg.eclass 例程。如果设置为“true”,则不执行任何操作。
ECM_KDEINSTALLDIRS ?= true
假设软件包正在使用 KDEInstallDirs 宏,并将 KDE_INSTALL_USE_QT_SYS_PATHS 切换为 ON。如果设置为“false”,则不执行任何操作。
ECM_DEBUG ?= true
将“debug”添加到 IUSE。如果 !debug,则将 -DQT_NO_DEBUG 添加到 CPPFLAGS。如果设置为“false”,则不执行任何操作。
ECM_DESIGNERPLUGIN ?= false
如果设置为“true”,则将“designer”添加到 IUSE 以切换设计器插件的构建并添加必要的 BDEPEND。如果设置为“false”,则不执行任何操作。
ECM_EXAMPLES ?= false
默认情况下无条件忽略顶级 examples 子目录。如果设置为“true”,则将“examples”添加到 IUSE 以切换添加该子目录。
ECM_HANDBOOK ?= false
将接受“true”、“false”、“optional”、“forceoptional”、“forceoff”。如果设置为“false”(默认值),则不执行任何操作。否则,将“+handbook”添加到 IUSE,添加相应的依赖项,并让 KF${_KFSLOT}DocTools 从 ECM_HANDBOOK_DIR 中找到的 docbook 文件生成并安装手册。但是,如果 !handbook,则在 CMakeLists.txt 中禁用 ECM_HANDBOOK_DIR 的构建。如果设置为“optional”,则在 !handbook 时使用 -DCMAKE_DISABLE_FIND_PACKAGE_KF${_KFSLOT}DocTools=ON 进行构建。如果软件包需要 KF5KDELibs4Support,请参阅下文:如果设置为“forceoptional”,则除了上述内容之外,还从根 CMakeLists.txt 中删除 KF${_KFSLOT}DocTools 依赖项。
ECM_HANDBOOK_DIR ?= doc
指定包含相对于 ${S} 的 docbook 文件的目录,由 KF${_KFSLOT}DocTools (kdoctools_install) 处理。
ECM_PO_DIRS ?= "po poqm"
指定相对于 ${S} 的 l10n 文件的目录,由 KF${_KFSLOT}I18n (ki18n_install) 处理。如果 IUSE nls 存在且被禁用,则在 CMakeLists.txt 中禁用这些目录的构建。
ECM_QTHELP
除 kde-frameworks 之外的所有 CATEGORY 的默认值为“false”。如果设置为“true”,则将“doc”添加到 IUSE,添加相应的依赖项,让 -DBUILD_QCH=ON 在 USE=doc 时生成并安装 Qt 压缩帮助文件。如果设置为“false”,则不执行任何操作。
ECM_REMOVE_FROM_INSTALL
要从安装镜像中移除的 <paths> 数组。
ECM_TEST
将接受“true”、“false”、“forceoptional”和“forceoptional-recursive”。对于基于 KF5 的 ebuild,还接受“optional”。默认值为“false”,除了 CATEGORY=kde-frameworks,其中设置为“true”。如果设置为“false”,则不执行任何操作。对于任何其他值,将“test”添加到 IUSE。如果设置为“forceoptional”,则在 USE=!test 时忽略顶级 CMakeLists.txt 中的“autotests”、“test”、“tests”子目录。如果设置为“forceoptional-recursive”,则使 ${S} 及其下方的 *任何* CMakeLists.txt 中的 autotest(s)、unittest(s) 和 test(s) 子目录在 USE=!test 时有条件地依赖于 BUILD_TESTING。这始终旨在作为短期修复,并创建 ${T}/${P}-tests-optional.patch 以改进并提交到上游。对于基于 KF5 的 ebuild:此外,如果 USE=test,则 DEPEND 于 dev-qt/qttest:5,但在 USE=!test 时使用“forceoptional*”忽略 Qt5Test 依赖项。如果设置为“optional”,则在 USE=!test 时使用 -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Test=ON 进行构建。
KFMIN
需要 Frameworks 的最低版本。kde-frameworks 的默认值为 ${PV},其他所有内容的基线为 5.106.0。如果设置为 >=5.240,则假定为 KF6/Qt6,因此添加了 SLOT=6 依赖项,并将 -DQT_MAJOR_VERSION=6 添加到 cmake 参数。
KDE_GCC_MINIMAL
需要活动 GCC 的最低版本。这在 ecm_pkg_pretend 和 ecm_pkg_setup 中进行检查。

维护者

[email protected]

报告 Bug

请通过 https://bugs.gentoo.org/ 报告 Bug。

文件

ecm.eclass

另请参阅

ebuild(5)
https://gitweb.gentoo.org/repo/gentoo.git/log/eclass/ecm.eclass


索引

名称
描述
支持的 EAPIS
传递提供的 ECLASSES
函数
ECLASS 变量
维护者
报告 Bug
文件
另请参阅

本文件由 man2html 使用手册页创建。
时间: 2024 年 11 月 12 日格林尼治标准时间 03:27:01