端口策略可以在portfile.cmake
中设置为“已禁用”(默认值)或“已启用”。 例如:
set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled)
VCPKG_POLICY_ALLOW_DEBUG_INCLUDE
禁用 vcpkg 对 ports 不应创建的 debug/include 目录的生成后检查。
VCPKG_POLICY_ALLOW_DEBUG_SHARE
禁用 vcpkg 对 ports 不应创建的 debug/share 目录的生成后检查。
VCPKG_POLICY_ALLOW_DLLS_IN_LIB
禁用 vcpkg 对安装到“lib”目录而非“bin”目录的 DLL 进行生成后检查。
VCPKG_POLICY_ALLOW_EMPTY_FOLDERS
禁用 vcpkg 对移植创建的空目录的生成后检查。 空目录在语义上不被视为端口安装的一部分,并且不能表示多个二进制缓存后端。
VCPKG_POLICY_ALLOW_EXES_IN_BIN
禁用 vcpkg 对“bin”目录中不应存在的 exe 文件的生成后检查。 生成工具应移动到工具目录,可能使用 vcpkg_copy_tools
。
VCPKG_POLICY_ALLOW_KERNEL32_FROM_XBOX
当端口请求以 XBox 为目标时,禁用 vcpkg 的生成后检查以与 kernel32 链接。 与 kernel32 链接的二进制文件无法在没有 kernel32.dll 的 XBox 上运行。
VCPKG_POLICY_ALLOW_OBSOLETE_MSVCRT
禁用旧 C 运行时库的 vcpkg 生成后检查。
VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS
禁用 vcpkg 的生成后检查,获取操作系统和标准库通常保留的标头。
VCPKG_POLICY_CMAKE_HELPER_PORT
标记端口旨在向其他端口提供 CMake 函数,并且依赖的端口应加载此端口设置的 vcpkg_port_config.cmake
。
VCPKG_POLICY_DLLS_IN_STATIC_LIBRARY
当三元组请求静态构建时,禁用 vcpkg 对端口生成的 DLL 的生成后检查。
VCPKG_POLICY_DLLS_WITHOUT_EXPORTS
禁用 vcpkg 对无导出 DLL 的生成后检查。 没有导出的 DLL 通常对调用者没有用处。 要在 Windows 上提供良好的动态链接体验,需要库定义 DLL 接口。 另请参阅维护者指南中的 Do not add CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS
。
VCPKG_POLICY_DLLS_WITHOUT_LIBS
禁用 vcpkg 对未导入库生成的 DLL 的生成后检查。 这些 DLL 可能更难使用,因为该 DLL 导出的函数对于链接器来说是不可见的。
VCPKG_POLICY_EMPTY_INCLUDE_FOLDER
禁用 vcpkg 对空包含目录的生成后检查。 空包含目录通常意味着标头未正确安装。
VCPKG_POLICY_EMPTY_PACKAGE
禁用所有生成后检查,并阻止某些包类型的 d 包中包含vcpkg export
端口。
VCPKG_POLICY_MISMATCHED_NUMBER_OF_BINARIES
禁用 vcpkg 的构建后检查,以查找匹配数量的发布和调试二进制文件。
VCPKG_POLICY_ONLY_RELEASE_CRT
指示端口仅安装使用发布 C 运行时库的组件,使用 debug C Runtime 库链接是一个错误。 另请参阅 VCPKG_POLICY_SKIP_CRT_LINKAGE_CHECK
。
VCPKG_POLICY_SKIP_ABSOLUTE_PATHS_CHECK
禁用 vcpkg 对安装文件中嵌入的绝对路径的生成后检查。 绝对路径通常会中断二进制缓存,因为已安装的树在不同的 vcpkg 实例中可能有不同的根。
VCPKG_POLICY_SKIP_ALL_POST_BUILD_CHECKS
禁用所有 vcpkg 的生成后检查。
VCPKG_POLICY_SKIP_APPCONTAINER_CHECK
禁用 vcpkg 对 appcontainer 位进行的生成后检查,即使三体请求以 UWP 为目标也是如此。
VCPKG_POLICY_SKIP_ARCHITECTURE_CHECK
禁用 vcpkg 的编译后检查功能,即检查端口创建的二进制文件是否符合三元组所要求的体系结构。
VCPKG_POLICY_SKIP_COPYRIGHT_CHECK
禁用 vcpkg 的生成后检查端口安装一个版权文件,该文件旨在包含使用该端口的许可信息。
VCPKG_POLICY_SKIP_CRT_LINKAGE_CHECK
禁用 vcpkg 的生成后检查,以便完全链接到正确的 C 运行时库。
VCPKG_POLICY_SKIP_DUMPBIN_CHECKS
此策略不起作用。 在 vcpkg 的旧副本中,它旨在通过禁用所需的生成后检查来解决未提供dumpbin
实用工具(如 MinGW)的环境。 在 vcpkg 的当前副本中,现在直接实现所提供的 dumpbin
功能,而无需调用 dumpbin
。
VCPKG_POLICY_SKIP_LIB_CMAKE_MERGE_CHECK
禁用 vcpkg 的编译后检查功能,以防止 CMake 配置的发布配置和调试配置合并为一个配置。这通常是因为忘记调用vcpkg_cmake_config_fixup
而引起的。
VCPKG_POLICY_SKIP_MISPLACED_REGULAR_FILES_CHECK
禁用 vcpkg 对安装在不该出现常规文件的位置的常规文件的生成后检查。 搜索的位置应仅包含目录。
VCPKG_POLICY_SKIP_PKGCONFIG_CHECK
禁用在正确位置安装的 pkgconfig (.pc
) 文件的生成后检查。 如果未实际提供,则pkgconf
找不到未正确安装的.pc
或pkg-config
或播发体系结构独立性。
VCPKG_POLICY_SKIP_USAGE_INSTALL_CHECK
禁用 vcpkg 的生成后检查,以查找忘记的使用文本。 当端口包含名为 usage
但不存在 ${CURRENT_PACKAGES_DIR}/share/${PORT}/usage
的文件时,会触发此情况,指示它很可能打算安装但没有安装。