kmpkg_install_msbuild
此函数已被弃用,建议改用
kmpkg_msbuild_install。
构建并安装基于 MSBuild 的项目。该函数替代了 kmpkg_build_msbuild()。
用法
kmpkg_install_msbuild(
SOURCE_PATH <${SOURCE_PATH}>
PROJECT_SUBPATH <port.sln>
[INCLUDES_SUBPATH <include>]
[LICENSE_SUBPATH <LICENSE>]
[RELEASE_CONFIGURATION <Release>]
[DEBUG_CONFIGURATION <Debug>]
[TARGET <Build>]
[TARGET_PLATFORM_VERSION <10.0.15063.0>]
[PLATFORM <Win32>]
[PLATFORM_TOOLSET <v143>]
[OPTIONS </p:ZLIB_INCLUDE_PATH=X>...]
[OPTIONS_RELEASE </p:ZLIB_LIB=X>...]
[OPTIONS_DEBUG </p:ZLIB_LIB=X>...]
[USE_KMPKG_INTEGRATION]
[ALLOW_ROOT_INCLUDES | REMOVE_ROOT_INCLUDES]
)
参数
SOURCE_PATH
源码树的根目录路径。
由于 MSBuild 采用“源码内构建(in-source builds)”模式,源码树会被复制到临时目录中进行构建。该参数是复制操作的基准路径,同时也是所有 XYZ_SUBPATH 类参数的路径基准。
USE_KMPKG_INTEGRATION
为项目构建应用常规的 integrate install 集成逻辑。
默认情况下,通过该命令构建的项目不会自动链接库文件,也不会自动配置头文件路径。
PROJECT_SUBPATH
相对于 SOURCE_PATH 的解决方案文件(.sln)或项目文件(.vcxproj)的子路径。
LICENSE_SUBPATH
相对于 SOURCE_PATH 的许可证文件子路径。
INCLUDES_SUBPATH
相对于 SOURCE_PATH 的头文件目录子路径。
该参数需指定目录路径,且不能以斜杠 / 结尾。
ALLOW_ROOT_INCLUDES
允许保留根级头文件(例如 include/zlib.h)。
REMOVE_ROOT_INCLUDES
移除根级非头文件(例如 include/Makefile.am)。
SKIP_CLEAN
指定不删除构建过程中生成的中间文件。
使用该选项的端口,后续需手动调用 kmpkg_clean_msbuild() 完成清理。
RELEASE_CONFIGURATION
Release 构建使用的配置(对应 MSBuild 参数 /p:Configuration)。
DEBUG_CONFIGURATION
Debug 构建使用的配置(对应 MSBuild 参数 /p:Configuration)。
TARGET_PLATFORM_VERSION
Windows 目标平台版本(对应 MSBuild 参数 /p:WindowsTargetPlatformVersion)。
TARGET
要构建的 MSBuild 目标(对应参数 /t:<TARGET>)。
PLATFORM
构建使用的平台(对应 MSBuild 参数 /p:Platform)。
该参数默认值会根据 KMPKG_TARGET_ARCHITECTURE 映射为 Visual Studio 创建 .vcxproj 时的默认值:
x86→Win32x64→x64arm→ARMarm64→arm64
若传入的是 .sln 解决方案文件(而非 .vcxproj 项目文件),可能需要将该参数设回 ${KMPKG_TARGET_ARCHITECTURE},以匹配解决方案中使用的平台字符串。
PLATFORM_TOOLSET
构建使用的平台工具集(对应 MSBuild 参数 /p:PlatformToolset)。
OPTIONS
传递给所有构建模式(Release/Debug)的额外 MSBuild 选项。
OPTIONS_RELEASE
仅传递给 Release 构建的额外 MSBuild 选项(会追加到 OPTIONS 之后)。
OPTIONS_DEBUG
仅传递给 Debug 构建的额外 MSBuild 选项(会追加到 OPTIONS 之后)。