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
索引
本文件由 man2html 使用手册页创建。
时间: 2024 年 11 月 12 日格林尼治标准时间 03:27:01