diff --git a/ports/vcpkg-tool-ninja/portfile.cmake b/ports/vcpkg-tool-ninja/portfile.cmake index cc615bdbfd2c9c..bcf08dc8d39f61 100644 --- a/ports/vcpkg-tool-ninja/portfile.cmake +++ b/ports/vcpkg-tool-ninja/portfile.cmake @@ -1,18 +1,6 @@ -set(VCPKG_POLICY_EMPTY_PACKAGE enabled) +set(VCPKG_POLICY_CMAKE_HELPER_PORT enabled) -set(program NINJA) -set(program_version 1.10.2) -set(program_name "ninja") -set(search_names "ninja") -set(apt_package_name "ninja-build") -set(brew_package_name "ninja-build") -set(paths_to_search "${CURRENT_PACKAGES_DIR}/tools/ninja") -set(supported_on_unix ON) -set(version_command --version) -set(extra_search_args EXACT_VERSION_MATCH) - -if(NOT "${program}") - vcpkg_from_github( +vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ninja-build/ninja REF 170c387a7461d476523ae29c115a58f16e4d3430 @@ -20,62 +8,14 @@ if(NOT "${program}") HEAD_REF master PATCHES PR2056.diff # Long path support windows ) - # This copied from vcpkg_configure_cmake to find a generator which is not ninja! - set(generator_arch "") - if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) - if("${VCPKG_PLATFORM_TOOLSET}" STREQUAL "v120" AND NOT "${VCPKG_TARGET_ARCHITECTURE}" STREQUAL "arm64") - set(generator "Visual Studio 12 2013") - elseif("${VCPKG_PLATFORM_TOOLSET}" STREQUAL "v140" AND NOT "${VCPKG_TARGET_ARCHITECTURE}" STREQUAL "arm64") - set(generator "Visual Studio 14 2015") - elseif("${VCPKG_PLATFORM_TOOLSET}" STREQUAL "v141") - set(generator "Visual Studio 15 2017") - elseif("${VCPKG_PLATFORM_TOOLSET}" STREQUAL "v142") - set(generator "Visual Studio 16 2019") - elseif("${VCPKG_PLATFORM_TOOLSET}" STREQUAL "v143") - set(generator "Visual Studio 17 2022") - endif() - - if("${VCPKG_TARGET_ARCHITECTURE}" STREQUAL "x86") - set(generator_arch "Win32") - elseif("${VCPKG_TARGET_ARCHITECTURE}" STREQUAL "x64") - set(generator_arch "x64") - elseif("${VCPKG_TARGET_ARCHITECTURE}" STREQUAL "arm") - set(generator_arch "ARM") - elseif("${VCPKG_TARGET_ARCHITECTURE}" STREQUAL "arm64") - set(generator_arch "ARM64") - endif() - if("${generator}" STREQUAL "" OR "${generator_arch}" STREQUAL "") - message(FATAL_ERROR - "Unable to determine appropriate generator for triplet ${TARGET_TRIPLET}: - platform toolset: ${VCPKG_PLATFORM_TOOLSET} - architecture : ${VCPKG_TARGET_ARCHITECTURE}") - endif() - vcpkg_list(APPEND cmake_options "-DBUILD_UNICODE:BOOL=ON") - else() - set(generator "Unix Makefiles") - endif() - if(NOT "${generator_arch}" STREQUAL "") - vcpkg_list(APPEND cmake_options "-A${generator_arch}") - endif() - - set(VCPKG_BUILD_TYPE release) #we only need release here! - vcpkg_configure_cmake( - DISABLE_PARALLEL_CONFIGURE - SOURCE_PATH "${SOURCE_PATH}" - GENERATOR "${generator}" - OPTIONS ${cmake_options} - ) - vcpkg_install_cmake() - set(PORT ninja) # to trick vcpkg_copy_tools - vcpkg_copy_tools(TOOL_NAMES ninja AUTO_CLEAN) - set(PORT vcpkg-tool-ninja) - configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-port-config.cmake" @ONLY) -endif() - -z_vcpkg_find_acquire_program_find_internal("${program}" - INTERPRETER "${interpreter}" - PATHS ${paths_to_search} - NAMES ${search_names} +set(VCPKG_BUILD_TYPE release) #we only need release here! +vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") +vcpkg_cmake_install() +vcpkg_copy_tools( + TOOL_NAMES ninja + DESTINATION "${CURRENT_PACKAGES_DIR}/tools/ninja" + AUTO_CLEAN ) -message(STATUS "Using ninja: ${NINJA}") +file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) +configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-port-config.cmake" @ONLY) diff --git a/ports/vcpkg-tool-ninja/vcpkg-port-config.cmake b/ports/vcpkg-tool-ninja/vcpkg-port-config.cmake index 333cf3fe0f433b..8bf42e9f6a28f4 100644 --- a/ports/vcpkg-tool-ninja/vcpkg-port-config.cmake +++ b/ports/vcpkg-tool-ninja/vcpkg-port-config.cmake @@ -1 +1 @@ -set(NINJA "${CURRENT_HOST_INSTALLED_DIR}/tools/ninja@VCPKG_TARGET_EXECUTABLE_SUFFIX@") \ No newline at end of file +set(NINJA "${CMAKE_CURRENT_LIST_DIR}/../../tools/ninja/ninja@VCPKG_TARGET_EXECUTABLE_SUFFIX@") diff --git a/ports/vcpkg-tool-ninja/vcpkg.json b/ports/vcpkg-tool-ninja/vcpkg.json index d9d00e1fdb5b1c..434990e25f0353 100644 --- a/ports/vcpkg-tool-ninja/vcpkg.json +++ b/ports/vcpkg-tool-ninja/vcpkg.json @@ -4,5 +4,9 @@ "description": "Ninja is a small build system with a focus on speed.", "homepage": "https://ninja-build.org/", "license": "Apache-2.0", - "supports": "native" + "supports": "native", + "dependencies": [ + "vcpkg-cmake", + "vcpkg-cmake-config" + ] } diff --git a/scripts/build_info.cmake b/scripts/build_info.cmake index a6208016ae522b..112e074654f818 100644 --- a/scripts/build_info.cmake +++ b/scripts/build_info.cmake @@ -35,6 +35,9 @@ endif() if (DEFINED VCPKG_POLICY_SKIP_ARCHITECTURE_CHECK) file(APPEND ${BUILD_INFO_FILE_PATH} "PolicySkipArchitectureCheck: ${VCPKG_POLICY_SKIP_ARCHITECTURE_CHECK}\n") endif() +if (DEFINED VCPKG_POLICY_CMAKE_HELPER_PORT) + file(APPEND ${BUILD_INFO_FILE_PATH} "PolicyCmakeHelperPort: ${VCPKG_POLICY_CMAKE_HELPER_PORT}\n") +endif() if (DEFINED VCPKG_HEAD_VERSION) file(APPEND ${BUILD_INFO_FILE_PATH} "Version: ${VCPKG_HEAD_VERSION}\n") endif()