cmake: fix regression in FindGLEW

Use patches as applied upstream (as far as possible).
This commit is contained in:
Markus Mützel
2022-06-26 11:13:14 +02:00
parent 29ef3ea0c5
commit cf3b675e03
4 changed files with 53 additions and 91 deletions

View File

@@ -1,45 +0,0 @@
diff -urN cmake-3.23.2/Modules/FindMPI.cmake.orig cmake-3.23.2/Modules/FindMPI.cmake
--- cmake-3.23.2/Modules/FindMPI.cmake.orig 2022-05-25 15:42:51.000000000 +0200
+++ cmake-3.23.2/Modules/FindMPI.cmake 2022-06-13 12:41:25.379247700 +0200
@@ -775,7 +775,8 @@
MPI_LIBNAMES "${MPI_LINK_CMDLINE}")
foreach(_MPI_LIB_NAME IN LISTS MPI_LIBNAMES)
- string(REGEX REPLACE "^ ?${CMAKE_LINK_LIBRARY_FLAG}" "" _MPI_LIB_NAME "${_MPI_LIB_NAME}")
+ # also match flags starting with "-l:" here
+ string(REGEX REPLACE "^ ?${CMAKE_LINK_LIBRARY_FLAG}(\:lib|\:)?" "" _MPI_LIB_NAME "${_MPI_LIB_NAME}")
string(REPLACE "\"" "" _MPI_LIB_NAME "${_MPI_LIB_NAME}")
list(APPEND MPI_LIB_NAMES_WORK "${_MPI_LIB_NAME}")
endforeach()
@@ -788,7 +789,7 @@
set(_MPI_LIB_SUFFIX_REGEX "${CMAKE_STATIC_LIBRARY_SUFFIX}")
if(DEFINED CMAKE_IMPORT_LIBRARY_SUFFIX)
if(NOT ("${CMAKE_IMPORT_LIBRARY_SUFFIX}" STREQUAL "${CMAKE_STATIC_LIBRARY_SUFFIX}"))
- string(APPEND _MPI_SUFFIX_REGEX "|${CMAKE_IMPORT_LIBRARY_SUFFIX}")
+ string(APPEND _MPI_LIB_SUFFIX_REGEX "|${CMAKE_IMPORT_LIBRARY_SUFFIX}")
endif()
else()
string(APPEND _MPI_LIB_SUFFIX_REGEX "|${CMAKE_SHARED_LIBRARY_SUFFIX}")
@@ -798,12 +799,16 @@
string(REGEX MATCHALL "${_MPI_LIB_NAME_REGEX}" MPI_LIBNAMES "${MPI_LINK_CMDLINE}")
foreach(_MPI_LIB_NAME IN LISTS MPI_LIBNAMES)
- string(REGEX REPLACE "^ +\"?|\"? +$" "" _MPI_LIB_NAME "${_MPI_LIB_NAME}")
- get_filename_component(_MPI_LIB_PATH "${_MPI_LIB_NAME}" DIRECTORY)
- if(NOT "${_MPI_LIB_PATH}" STREQUAL "")
- list(APPEND MPI_LIB_FULLPATHS_WORK "${_MPI_LIB_NAME}")
- else()
- list(APPEND MPI_LIB_NAMES_WORK "${_MPI_LIB_NAME}")
+ # Do not match "-l:" flags
+ string(REGEX MATCH "^ ?${CMAKE_LINK_LIBRARY_FLAG}:" _MPI_LIB_NAME_TEST "${_MPI_LIB_NAME}")
+ if(_MPI_LIB_NAME_TEST STREQUAL "")
+ string(REGEX REPLACE "^ +\"?|\"? +$" "" _MPI_LIB_NAME "${_MPI_LIB_NAME}")
+ get_filename_component(_MPI_LIB_PATH "${_MPI_LIB_NAME}" DIRECTORY)
+ if(NOT "${_MPI_LIB_PATH}" STREQUAL "")
+ list(APPEND MPI_LIB_FULLPATHS_WORK "${_MPI_LIB_NAME}")
+ else()
+ list(APPEND MPI_LIB_NAMES_WORK "${_MPI_LIB_NAME}")
+ endif()
endif()
endforeach()

View File

@@ -1,30 +0,0 @@
--- cmake-3.23.2/Modules/FindGLEW.cmake.orig 2022-05-25 15:42:51.000000000 +0200
+++ cmake-3.23.2/Modules/FindGLEW.cmake 2022-06-19 19:38:40.745804600 +0200
@@ -68,6 +68,27 @@
if(GLEW_FOUND)
find_package_handle_standard_args(GLEW DEFAULT_MSG GLEW_CONFIG)
+ get_target_property(GLEW_INCLUDE_DIRS GLEW::GLEW INTERFACE_INCLUDE_DIRECTORIES)
+ set(GLEW_INCLUDE_DIR ${GLEW_INCLUDE_DIRS})
+ get_target_property(_GLEW_DEFS GLEW::GLEW INTERFACE_COMPILE_DEFINITIONS)
+ if("${_GLEW_DEFS}" MATCHES "GLEW_STATIC")
+ get_target_property(GLEW_LIBRARY_DEBUG GLEW::GLEW IMPORTED_LOCATION_DEBUG)
+ get_target_property(GLEW_LIBRARY_RELEASE GLEW::GLEW IMPORTED_LOCATION_RELEASE)
+ else()
+ get_target_property(GLEW_LIBRARY_DEBUG GLEW::GLEW IMPORTED_IMPLIB_DEBUG)
+ get_target_property(GLEW_LIBRARY_RELEASE GLEW::GLEW IMPORTED_IMPLIB_RELEASE)
+ endif()
+ get_target_property(_GLEW_LINK_INTERFACE GLEW::GLEW IMPORTED_LINK_INTERFACE_LIBRARIES_RELEASE) # same for debug and release
+ list(APPEND GLEW_LIBRARIES ${_GLEW_LINK_INTERFACE})
+ list(APPEND GLEW_LIBRARY ${_GLEW_LINK_INTERFACE})
+ select_library_configurations(GLEW)
+ if("${_GLEW_DEFS}" MATCHES "GLEW_STATIC")
+ set(GLEW_STATIC_LIBRARIES ${GLEW_LIBRARIES})
+ else()
+ set(GLEW_SHARED_LIBRARIES ${GLEW_LIBRARIES})
+ endif()
+ unset(_GLEW_DEFS)
+ unset(_GLEW_LINK_INTERFACE)
return()
endif()

View File

@@ -0,0 +1,35 @@
From 6c8789af757e295bd1a42e6eb44260c1f79b8382 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Markus=20M=C3=BCtzel?= <markus.muetzel@gmx.de>
Date: Sun, 26 Jun 2022 10:38:11 +0200
Subject: [PATCH] FindGLEW: select_library_configuration might be used before
it is defined
Fixes a regression from a31b27078595fce911b2469937ac12934555644a
---
Modules/FindGLEW.cmake | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/Modules/FindGLEW.cmake b/Modules/FindGLEW.cmake
index a0fda1fba8..bfde40b3db 100644
--- a/Modules/FindGLEW.cmake
+++ b/Modules/FindGLEW.cmake
@@ -63,6 +63,7 @@ This module defines the following variables:
#]=======================================================================]
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
find_package(GLEW CONFIG QUIET)
@@ -195,8 +196,6 @@ find_library(GLEW_STATIC_LIBRARY_DEBUG
set(CMAKE_FIND_LIBRARY_SUFFIXES ${__GLEW_CURRENT_FIND_LIBRARY_SUFFIXES})
unset(__GLEW_CURRENT_FIND_LIBRARY_SUFFIXES)
-include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
-
select_library_configurations(GLEW_SHARED)
select_library_configurations(GLEW_STATIC)
--
2.35.3.windows.1

View File

@@ -7,12 +7,12 @@ _realname=cmake
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=3.23.2
pkgrel=3
pkgrel=4
pkgdesc="A cross-platform open-source make system (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32' 'clangarm64')
url="https://www.cmake.org/"
license=("MIT")
license=("spdx:MIT")
makedepends=("${MINGW_PACKAGE_PREFIX}-bzip2"
"${MINGW_PACKAGE_PREFIX}-ncurses"
"${MINGW_PACKAGE_PREFIX}-python-sphinx"
@@ -46,23 +46,26 @@ source=("https://github.com/Kitware/CMake/releases/download/v${pkgver}/${_realna
"0002-Do-not-install-Qt-bundle-in-cmake-gui.patch"
"0004-Output-line-numbers-in-callstacks.patch"
"0005-Default-to-ninja-generator.patch"
"https://gitlab.kitware.com/cmake/cmake/-/merge_requests/7105.patch"
# https://gitlab.kitware.com/cmake/cmake/-/merge_requests/7161
"0006-fix-find-glut.patch"
"https://gitlab.kitware.com/cmake/cmake/-/merge_requests/7162.patch"
"0007-No-hardcoded-gcc-with-MINGW-or-MSYS-Makefiles.patch"
"0008-fix-find-mpi.patch"
"0009-fix-find-glew.patch")
"0008-fix-find-mpi.patch"::https://gitlab.kitware.com/cmake/cmake/-/commit/97c273161ea3753d173f315b6eb452adbb274815.patch
"0009-fix-find-glew.patch"::https://gitlab.kitware.com/cmake/cmake/-/commit/a31b27078595fce911b2469937ac12934555644a.patch
"0010-fix-find-wxwidgets.patch"::https://gitlab.kitware.com/cmake/cmake/-/commit/359d7c19e522465b7ceadcfc69a25ffc799d344f.patch
"0011-fix-find-hdf5.patch"::https://gitlab.kitware.com/cmake/cmake/-/commit/1e2338458053082f254170f5fa579cf4c54d69d3.patch
"0012-fix-find-glew.patch")
sha256sums=('f316b40053466f9a416adf981efda41b160ca859e97f6a484b447ea299ff26aa'
'25793edcbac05bb6d17fa9947b52ace4a6b5ccccf7758e22ae9ae022ed089061'
'f6cf6a6f2729db2b9427679acd09520af2cd79fc26900b19a49cead05a55cd1a'
'15fdf3fb1a0f1c153c8cfbdd2b5c64035b7a04de618bfe61d7d74ced0d6a5c4b'
'426818278090704d2a12f62ef3dfd94c47b11fa2784bb842989b7f6a09ee7aa2'
'5b96f14a455b46f08aea1631407528ad5238150cc4087beecad40f3afca10214'
'04d526b1ec86de7e633d0a802cef8452e33bc18c8425aa2065dc901a7c868026'
'bfff814b848c51e9733af7c435a51a9ff2ccfdf862b5a70113dc0a71c0360b13'
'62074a0de9ac9a9224ffda01992aaa34e5f7fa2e2c6b1cb327ebe9b452452364'
'0a18245a80fc3a4f5ef6eb96cd0508f341331390c5ff289c642153d96d732253'
'a66254d1385e3a70e45cacd20bfea0e376493b72c9c41657f9ce40296b646c26')
'337ba525e960ed42c0fb8476c18713a99449aacb0eb124256965fc04f836f25f'
'7b46eb236916a65522d59f9d72f86726485a6f97056740e64f3c9a01eec05cf0'
'bfff814b848c51e9733af7c435a51a9ff2ccfdf862b5a70113dc0a71c0360b13'
'5b96f14a455b46f08aea1631407528ad5238150cc4087beecad40f3afca10214'
'b6089d2d303ab0faa0134b8c56940008746faeae452a8a8296ec6f9fb2d16b9f')
# Helper macros to help make tasks easier #
apply_patch_with_msg() {
@@ -90,13 +93,12 @@ prepare() {
0001-Disable-response-files-for-MSYS-Generator.patch \
0002-Do-not-install-Qt-bundle-in-cmake-gui.patch \
0004-Output-line-numbers-in-callstacks.patch \
0008-fix-find-mpi.patch \
0009-fix-find-glew.patch
# https://gitlab.kitware.com/cmake/cmake/-/merge_requests/{7105,7161,7162}
apply_patch_with_msg \
7105.patch \
0006-fix-find-glut.patch \
7162.patch
0008-fix-find-mpi.patch \
0009-fix-find-glew.patch \
0010-fix-find-wxwidgets.patch \
0011-fix-find-hdf5.patch \
0012-fix-find-glew.patch
# We want cmake to default to something useful and not MSVC
apply_patch_with_msg \