diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/scripts/cmake/vcpkg_build_ninja.cmake | |
Diffstat (limited to 'vcpkg/scripts/cmake/vcpkg_build_ninja.cmake')
| -rw-r--r-- | vcpkg/scripts/cmake/vcpkg_build_ninja.cmake | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/vcpkg/scripts/cmake/vcpkg_build_ninja.cmake b/vcpkg/scripts/cmake/vcpkg_build_ninja.cmake new file mode 100644 index 0000000..a06f350 --- /dev/null +++ b/vcpkg/scripts/cmake/vcpkg_build_ninja.cmake @@ -0,0 +1,30 @@ +function(z_vcpkg_build_ninja_build config targets) + message(STATUS "Building (${config})...") + vcpkg_execute_build_process( + COMMAND "${NINJA}" -C "${CURRENT_BUILDTREES_DIR}/${config}" ${targets} + WORKING_DIRECTORY "${SOURCE_PATH}" + LOGNAME "build-${config}" + ) +endfunction() + + +function(vcpkg_build_ninja) + cmake_parse_arguments(PARSE_ARGV 0 arg "" "" "TARGETS") + + if(DEFINED arg_UNPARSED_ARGUMENTS) + message(WARNING "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") + endif() + if(NOT DEFINED arg_TARGETS) + set(arg_TARGETS "") + endif() + + vcpkg_find_acquire_program(NINJA) + + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + z_vcpkg_build_ninja_build("${TARGET_TRIPLET}-dbg" "${arg_TARGETS}") + endif() + + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + z_vcpkg_build_ninja_build("${TARGET_TRIPLET}-rel" "${arg_TARGETS}") + endif() +endfunction() |