From d1d54b8c56aa1025c663655d8f00e84eaa7a5ef3 Mon Sep 17 00:00:00 2001 From: Anonymous Maarten Date: Fri, 15 May 2026 02:35:10 +0200 Subject: [PATCH] test: build testsprite as c++ application --- test/CMakeLists.txt | 9 +++++++++ test/testsprite.cpp | 1 + test/testutils.h | 14 +++++++++++--- 3 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 test/testsprite.cpp diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 654ff18874..4c5a416e61 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -13,10 +13,16 @@ set(SDL3_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/..") list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/../cmake") include(CheckIncludeFile) +include(CheckLanguage) include(CheckStructHasMember) include(CMakePushCheckState) include(sdlcompilers) +check_language(CXX) +if(CMAKE_CXX_COMPILER) + enable_language(CXX) +endif() + find_package(Python3 COMPONENTS Interpreter) if(NOT PYTHON3_EXECUTABLE) set(PYTHON3_EXECUTABLE "python3") @@ -449,6 +455,9 @@ add_sdl_test_executable(testsoftwaretransparent SOURCES testsoftwaretransparent. add_sdl_test_executable(testsprite MAIN_CALLBACKS NEEDS_RESOURCES TESTUTILS SOURCES testsprite.c NAME83 sprite) add_sdl_test_executable(testspriteminimal SOURCES testspriteminimal.c ${icon_png_header} DEPENDS generate-icon_png_header NAME83 spritmin) add_sdl_test_executable(testspritesurface SOURCES testspritesurface.c ${icon_png_header} DEPENDS generate-icon_png_header NAME83 spritsrf) +if(CMAKE_CXX_COMPILER) + add_sdl_test_executable(testspritecxx MAIN_CALLBACKS NEEDS_RESOURCES TESTUTILS SOURCES testsprite.cpp NAME83 spritexx) +endif() add_sdl_test_executable(testpalette SOURCES testpalette.c NAME83 palette) add_sdl_test_executable(testtimer NONINTERACTIVE NONINTERACTIVE_ARGS --no-interactive NONINTERACTIVE_TIMEOUT 60 SOURCES testtimer.c NAME83 timer) add_sdl_test_executable(testurl SOURCES testurl.c NAME83 url) diff --git a/test/testsprite.cpp b/test/testsprite.cpp new file mode 100644 index 0000000000..17b537c23b --- /dev/null +++ b/test/testsprite.cpp @@ -0,0 +1 @@ +#include "testsprite.c" diff --git a/test/testutils.h b/test/testutils.h index 25b326b35b..83d7c295a3 100644 --- a/test/testutils.h +++ b/test/testutils.h @@ -16,8 +16,16 @@ #include -SDL_Texture *LoadTexture(SDL_Renderer *renderer, const char *file, bool transparent); -char *GetNearbyFilename(const char *file); -char *GetResourceFilename(const char *user_specified, const char *def); +#ifdef __cplusplus +extern "C" { +#endif + +extern SDL_Texture *LoadTexture(SDL_Renderer *renderer, const char *file, bool transparent); +extern char *GetNearbyFilename(const char *file); +extern char *GetResourceFilename(const char *user_specified, const char *def); + +#ifdef __cplusplus +} +#endif #endif