From 80acfbeda1108cc6e0bc1f2bd9c02aeaf24baddd Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Thu, 5 Jan 2023 17:38:15 +0100
Subject: [PATCH] cmake: fix building tests
---
CMakeLists.txt | 1 -
test/CMakeLists.txt | 41 +++++++++++++++++++++++++++++++++--------
test/main.c | 4 +++-
3 files changed, 36 insertions(+), 10 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 32eca5c2..880bf253 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -56,7 +56,6 @@ option(SDL3IMAGE_SAMPLES "Build the SDL3_image sample program(s)" ${SDL3IMAGE_SA
cmake_dependent_option(SDL3IMAGE_SAMPLES_INSTALL "Install the SDL3_image sample program(s)" OFF "SDL3IMAGE_SAMPLES;SDL3IMAGE_INSTALL" OFF)
option(SDL3IMAGE_TESTS "Build unit tests?" OFF)
-cmake_dependent_option(SDL3IMAGE_TESTS_INSTALL "Install unit tests?" OFF "SDL3IMAGE_TESTS;SDL3IMAGE_INSTALL" OFF)
option(SDL3IMAGE_BACKEND_STB "Use stb_image for loading JPEG and PNG files" ON)
cmake_dependent_option(SDL3IMAGE_BACKEND_WIC "Add WIC backend (Windows Imaging Component)" OFF WIN32 OFF)
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 688a7239..34f02cb5 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -1,5 +1,33 @@
-find_package(SDL2main)
-find_package(SDL2test REQUIRED)
+cmake_minimum_required(VERSION 3.0)
+project(SDL3_image_tests)
+
+enable_testing()
+
+option(SDL3IMAGE_TESTS_LINK_SHARED "link tests to shared SDL library" ON)
+option(SDL3IMAGE_TESTS_INSTALL "Install unit tests?" OFF)
+
+if(SDL3IMAGE_TESTS_LINK_SHARED)
+ set(sdl_name_component SDL3)
+ set(sdl_target_name SDL3::SDL3)
+ set(sdlimage_target_name SDL3_image::SDL3_image)
+else()
+ set(sdl_name_component SDL3-static)
+ set(sdl_target_name SDL3::SDL3-static)
+ set(sdlimage_target_name SDL3_image::SDL3_image-static)
+endif()
+
+if(NOT TARGET ${sdl_target_name})
+ find_package(SDL3 3.0.0 REQUIRED)
+ if(NOT TARGET ${sdl_target_name})
+ message(FATAL_ERROR "find_package(SDL3) did not create ${sdl_target_name}.")
+ endif()
+endif()
+if(NOT TARGET ${sdlimage_target_name})
+ find_package(SDL3_image 3.0.0 REQUIRED)
+ if(NOT TARGET ${sdlimage_target_name})
+ message(FATAL_ERROR "find_package(SDL3_image) did not create ${sdlimage_target_name}.")
+ endif()
+endif()
add_executable(testimage main.c)
@@ -38,12 +66,9 @@ set(TESTS_ENVIRONMENT
)
foreach(prog ${ALL_TESTS})
- target_compile_definitions(${prog} PRIVATE $<TARGET_PROPERTY:SDL2_image,COMPILE_DEFINITIONS>)
- target_link_libraries(${prog} PRIVATE SDL2_image::${sdl2_image_export_name})
- if(TARGET SDL2::SDL2main)
- target_link_libraries(${prog} PRIVATE SDL2::SDL2main)
- endif()
- target_link_libraries(${prog} PRIVATE SDL2::SDL2test ${sdl2_target_name})
+ target_compile_definitions(${prog} PRIVATE $<TARGET_PROPERTY:SDL3_image,COMPILE_DEFINITIONS>)
+ target_link_libraries(${prog} PRIVATE ${sdlimage_target_name})
+ target_link_libraries(${prog} PRIVATE SDL3::SDL3_test ${sdl_target_name})
add_test(
NAME ${prog}
diff --git a/test/main.c b/test/main.c
index a29a7605..79a457d7 100644
--- a/test/main.c
+++ b/test/main.c
@@ -16,6 +16,8 @@
#include <SDL3/SDL.h>
#include <SDL3/SDL_test.h>
+#include <stdlib.h>
+
#if defined(SDL_FILESYSTEM_OS2) || defined(SDL_FILESYSTEM_WINDOWS)
static const char pathsep[] = "\\";
#elif defined(SDL_FILESYSTEM_RISCOS)
@@ -524,7 +526,7 @@ ConvertToRgba32(SDL_Surface **surface_p)
if ((*surface_p)->format->format != SDL_PIXELFORMAT_RGBA32) {
SDL_Surface *temp;
- temp = SDL_ConvertSurfaceFormat(*surface_p, SDL_PIXELFORMAT_RGBA32, 0);
+ temp = SDL_ConvertSurfaceFormat(*surface_p, SDL_PIXELFORMAT_RGBA32);
SDLTest_AssertCheck(temp != NULL,
"Converting to RGBA should succeed (%s)",
SDL_GetError());