diff options
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/cmake/vcpkg_build_nmake.cmake | 43 | ||||
| -rw-r--r-- | scripts/cmake/vcpkg_install_nmake.cmake | 15 |
2 files changed, 54 insertions, 4 deletions
diff --git a/scripts/cmake/vcpkg_build_nmake.cmake b/scripts/cmake/vcpkg_build_nmake.cmake index 1eb621b0e..33f1e9d1e 100644 --- a/scripts/cmake/vcpkg_build_nmake.cmake +++ b/scripts/cmake/vcpkg_build_nmake.cmake @@ -7,8 +7,11 @@ ## vcpkg_build_nmake(
## SOURCE_PATH <${SOURCE_PATH}>
## [NO_DEBUG]
-## PROJECT_SUBPATH <${SUBPATH}>
-## PROJECT_NAME <${MAKEFILE_NAME}>
+## [PROJECT_SUBPATH <${SUBPATH}>]
+## [PROJECT_NAME <${MAKEFILE_NAME}>]
+## [PRERUN_SHELL <${SHELL_PATH}>]
+## [PRERUN_SHELL_DEBUG <${SHELL_PATH}>]
+## [PRERUN_SHELL_RELEASE <${SHELL_PATH}>]
## [OPTIONS <-DUSE_THIS_IN_ALL_BUILDS=1>...]
## [OPTIONS_RELEASE <-DOPTIMIZE=1>...]
## [OPTIONS_DEBUG <-DDEBUGGABLE=1>...]
@@ -33,6 +36,15 @@ ## ### ENABLE_INSTALL
## Install binaries after build.
##
+## ### PRERUN_SHELL
+## Script that needs to be called before build
+##
+## ### PRERUN_SHELL_DEBUG
+## Script that needs to be called before debug build
+##
+## ### PRERUN_SHELL_RELEASE
+## Script that needs to be called before release build
+##
## ### OPTIONS
## Additional options passed to generate during the generation.
##
@@ -62,7 +74,7 @@ function(vcpkg_build_nmake) cmake_parse_arguments(_bn
"ADD_BIN_TO_PATH;ENABLE_INSTALL;NO_DEBUG"
"SOURCE_PATH;PROJECT_SUBPATH;PROJECT_NAME;LOGFILE_ROOT"
- "OPTIONS;OPTIONS_RELEASE;OPTIONS_DEBUG"
+ "OPTIONS;OPTIONS_RELEASE;OPTIONS_DEBUG;PRERUN_SHELL;PRERUN_SHELL_DEBUG;PRERUN_SHELL_RELEASE"
${ARGN}
)
@@ -164,6 +176,31 @@ function(vcpkg_build_nmake) string(REPLACE "${_bn_SOURCE_PATH}" "${OBJ_DIR}" DST_DIR "${DST_DIR}")
file(COPY ${ONE_SOUCRCE_FILE} DESTINATION ${DST_DIR})
endforeach()
+
+ if (_bn_PRERUN_SHELL)
+ message("Prerunning ${CURRENT_TRIPLET_NAME}")
+ vcpkg_execute_required_process(
+ COMMAND ${_bn_PRERUN_SHELL}
+ WORKING_DIRECTORY ${OBJ_DIR}${_bn_PROJECT_SUBPATH}
+ LOGNAME "$prerun-${CURRENT_TRIPLET_NAME}"
+ )
+ endif()
+ if (BUILDTYPE STREQUAL "debug" AND _bn_PRERUN_SHELL_DEBUG)
+ message("Prerunning ${CURRENT_TRIPLET_NAME}")
+ vcpkg_execute_required_process(
+ COMMAND "${_bn_PRERUN_SHELL_DEBUG}"
+ WORKING_DIRECTORY ${OBJ_DIR}${_bn_PROJECT_SUBPATH}
+ LOGNAME "prerun-${CURRENT_TRIPLET_NAME}-dbg"
+ )
+ endif()
+ if (BUILDTYPE STREQUAL "release" AND _bn_PRERUN_SHELL_RELEASE)
+ message("Prerunning ${CURRENT_TRIPLET_NAME}")
+ vcpkg_execute_required_process(
+ COMMAND ${_bn_PRERUN_SHELL_RELEASE}
+ WORKING_DIRECTORY ${OBJ_DIR}${_bn_PROJECT_SUBPATH}
+ LOGNAME "prerun-${CURRENT_TRIPLET_NAME}-dbg"
+ )
+ endif()
if (NOT _bn_ENABLE_INSTALL)
message(STATUS "Building ${CURRENT_TRIPLET_NAME}")
diff --git a/scripts/cmake/vcpkg_install_nmake.cmake b/scripts/cmake/vcpkg_install_nmake.cmake index 0674f9ec3..a8197751c 100644 --- a/scripts/cmake/vcpkg_install_nmake.cmake +++ b/scripts/cmake/vcpkg_install_nmake.cmake @@ -9,6 +9,9 @@ ## [NO_DEBUG]
## PROJECT_SUBPATH <${SUBPATH}>
## PROJECT_NAME <${MAKEFILE_NAME}>
+## [PRERUN_SHELL <${SHELL_PATH}>]
+## [PRERUN_SHELL_DEBUG <${SHELL_PATH}>]
+## [PRERUN_SHELL_RELEASE <${SHELL_PATH}>]
## [OPTIONS <-DUSE_THIS_IN_ALL_BUILDS=1>...]
## [OPTIONS_RELEASE <-DOPTIMIZE=1>...]
## [OPTIONS_DEBUG <-DDEBUGGABLE=1>...]
@@ -29,6 +32,15 @@ ## ### NO_DEBUG
## This port doesn't support debug mode.
##
+## ### PRERUN_SHELL
+## Script that needs to be called before build
+##
+## ### PRERUN_SHELL_DEBUG
+## Script that needs to be called before debug build
+##
+## ### PRERUN_SHELL_RELEASE
+## Script that needs to be called before release build
+##
## ### OPTIONS
## Additional options passed to generate during the generation.
##
@@ -53,7 +65,7 @@ function(vcpkg_install_nmake) cmake_parse_arguments(_in
"NO_DEBUG"
"SOURCE_PATH;PROJECT_SUBPATH;PROJECT_NAME"
- "OPTIONS;OPTIONS_RELEASE;OPTIONS_DEBUG"
+ "OPTIONS;OPTIONS_RELEASE;OPTIONS_DEBUG;PRERUN_SHELL;PRERUN_SHELL_DEBUG;PRERUN_SHELL_RELEASE"
${ARGN}
)
@@ -68,6 +80,7 @@ function(vcpkg_install_nmake) vcpkg_build_nmake(LOGFILE_ROOT ENABLE_INSTALL
${NO_DEBUG}
SOURCE_PATH ${_in_SOURCE_PATH} PROJECT_SUBPATH ${_in_PROJECT_SUBPATH} PROJECT_NAME ${_in_PROJECT_NAME}
+ PRERUN_SHELL ${_in_PRERUN_SHELL} PRERUN_SHELL_DEBUG ${_in_PRERUN_SHELL_DEBUG} PRERUN_SHELL_RELEASE ${_in_PRERUN_SHELL_RELEASE}
OPTIONS ${_in_OPTIONS} OPTIONS_RELEASE ${_in_OPTIONS_RELEASE} OPTIONS_DEBUG ${_in_OPTIONS_DEBUG}
)
endfunction()
|
