diff options
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/cmake/vcpkg_build_msbuild.cmake | 42 |
1 files changed, 28 insertions, 14 deletions
diff --git a/scripts/cmake/vcpkg_build_msbuild.cmake b/scripts/cmake/vcpkg_build_msbuild.cmake index f4a809e7f..748b47b7b 100644 --- a/scripts/cmake/vcpkg_build_msbuild.cmake +++ b/scripts/cmake/vcpkg_build_msbuild.cmake @@ -7,6 +7,7 @@ # vcpkg_build_msbuild(PROJECT_PATH <sln_project_path> # [RELEASE_CONFIGURATION <release_configuration>] # (default = "Release") # [DEBUG_CONFIGURATION <debug_configuration>] @ (default = "Debug") +# [TARGET_PLATFORM_VERSION <windows_target_platform_version>] # [PLATFORM <platform>] # (default = "${TRIPLET_SYSTEM_ARCH}") # [OPTIONS arg1 [arg2 ...]] # [OPTIONS_RELEASE arg1 [arg2 ...]] @@ -21,9 +22,10 @@ # ``DEBUG_CONFIGURATION`` # The configuration (``/p:Configuration`` msbuild parameter) # used for Debug builds. -# ``DEBUG_CONFIGURATION`` -# The configuration (``/p:Configuration`` msbuild parameter) -# used for Debug builds. +# ``TARGET_PLATFORM_VERSION`` +# The WindowsTargetPlatformVersion (``/p:WindowsTargetPlatformVersion`` msbuild parameter) +# ``TARGET`` +# The MSBuild target to build. (``/t:<TARGET>``) # ``PLATFORM`` # The platform (``/p:Platform`` msbuild parameter) # used for the build. @@ -35,8 +37,9 @@ # The options passed to msbuild for Debug builds. # + function(vcpkg_build_msbuild) - cmake_parse_arguments(_csc "" "PROJECT_PATH;RELEASE_CONFIGURATION;DEBUG_CONFIGURATION;PLATFORM" "OPTIONS;OPTIONS_RELEASE;OPTIONS_DEBUG" ${ARGN}) + cmake_parse_arguments(_csc "" "PROJECT_PATH;RELEASE_CONFIGURATION;DEBUG_CONFIGURATION;PLATFORM;TARGET_PLATFORM_VERSION;TARGET" "OPTIONS;OPTIONS_RELEASE;OPTIONS_DEBUG" ${ARGN}) if(NOT DEFINED _csc_RELEASE_CONFIGURATION) set(_csc_RELEASE_CONFIGURATION Release) @@ -47,16 +50,29 @@ function(vcpkg_build_msbuild) if(NOT DEFINED _csc_PLATFORM) set(_csc_PLATFORM ${TRIPLET_SYSTEM_ARCH}) endif() + if(NOT DEFINED _csc_TARGET_PLATFORM_VERSION) + vcpkg_get_windows_sdk(_csc_TARGET_PLATFORM_VERSION) + endif() + if(NOT DEFINED _csc_TARGET) + set(_csc_TARGET Rebuild) + endif() + + list(APPEND _csc_OPTIONS + /t:${_csc_TARGET} + /p:Platform=${_csc_PLATFORM} + /p:VCPkgLocalAppDataDisabled=true + /p:UseIntelMKL=No + /p:WindowsTargetPlatformVersion=${_csc_TARGET_PLATFORM_VERSION} + /m + ) message(STATUS "Building ${_csc_PROJECT_PATH} for Release") file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) vcpkg_execute_required_process( - COMMAND msbuild ${_csc_PROJECT_PATH} ${_csc_OPTIONS} ${_csc_OPTIONS_RELEASE} + COMMAND msbuild ${_csc_PROJECT_PATH} /p:Configuration=${_csc_RELEASE_CONFIGURATION} - /p:Platform=${_csc_PLATFORM} - /p:VCPkgLocalAppDataDisabled=true - /p:UseIntelMKL=No - /m + ${_csc_OPTIONS} + ${_csc_OPTIONS_RELEASE} WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel LOGNAME build-${TARGET_TRIPLET}-rel ) @@ -64,12 +80,10 @@ function(vcpkg_build_msbuild) message(STATUS "Building ${_csc_PROJECT_PATH} for Debug") file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) vcpkg_execute_required_process( - COMMAND msbuild ${_csc_PROJECT_PATH} ${_csc_OPTIONS} ${_csc_OPTIONS_DEBUG} + COMMAND msbuild ${_csc_PROJECT_PATH} /p:Configuration=${_csc_DEBUG_CONFIGURATION} - /p:Platform=${_csc_PLATFORM} - /p:VCPkgLocalAppDataDisabled=true - /p:UseIntelMKL=No - /m + ${_csc_OPTIONS} + ${_csc_OPTIONS_DEBUG} WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg LOGNAME build-${TARGET_TRIPLET}-dbg ) |
