三元组参考
本文介绍了三元组文件可用的可配置变量。
本文介绍可用于三元组文件的 kmpkg 变量。 三元组文件还可以包含用户定义的变量。
有关三元组功能的高级视图,请参阅三元组概念文档。
Variables
KMPKG_TARGET_ARCHITECTURE
指定目标计算机体系结构。
有效选项包括x86, x64, arm, arm64, arm64ec, s390x, ppc64le, riscv32, riscv64, loongarch32, loongarch64, mips64, 和 wasm32.
KMPKG_CRT_LINKAGE
指定所需的 CRT 链接(对于 MSVC)。
有效选项为 dynamic 和 static。
KMPKG_LIBRARY_LINKAGE
指定首选库链接。
有效选项为 dynamic 和 static。 如果库不支持首选链接类型,则可以忽略此设置。
KMPKG_BUILD_TYPE
你可以将此值设置为 release 以构建端口的仅发布版本。 默认情况下,此值为空。 当此值为空时,kmpkg 将构建端口的发布和调试配置。
KMPKG_CMAKE_SYSTEM_NAME
指定目标平台。
有效选项包括任何 CMake 系统名称,例如:
- 空(出于旧原因的 Windows 桌面)
WindowsStore(通用 Windows 平台)MinGW(适用于 Windows 的极简 GNU)Darwin(Mac OSX)iOS(iOS)Linux(Linux)Emscripten(WebAssembly)
KMPKG_CMAKE_SYSTEM_VERSION
指定目标平台系统版本。
此字段是可选字段,如果存在,将作为 CMAKE_SYSTEM_VERSION 传递到版本中。
另请参阅 CMake 文档了解 CMAKE_SYSTEM_VERSION
KMPKG_CHAINLOAD_TOOLCHAIN_FILE
指定要使用的备用 CMake 工具链文件。
如果设置,将替代所有其他编译器检测逻辑。 默认情况下,工具链文件是从 scripts/toolchains/ 适合平台选择的。
另请参阅 CMake 文档了解工具链文件。
KMPKG_CXX_FLAGS
不使用 KMPKG_CHAINLOAD_TOOLCHAIN_FILE 时,设置要使用的其他编译器标志。
此选项还具有特定于配置的标志和 C 语言标志的窗体:
KMPKG_CXX_FLAGSKMPKG_CXX_FLAGS_DEBUGKMPKG_CXX_FLAGS_RELEASEKMPKG_C_FLAGSKMPKG_C_FLAGS_DEBUGKMPKG_C_FLAGS_RELEASE
如果您设置了KMPKG_CXX_FLAGS,则还必须设置KMPKG_C_FLAGS,反之亦然。
对于特定于配置的标志也是如此。这些 变量接受一个以空格分隔的编译器标志字符串:
set(KMPKG_CXX_FLAGS "/wd4996 -D_CRT_SECURE_NO_WARNINGS")
set(KMPKG_C_FLAGS "/wd4996 -D_CRT_SECURE_NO_WARNINGS")
KMPKG_LINKER_FLAGS
当在没有 KMPKG_CHAINLOAD_TOOLCHAIN_FILE 的情况下生成动态库和可执行文件时,设置要使用的其他链接器标志。
此选项还具有特定于配置的标志的窗体:
KMPKG_LINKER_FLAGSKMPKG_LINKER_FLAGS_DEBUGKMPKG_LINKER_FLAGS_RELEASE
KMPKG_MESON_CONFIGURE_OPTIONS
设置要追加的其他 Meson 配置选项以配置命令(在 kmpkg_configure_meson 中)。
此字段可选。
还可以当作特定于版本类型的 KMPKG_MESON_CONFIGURE_OPTIONS_DEBUG 和 KMPKG_MESON_CONFIGURE_OPTIONS_RELEASE 变量来使用。
KMPKG_MESON_NATIVE_FILE_RELEASE
在跨/原生文件提供另一个配置依赖文件作为 meson。 可用于替代 kmpkg 提供的设置,因为 kmpkg 生成的跨/原生文件传递之后会传递它。
在提供你自己的 build_machine 和 host_machine 条目时特别管用。
KMPKG_MESON_NATIVE_FILE_DEBUG
请参阅 KMPKG_MESON_NATIVE_FILE_RELEASE.
KMPKG_MESON_CROSS_FILE_RELEASE
请参阅 KMPKG_MESON_NATIVE_FILE_RELEASE.
KMPKG_MESON_CROSS_FILE_DEBUG
请参阅 KMPKG_MESON_NATIVE_FILE_RELEASE.
KMPKG_CMAKE_CONFIGURE_OPTIONS
设置要追加的其他 CMake 配置选项以配置命令(在 kmpkg_cmake_configure) 中)。
此字段可选。
还可以当作特定于版本类型的 KMPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG 和 KMPKG_CMAKE_CONFIGURE_OPTIONS_RELEASE 变量来使用。
KMPKG_CONFIGURE_MAKE_OPTIONS
设置要追加的其他 automake/autoconf 配置选项以配置命令(在 kmpkg_configure_make 中)。
此字段可选。
例如,用于跳过某些可能失败的 libtool 检查:
set(KMPKG_CONFIGURE_MAKE_OPTIONS "lt_cv_deplibs_check_method=pass_all")
还可以当作特定于版本类型的 KMPKG_CONFIGURE_MAKE_OPTIONS_DEBUG 和 KMPKG_CONFIGURE_MAKE_OPTIONS_RELEASE 变量来使用。
KMPKG_HASH_ADDITIONAL_FILES
要包含在包 ABI 哈希计算中的文件列表。
此字段可选。
声明影响包内容的任何文件,并应将其纳入 ABI 哈希计算中。 例如:
自定义三元组和工具链中(通过 include(filepath))包含的文件。
在 KMPKG_MESON_(NATIVE|CROSS)_FILE_<CONFIG> 中定义的文件
仅考虑文件的内容和顺序,文件的路径不会影响 ABI 哈希。
set(KMPKG_HASH_ADDITIONAL_FILES
"${CMAKE_CURRENT_LIST_DIR}/file1.cmake"
"${CMAKE_CURRENT_LIST_DIR}/meson-cross.txt"
)
KMPKG_POST_PORTFILE_INCLUDES
执行 portfile.cmake 后要包括的 cmake 文件的列表。
此字段可选。
文件的内容和顺序用于 ABI 哈希,文件的路径不会影响 ABI 哈希。
set(KMPKG_POST_PORTFILE_INCLUDES
"${CMAKE_CURRENT_LIST_DIR}/file1.cmake"
"${CMAKE_CURRENT_LIST_DIR}/file2.cmake"
)
KMPKG_DEP_INFO_OVERRIDE_VARS
本节介绍 kmpkg 的实验性功能,该功能可能随时更改或删除。
替换三元组 支持的 术语的默认计算列表。
如果设置,此选项会替代用于进行平台表达式评估的默认术语集。
有关详细信息,请参阅 "supports" 清单文件文档。
此列表通过 kmpkg_get_dep_info 帮助程序函数提取。
KMPKG_DISABLE_COMPILER_TRACKING
不建议启用此选项,因为它可能会导致还原的二进制包中 ABI 不兼容。 请参阅二进制缓存文档了解详细信息
如果此选项设置为 TRUE、ON 或 1,则不会将编译器作为包 ABI 的一部分进行跟踪。
这会导致二进制缓存重复使用更旧或更新的编译器中的版本。