1# Locate SDL_image library
2#
3# This module defines:
4#
5# ::
6#
7#   SDL_IMAGE_LIBRARIES, the name of the library to link against
8#   SDL_IMAGE_INCLUDE_DIRS, where to find the headers
9#   SDL_IMAGE_FOUND, if false, do not try to link against
10#   SDL_IMAGE_VERSION_STRING - human-readable string containing the version of SDL_image
11#
12#
13#
14# For backward compatiblity the following variables are also set:
15#
16# ::
17#
18#   SDLIMAGE_LIBRARY (same value as SDL_IMAGE_LIBRARIES)
19#   SDLIMAGE_INCLUDE_DIR (same value as SDL_IMAGE_INCLUDE_DIRS)
20#   SDLIMAGE_FOUND (same value as SDL_IMAGE_FOUND)
21#
22#
23#
24# $SDLDIR is an environment variable that would correspond to the
25# ./configure --prefix=$SDLDIR used in building SDL.
26#
27# Created by Eric Wing.  This was influenced by the FindSDL.cmake
28# module, but with modifications to recognize OS X frameworks and
29# additional Unix paths (FreeBSD, etc).
30
31#=============================================================================
32# Copyright 2005-2009 Kitware, Inc.
33# Copyright 2012 Benjamin Eikel
34#
35# Distributed under the OSI-approved BSD License (the "License");
36# see accompanying file Copyright.txt for details.
37#
38# This software is distributed WITHOUT ANY WARRANTY; without even the
39# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
40# See the License for more information.
41#=============================================================================
42# (To distribute this file outside of CMake, substitute the full
43#  License text for the above reference.)
44
45find_path(SDL2_IMAGE_INCLUDE_DIR SDL_image.h
46  HINTS
47    ENV SDL2IMAGEDIR
48    ENV SDL2DIR
49  PATH_SUFFIXES SDL2
50                # path suffixes to search inside ENV{SDLDIR}
51                include/SDL2 include
52)
53
54if(CMAKE_SIZEOF_VOID_P EQUAL 8)
55  set(VC_LIB_PATH_SUFFIX lib/x64)
56else()
57  set(VC_LIB_PATH_SUFFIX lib/x86)
58endif()
59
60find_library(SDL2_IMAGE_LIBRARY
61  NAMES SDL2_image
62  HINTS
63    ENV SDL2IMAGEDIR
64    ENV SDL2DIR
65  PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX}
66)
67
68if(SDL2_IMAGE_INCLUDE_DIR AND EXISTS "${SDL2_IMAGE_INCLUDE_DIR}/SDL_image.h")
69  file(STRINGS "${SDL2_IMAGE_INCLUDE_DIR}/SDL_image.h" SDL_IMAGE_VERSION_MAJOR_LINE REGEX "^#define[ \t]+SDL_IMAGE_MAJOR_VERSION[ \t]+[0-9]+$")
70  file(STRINGS "${SDL2_IMAGE_INCLUDE_DIR}/SDL_image.h" SDL2_IMAGE_VERSION_MINOR_LINE REGEX "^#define[ \t]+SDL2_IMAGE_MINOR_VERSION[ \t]+[0-9]+$")
71  file(STRINGS "${SDL2_IMAGE_INCLUDE_DIR}/SDL_image.h" SDL2_IMAGE_VERSION_PATCH_LINE REGEX "^#define[ \t]+SDL2_IMAGE_PATCHLEVEL[ \t]+[0-9]+$")
72  string(REGEX REPLACE "^#define[ \t]+SDL2_IMAGE_MAJOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_IMAGE_VERSION_MAJOR "${SDL2_IMAGE_VERSION_MAJOR_LINE}")
73  string(REGEX REPLACE "^#define[ \t]+SDL2_IMAGE_MINOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_IMAGE_VERSION_MINOR "${SDL2_IMAGE_VERSION_MINOR_LINE}")
74  string(REGEX REPLACE "^#define[ \t]+SDL2_IMAGE_PATCHLEVEL[ \t]+([0-9]+)$" "\\1" SDL2_IMAGE_VERSION_PATCH "${SDL2_IMAGE_VERSION_PATCH_LINE}")
75  set(SDL2_IMAGE_VERSION_STRING ${SDL2_IMAGE_VERSION_MAJOR}.${SDL2_IMAGE_VERSION_MINOR}.${SDL2_IMAGE_VERSION_PATCH})
76  unset(SDL2_IMAGE_VERSION_MAJOR_LINE)
77  unset(SDL2_IMAGE_VERSION_MINOR_LINE)
78  unset(SDL2_IMAGE_VERSION_PATCH_LINE)
79  unset(SDL2_IMAGE_VERSION_MAJOR)
80  unset(SDL2_IMAGE_VERSION_MINOR)
81  unset(SDL2_IMAGE_VERSION_PATCH)
82endif()
83
84set(SDL2_IMAGE_LIBRARIES ${SDL2_IMAGE_LIBRARY})
85set(SDL2_IMAGE_INCLUDE_DIRS ${SDL2_IMAGE_INCLUDE_DIR})
86
87include(FindPackageHandleStandardArgs)
88
89FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2_image
90                                  REQUIRED_VARS SDL2_IMAGE_LIBRARIES SDL2_IMAGE_INCLUDE_DIRS
91                                  VERSION_VAR SDL2_IMAGE_VERSION_STRING)
92
93# for backward compatiblity
94#set(SDLIMAGE_LIBRARY ${SDL_IMAGE_LIBRARIES})
95#set(SDLIMAGE_INCLUDE_DIR ${SDL_IMAGE_INCLUDE_DIRS})
96#set(SDLIMAGE_FOUND ${SDL_IMAGE_FOUND})
97
98mark_as_advanced(SDL2_IMAGE_LIBRARY SDL2_IMAGE_INCLUDE_DIR)
99