From 4f295384a28a16563bddd7c46996a1028c838e5e Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Mon, 23 May 2022 16:25:26 +0200
Subject: [PATCH] Use 3.16 as minimum required CMake version + test on CI
---
.github/workflows/main.yml | 7 ++++++-
CMakeLists.txt | 10 ++++++----
2 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 557076e..c558abc 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -15,7 +15,7 @@ jobs:
fail-fast: false
matrix:
platform:
- - { name: Windows (MSVC+CMake), os: windows-latest, shell: sh, cmake: '-DSDL2IMAGE_VENDORED=ON -G "Ninja Multi-Config"', msvc: 1 }
+ - { name: Windows (MSVC+CMake), os: windows-latest, shell: sh, cmake: '-DSDL2IMAGE_VENDORED=ON -GNinja', msvc: 1 }
- { name: Windows (mingw32+autotools), os: windows-latest, shell: 'msys2 {0}', msystem: mingw32, msys-env: mingw-w64-i686 }
- { name: Windows (mingw64+CMake), os: windows-latest, shell: 'msys2 {0}', msystem: mingw64, msys-env: mingw-w64-x86_64,
cmake: '-DSDL2IMAGE_BACKEND_STB=OFF -DSDL2IMAGE_BACKEND_WIC=OFF -DSDL2IMAGE_VENDORED=OFF -DSDL2IMAGE_AVIF=ON -G "Ninja Multi-Config"' }
@@ -106,6 +106,11 @@ jobs:
if: "runner.os == 'Linux' && matrix.platform.cmake"
run: ./test-versioning.sh
+ - name: Setup CMake
+ if: ${{ matrix.platform.cmake && !matrix.platform.msystem && !matrix.platform.msvc }}
+ uses: jwlawson/actions-setup-cmake@v1.12
+ with:
+ cmake-version: '3.16'
- name: Configure CMake
if: "matrix.platform.cmake"
run: |
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9b21d97..3d253a5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.14)
+cmake_minimum_required(VERSION 3.16)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
@@ -704,8 +704,10 @@ if(SDL2IMAGE_INSTALL)
endif()
# Only install a SDL2_image.pc file in Release mode
install(CODE "
- file(COPY_FILE \"${CMAKE_CURRENT_BINARY_DIR}/SDL2_image-$<CONFIG>.pc\"
- \"${CMAKE_CURRENT_BINARY_DIR}/SDL2_image.pc\" ONLY_IF_DIFFERENT)
+ # FIXME: use file(COPY_FILE) if minimum CMake version >= 3.21
+ execute_process(COMMAND \"\${CMAKE_COMMAND}\" -E copy_if_different
+ \"${CMAKE_CURRENT_BINARY_DIR}/SDL2_image-$<CONFIG>.pc\"
+ \"${CMAKE_CURRENT_BINARY_DIR}/SDL2_image.pc\")
file(INSTALL DESTINATION \"\${CMAKE_INSTALL_PREFIX}/${PC_DESTDIR}\"
TYPE FILE
FILES \"${CMAKE_CURRENT_BINARY_DIR}/SDL2_image.pc\")" CONFIG Release COMPONENT devel)
@@ -733,7 +735,7 @@ if(SDL2IMAGE_SAMPLES)
find_package(SDL2main)
foreach(prog showanim showimage)
- # FIXME: mingw should be handles by SDL2::SDL2(-static) target
+ # FIXME: mingw should be handled by SDL2::SDL2(-static) target
if(MINGW)
target_link_libraries(${prog} PRIVATE mingw32)
target_link_options(${prog} PRIVATE -mwindows)