aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi.dcr@tutanota.com>2022-07-15 00:48:27 +0200
committerXavier Del Campo Romero <xavi.dcr@tutanota.com>2022-07-15 01:03:36 +0200
commit450cdc3fabfee2176c8d2050c1213e35c2c4a6f0 (patch)
treeac732ae1c2e47730e35962196d97d409e8ac2fc7
parent938b35033b7872e9abc8b0ed4b28e0ab6542a783 (diff)
downloadjancity-450cdc3fabfee2176c8d2050c1213e35c2c4a6f0.tar.gz
Implement FindSDL_gfx.cmake
Surprisingly, as of today (July 2022) CMake ships with FindSDL*.cmake files for several SDL libraries such as SDL_mixer or SDL_image, but not for SDL_gfx, so one was created, based on FindSDL_mixer.cmake. Reference: https://gitlab.kitware.com/cmake/cmake/-/blob/8a3004d5c28c0ca0ac45f718b64ed3662e499c7a/Modules/FindSDL_mixer.cmake
-rw-r--r--cmake/FindSDL_gfx.cmake106
1 files changed, 106 insertions, 0 deletions
diff --git a/cmake/FindSDL_gfx.cmake b/cmake/FindSDL_gfx.cmake
new file mode 100644
index 0000000..645eae2
--- /dev/null
+++ b/cmake/FindSDL_gfx.cmake
@@ -0,0 +1,106 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindSDL_gfx
+-------------
+
+Locate SDL_gfx library
+
+This module defines:
+
+::
+
+ SDL_GFX_LIBRARIES, the name of the library to link against
+ SDL_GFX_INCLUDE_DIRS, where to find the headers
+ SDL_GFX_FOUND, if false, do not try to link against
+ SDL_GFX_VERSION_STRING - human-readable string containing the
+ version of SDL_gfx
+
+
+
+For backward compatibility the following variables are also set:
+
+::
+
+ SDLGFX_LIBRARY (same value as SDL_GFX_LIBRARIES)
+ SDLGFX_INCLUDE_DIR (same value as SDL_GFX_INCLUDE_DIRS)
+ SDLGFX_FOUND (same value as SDL_GFX_FOUND)
+
+
+
+$SDLDIR is an environment variable that would correspond to the
+./configure --prefix=$SDLDIR used in building SDL.
+
+Created by Xavier Del Campo, heavily based on the original work by
+Eric Wing, FindSDL_mixer.cmake.
+#]=======================================================================]
+
+if(NOT SDL_GFX_INCLUDE_DIR AND SDLGFX_INCLUDE_DIR)
+ set(SDL_GFX_INCLUDE_DIR ${SDLGFX_INCLUDE_DIR} CACHE PATH "directory cache
+entry initialized from old variable name")
+endif()
+find_path(SDL_GFX_INCLUDE_DIR
+ SDL_framerate.h
+ SDL_gfxBlitFunc.h
+ SDL_gfxPrimitives.h
+ SDL_gfxPrimitives_font.h
+ SDL_imageFilter.h
+ SDL_rotozoom.h
+ HINTS
+ ENV SDLGFXDIR
+ ENV SDLDIR
+ PATH_SUFFIXES SDL
+ # path suffixes to search inside ENV{SDLDIR}
+ include/SDL include/SDL12 include/SDL11 include
+)
+
+if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ set(VC_LIB_PATH_SUFFIX lib/x64)
+else()
+ set(VC_LIB_PATH_SUFFIX lib/x86)
+endif()
+
+if(NOT SDL_GFX_LIBRARY AND SDLGFX_LIBRARY)
+ set(SDL_GFX_LIBRARY ${SDLGFX_LIBRARY} CACHE FILEPATH "file cache entry
+initialized from old variable name")
+endif()
+find_library(SDL_GFX_LIBRARY
+ NAMES SDL_gfx
+ HINTS
+ ENV SDLGFXDIR
+ ENV SDLDIR
+ PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX}
+)
+
+if(SDL_GFX_INCLUDE_DIR AND EXISTS "${SDL_GFX_INCLUDE_DIR}/SDL_gfxPrimitives.h")
+ file(STRINGS "${SDL_GFX_INCLUDE_DIR}/SDL_gfxPrimitives.h" SDL_GFX_VERSION_MAJOR_LINE REGEX "^#define[ \t]+SDL_GFXPRIMITIVES_MAJOR[ \t]+[0-9]+$")
+ file(STRINGS "${SDL_GFX_INCLUDE_DIR}/SDL_gfxPrimitives.h" SDL_GFX_VERSION_MINOR_LINE REGEX "^#define[ \t]+SDL_GFXPRIMITIVES_MINOR[ \t]+[0-9]+$")
+ file(STRINGS "${SDL_GFX_INCLUDE_DIR}/SDL_gfxPrimitives.h" SDL_GFX_VERSION_PATCH_LINE REGEX "^#define[ \t]+SDL_GFXPRIMITIVES_MICRO[ \t]+[0-9]+$")
+ string(REGEX REPLACE "^#define[ \t]+SDL_GFXPRIMITIVES_MAJOR[ \t]+([0-9]+)$" "\\1" SDL_GFX_VERSION_MAJOR "${SDL_GFX_VERSION_MAJOR_LINE}")
+ string(REGEX REPLACE "^#define[ \t]+SDL_GFXPRIMITIVES_MINOR[ \t]+([0-9]+)$" "\\1" SDL_GFX_VERSION_MINOR "${SDL_GFX_VERSION_MINOR_LINE}")
+ string(REGEX REPLACE "^#define[ \t]+SDL_GFXPRIMITIVES_MICRO[ \t]+([0-9]+)$" "\\1" SDL_GFX_VERSION_PATCH "${SDL_GFX_VERSION_PATCH_LINE}")
+ set(SDL_GFX_VERSION_STRING ${SDL_GFX_VERSION_MAJOR}.${SDL_GFX_VERSION_MINOR}.${SDL_GFX_VERSION_PATCH})
+ unset(SDL_GFX_VERSION_MAJOR_LINE)
+ unset(SDL_GFX_VERSION_MINOR_LINE)
+ unset(SDL_GFX_VERSION_PATCH_LINE)
+ unset(SDL_GFX_VERSION_MAJOR)
+ unset(SDL_GFX_VERSION_MINOR)
+ unset(SDL_GFX_VERSION_PATCH)
+endif()
+
+set(SDL_GFX_LIBRARIES ${SDL_GFX_LIBRARY})
+set(SDL_GFX_INCLUDE_DIRS ${SDL_GFX_INCLUDE_DIR})
+
+include(FindPackageHandleStandardArgs)
+
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL_gfx
+ REQUIRED_VARS SDL_GFX_LIBRARIES SDL_GFX_INCLUDE_DIRS
+ VERSION_VAR SDL_GFX_VERSION_STRING)
+
+# for backward compatibility
+set(SDLGFX_LIBRARY ${SDL_GFX_LIBRARIES})
+set(SDLGFX_INCLUDE_DIR ${SDL_GFX_INCLUDE_DIRS})
+set(SDLGFX_FOUND ${SDL_GFX_FOUND})
+
+mark_as_advanced(SDL_GFX_LIBRARY SDL_GFX_INCLUDE_DIR)