vcpkg_msbuild_install
Build and install a MSBuild project.
This function replaces vcpkg_install_msbuild
.
vcpkg_msbuild_install
will generate a props file and target file containing the CMake toolchain build flags and include it via /p:ForceImportAfterCpp(Props|Targets)
Usage
vcpkg_install_msbuild(
SOURCE_PATH <${SOURCE_PATH}>
PROJECT_SUBPATH <port.sln>
[ADD_BIN_TO_PATH]
[NO_INSTALL]
[NO_TOOLCHAIN_PROPS]
[CLEAN]
[RELEASE_CONFIGURATION <Release>]
[DEBUG_CONFIGURATION <Debug>]
[TARGET <Build>]
[PLATFORM <Win32>]
[OPTIONS </p:ZLIB_INCLUDE_PATH=X>...]
[OPTIONS_RELEASE </p:ZLIB_LIB=X>...]
[OPTIONS_DEBUG </p:ZLIB_LIB=X>...]
[DEPENDENT_PKGCONFIG <zlib>]
[ADDITIONAL_LIBS <getopt.lib>]
[ADDITIONAL_LIBS_DEBUG <zlibd.lib>]
[ADDITIONAL_LIBS_RELEASE <zlib.lib>]
)
To use this function, you must depend on the helper port vcpkg-msbuild
:
"dependencies": [
{
"name": "vcpkg-msbuild",
"host": true
}
]
Parameters
SOURCE_PATH
The path to the root of the source tree.
Because MSBuild uses in-source builds, the source tree is copied into a temporary location for the build. This parameter is the base for that copy and forms the base for all XYZ_SUBPATH options.
PROJECT_SUBPATH
The subpath to the solution (.sln
) or project (.vcxproj
) file relative to SOURCE_PATH
.
ADD_BIN_TO_PATH
Adds the configuration dependent binary path to the PATH
environment variable before the build.
This is required to run tools built by the project itself. The PATH
environment variable is not be mutated if VCPKG_CROSSCOMPILING
is true
NO_TOOLCHAIN_PROPS
Do not generate the toolchain properties via cmake. This automatically disables any vcpkg integration.
NO_INSTALL
Do not automatically try to install any .lib|.dll|.pdb|.exe files found in the build dir.
CLEAN
Indicates that the intermediate files should be removed after installation.
RELEASE_CONFIGURATION
The configuration (/p:Configuration
msbuild parameter) used for Release builds. Defaults to: Release
DEBUG_CONFIGURATION
The configuration (/p:Configuration
msbuild parameter) used for Debug builds. Defaults to: Debug
TARGET
The MSBuild target to build (/t:<TARGET>
). Defaults to: Rebuild
PLATFORM
The platform (/p:Platform
msbuild parameter) used for the build.
This defaults to a value mapping VCPKG_TARGET_ARCHITECTURE
to the default values Visual Studio uses when creating a .vcxproj
:
x86
becomesWin32
x64
becomesx64
arm
becomesARM
arm64
becomesarm64
When passing a .sln
rather than a .vcxproj
, this may need to be set back to ${VCPKG_TARGET_ARCHITECTURE}
to match the Platform strings used by solutions.
OPTIONS
Additional options to pass to MSBuild for all builds.
OPTIONS_RELEASE
Additional options passed to msbuild for Release builds. These are in addition to OPTIONS
.
OPTIONS_DEBUG
Additional options passed to msbuild for Debug builds. These are in addition to OPTIONS
.
DEPENDENT_PKGCONFIG
A list of pkg-config
dependencies to add to the build. This adds all required build flags (includes/definitions/libraries) to the build properties.
ADDITIONAL_LIBS
Additional libraries to add to the project.
ADDITIONAL_LIBS_DEBUG
Additional libraries to add to msbuild for Release builds. These are in addition to ADDITIONAL_LIBS
.
ADDITIONAL_LIBS_RELEASE
Additional libraries to add to msbuild for Debug builds. These are in addition to ADDITIONAL_LIBS
.