From af86423c140a1e0295430d74ebf819ff9e226fb9 Mon Sep 17 00:00:00 2001 From: Kai Pastor Date: Wed, 2 Apr 2025 02:36:25 +0200 Subject: [PATCH] [cmake] Update test port to 4.0.0 (#44685) --- scripts/test_ports/cmake/curl.diff | 15 ------ .../cmake/fix-dependency-libuv.patch | 44 ++++++--------- scripts/test_ports/cmake/portfile.cmake | 53 ++++++------------- scripts/test_ports/cmake/vcpkg.json | 35 ++++++++---- 4 files changed, 59 insertions(+), 88 deletions(-) delete mode 100644 scripts/test_ports/cmake/curl.diff diff --git a/scripts/test_ports/cmake/curl.diff b/scripts/test_ports/cmake/curl.diff deleted file mode 100644 index 88ed22fce1..0000000000 --- a/scripts/test_ports/cmake/curl.diff +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index fdfe456a..a5d69b41 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -480,8 +480,8 @@ macro (CMAKE_BUILD_UTILITIES) - message(FATAL_ERROR - "CMAKE_USE_SYSTEM_CURL is ON but a curl is not found!") - endif() -- set(CMAKE_CURL_INCLUDES ${CURL_INCLUDE_DIRS}) -- set(CMAKE_CURL_LIBRARIES ${CURL_LIBRARIES}) -+ set(CMAKE_CURL_INCLUDES ) -+ set(CMAKE_CURL_LIBRARIES CURL::libcurl) - else() - set(CURL_SPECIAL_ZLIB_H ${CMAKE_ZLIB_HEADER}) - set(CURL_SPECIAL_LIBZ_INCLUDES ${CMAKE_ZLIB_INCLUDES}) diff --git a/scripts/test_ports/cmake/fix-dependency-libuv.patch b/scripts/test_ports/cmake/fix-dependency-libuv.patch index e847f6549d..a9a53de9b9 100644 --- a/scripts/test_ports/cmake/fix-dependency-libuv.patch +++ b/scripts/test_ports/cmake/fix-dependency-libuv.patch @@ -1,28 +1,18 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index fdfe456..ef2d329 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -647,16 +647,16 @@ macro (CMAKE_BUILD_UTILITIES) - #--------------------------------------------------------------------- - # Build libuv library. - if(CMAKE_USE_SYSTEM_LIBUV) -- if(WIN32) -- find_package(LibUV 1.38.0) -- else() -- find_package(LibUV 1.10.0) -- endif() -- if(NOT LIBUV_FOUND) -+ find_package(libuv CONFIG REQUIRED) -+ if(0) - message(FATAL_ERROR - "CMAKE_USE_SYSTEM_LIBUV is ON but a libuv is not found!") - endif() -- set(CMAKE_LIBUV_LIBRARIES LibUV::LibUV) -+ if (TARGET libuv::uv) -+ set(CMAKE_LIBUV_LIBRARIES libuv::uv) -+ else() -+ set(CMAKE_LIBUV_LIBRARIES libuv::uv_a) -+ endif() +diff --git a/Source/Modules/CMakeBuildUtilities.cmake b/Source/Modules/CMakeBuildUtilities.cmake +index dba9d506..225779cd 100644 +--- a/Source/Modules/CMakeBuildUtilities.cmake ++++ b/Source/Modules/CMakeBuildUtilities.cmake +@@ -328,6 +328,13 @@ endif() + #--------------------------------------------------------------------- + # Build libuv library. + if(CMAKE_USE_SYSTEM_LIBUV) ++ find_package(libuv CONFIG REQUIRED) ++ if (TARGET libuv::uv) ++ add_library(LibUV::LibUV ALIAS libuv::uv) ++ else() ++ add_library(LibUV::LibUV ALIAS libuv::uv_a) ++ endif() ++elseif(0) + if(WIN32) + find_package(LibUV 1.38.0) else() - set(CMAKE_LIBUV_LIBRARIES cmlibuv) - add_subdirectory(Utilities/cmlibuv) diff --git a/scripts/test_ports/cmake/portfile.cmake b/scripts/test_ports/cmake/portfile.cmake index 7b3e98c76c..e968a0e4f3 100644 --- a/scripts/test_ports/cmake/portfile.cmake +++ b/scripts/test_ports/cmake/portfile.cmake @@ -3,29 +3,23 @@ vcpkg_from_gitlab( GITLAB_URL https://gitlab.kitware.com/ OUT_SOURCE_PATH SOURCE_PATH REPO cmake/cmake - REF - 8428e39ed9cddb3b7f1a6f7a58cb8617503183d2 - SHA512 - 12df5d68aad6bf1bfa34c3a83b428e1ecdc0b2b746e92bf71157eec4b4c114c86f21e91509f26f5da6e8916941563750e63cc3218970eaba33d6de231599de34 + REF v${VERSION} + SHA512 ac67fe802179f6cd9ed290f905976923ffa3843e63e0e680a971a1019a88b813e281bd912e71a02af5df101eb1dd1692f140e34466ba4fa1b822a03097d2467b HEAD_REF master PATCHES - curl.diff fix-dependency-libuv.patch ) -set(OPTIONS) -if(NOT VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_UWP) - list(APPEND OPTIONS "-DBUILD_CursesDialog=ON") -else() +set(OPTIONS "") +if(VCPKG_TARGET_IS_WINDOWS) list(APPEND OPTIONS "-DBUILD_CursesDialog=OFF") +else() + list(APPEND OPTIONS "-DBUILD_CursesDialog=ON") endif() if(VCPKG_CROSSCOMPILING) list(APPEND OPTIONS "-DQt6CoreTools_DIR=${CURRENT_HOST_INSTALLED_DIR}/share/Qt6CoreTools") list(APPEND OPTIONS "-DQt6WidgetsTools_DIR=${CURRENT_HOST_INSTALLED_DIR}/share/Qt6WidgetsTools") list(APPEND OPTIONS "-DQt6GuiTools_DIR=${CURRENT_HOST_INSTALLED_DIR}/share/Qt6GuiTools") - if(VCPKG_TARGET_ARCHITECTURE STREQUAL arm64 AND VCPKG_TARGET_IS_WINDOWS) # Remove if PR #16111 is merged - list(APPEND OPTIONS -DCMAKE_CROSSCOMPILING=ON -DCMAKE_SYSTEM_PROCESSOR:STRING=ARM64 -DCMAKE_SYSTEM_NAME:STRING=Windows) - endif() endif() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) @@ -38,17 +32,7 @@ vcpkg_cmake_configure( OPTIONS ${OPTIONS} -DBUILD_TESTING=OFF - #-DCMAKE_USE_SYSTEM_LIBRARIES=ON - -DCMAKE_USE_SYSTEM_LIBARCHIVE=ON - -DCMAKE_USE_SYSTEM_CURL=ON - -DCMAKE_USE_SYSTEM_EXPAT=ON - -DCMAKE_USE_SYSTEM_ZLIB=ON - -DCMAKE_USE_SYSTEM_BZIP2=ON - -DCMAKE_USE_SYSTEM_ZSTD=ON - -DCMAKE_USE_SYSTEM_FORM=ON - -DCMAKE_USE_SYSTEM_JSONCPP=ON - -DCMAKE_USE_SYSTEM_LIBRHASH=OFF # not yet in VCPKG - -DCMAKE_USE_SYSTEM_LIBUV=ON + -DCMAKE_USE_SYSTEM_LIBRARIES=ON -DBUILD_QtDialog=ON # Just to test Qt with CMake -DCMake_QT_MAJOR_VERSION:STRING=6 ) @@ -56,16 +40,7 @@ vcpkg_cmake_configure( vcpkg_cmake_install(ADD_BIN_TO_PATH) vcpkg_copy_pdbs() -if(NOT VCPKG_TARGET_IS_OSX) - set(_tools cmake cmake-gui ctest cpack) - if(VCPKG_TARGET_IS_WINDOWS) - list(APPEND _tools cmcldeps) - endif() - if(BUILD_CURSES_DIALOG) - list(APPEND _tools ccmake) - endif() - vcpkg_copy_tools(TOOL_NAMES ${_tools} AUTO_CLEAN) -else() +if(VCPKG_TARGET_IS_OSX) # On OSX everything is within a CMake.app folder file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools") file(RENAME "${CURRENT_PACKAGES_DIR}/CMake.app" "${CURRENT_PACKAGES_DIR}/tools/CMake.app") @@ -73,10 +48,16 @@ else() file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/debug") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/CMake.app" "${CURRENT_PACKAGES_DIR}/tools/debug/CMake.app") endif() +else() + set(tool_names cmake cmake-gui ctest cpack) + if(VCPKG_TARGET_IS_WINDOWS) + list(APPEND tool_names cmcldeps) + else() + list(APPEND tool_names ccmake) + endif() + vcpkg_copy_tools(TOOL_NAMES ${tool_names} AUTO_CLEAN) endif() -file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") -# Handle copyright -configure_file("${SOURCE_PATH}/Copyright.txt" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.rst") diff --git a/scripts/test_ports/cmake/vcpkg.json b/scripts/test_ports/cmake/vcpkg.json index 35bb3d346a..e97f7eaeb0 100644 --- a/scripts/test_ports/cmake/vcpkg.json +++ b/scripts/test_ports/cmake/vcpkg.json @@ -1,29 +1,44 @@ { "name": "cmake", - "version": "3.22.2", - "port-version": 5, + "version": "4.0.0", "description": "CMake is an open-source, cross-platform family of tools designed to build, test and package software.", "homepage": "https://cmake.org/", "license": "BSD-3-Clause", "dependencies": [ - "bzip2", - "curl", + "cppdap", + { + "name": "curl", + "default-features": false + }, "expat", "jsoncpp", - "libarchive", - "liblzma", + { + "name": "libarchive", + "default-features": false, + "features": [ + "bzip2", + "lzma", + "zstd" + ] + }, "libuv", { "name": "ncurses", - "platform": "!(windows | uwp)" + "platform": "!windows" }, "nghttp2", - "qtbase", + { + "name": "qtbase", + "default-features": false, + "features": [ + "widgets" + ] + }, + "rhash", { "name": "vcpkg-cmake", "host": true }, - "zlib", - "zstd" + "zlib" ] }