summaryrefslogtreecommitdiff
path: root/Tests/FindSDL
diff options
context:
space:
mode:
authorFrédéric Simonis <simonisfrederic@gmail.com>2020-06-16 12:31:26 +0200
committerBrad King <brad.king@kitware.com>2020-06-18 16:33:17 -0400
commit9ffd2c70bff9eddc3cd056889212a3d12cdd9ead (patch)
treed2224f97c91bf57c93db5e61d14da5cfc66f0ea3 /Tests/FindSDL
parente70083ce51ff09dc11305311be99c46f7b161d4d (diff)
downloadcmake-9ffd2c70bff9eddc3cd056889212a3d12cdd9ead.tar.gz
FindSDL: Add SDL_INCLUDE_DIRS, SDL_LIBRARIES, and SDL::SDL
Also provide `SDL_VERSION[_{MAJOR,MINOR,PATCH}]`. Fixes: #12911
Diffstat (limited to 'Tests/FindSDL')
-rw-r--r--Tests/FindSDL/CMakeLists.txt10
-rw-r--r--Tests/FindSDL/Test/CMakeLists.txt19
-rw-r--r--Tests/FindSDL/Test/main.c18
3 files changed, 47 insertions, 0 deletions
diff --git a/Tests/FindSDL/CMakeLists.txt b/Tests/FindSDL/CMakeLists.txt
new file mode 100644
index 0000000000..e786204dd4
--- /dev/null
+++ b/Tests/FindSDL/CMakeLists.txt
@@ -0,0 +1,10 @@
+add_test(NAME FindSDL.Test COMMAND
+ ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
+ --build-and-test
+ "${CMake_SOURCE_DIR}/Tests/FindSDL/Test"
+ "${CMake_BINARY_DIR}/Tests/FindSDL/Test"
+ ${build_generator_args}
+ --build-project TestFindSDL
+ --build-options ${build_options}
+ --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
+ )
diff --git a/Tests/FindSDL/Test/CMakeLists.txt b/Tests/FindSDL/Test/CMakeLists.txt
new file mode 100644
index 0000000000..61d4f4b334
--- /dev/null
+++ b/Tests/FindSDL/Test/CMakeLists.txt
@@ -0,0 +1,19 @@
+cmake_minimum_required(VERSION 3.1)
+project(TestFindSDL C)
+include(CTest)
+
+find_package(SDL)
+
+add_definitions(
+ -DCMAKE_EXPECTED_SDL_VERSION_MAJOR=${SDL_VERSION_MAJOR}
+ -DCMAKE_EXPECTED_SDL_VERSION_MINOR=${SDL_VERSION_MINOR}
+ -DCMAKE_EXPECTED_SDL_VERSION_PATCH=${SDL_VERSION_PATCH})
+
+add_executable(test_sdl_tgt main.c)
+target_link_libraries(test_sdl_tgt SDL::SDL)
+add_test(NAME test_sdl_tgt COMMAND test_sdl_tgt)
+
+add_executable(test_sdl_var main.c)
+target_include_directories(test_sdl_var PRIVATE ${SDL_INCLUDE_DIRS})
+target_link_libraries(test_sdl_var PRIVATE ${SDL_LIBRARIES})
+add_test(NAME test_sdl_var COMMAND test_sdl_var)
diff --git a/Tests/FindSDL/Test/main.c b/Tests/FindSDL/Test/main.c
new file mode 100644
index 0000000000..057289ceb2
--- /dev/null
+++ b/Tests/FindSDL/Test/main.c
@@ -0,0 +1,18 @@
+#include <SDL.h>
+
+int main()
+{
+ // Test 1 requires headers only.
+ SDL_version compiled;
+ SDL_VERSION(&compiled);
+ if (compiled.major != CMAKE_EXPECTED_SDL_VERSION_MAJOR ||
+ compiled.minor != CMAKE_EXPECTED_SDL_VERSION_MINOR ||
+ compiled.patch != CMAKE_EXPECTED_SDL_VERSION_PATCH)
+ return 1;
+
+ // Test 2 requires to link to the library.
+ if (SDL_WasInit(SDL_INIT_VIDEO | SDL_INIT_AUDIO) != 0)
+ return 2;
+
+ return 0;
+}