浏览代码

FindSDL: Add additional search paths on MSVC (#14029)

Add an architecture-specific library directory path suffix for each
component.  Use different search path for SDL_sound.  Project files in
VisualC directory suggest that a win32lib will hold the libraries.

Reported-by: Paul Hampson <[email protected]>
Benjamin Eikel 12 年之前
父节点
当前提交
9619719882

+ 8 - 2
Modules/FindSDL.cmake

@@ -90,13 +90,19 @@ find_path(SDL_INCLUDE_DIR SDL.h
                 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()
+
 # SDL-1.1 is the name used by FreeBSD ports...
 # don't confuse it for the version number.
 find_library(SDL_LIBRARY_TEMP
   NAMES SDL SDL-1.1
   HINTS
     ENV SDLDIR
-  PATH_SUFFIXES lib
+  PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX}
 )
 
 if(NOT SDL_BUILDING_LIBRARY)
@@ -109,7 +115,7 @@ if(NOT SDL_BUILDING_LIBRARY)
       NAMES SDLmain SDLmain-1.1
       HINTS
         ENV SDLDIR
-      PATH_SUFFIXES lib
+      PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX}
       PATHS
       /sw
       /opt/local

+ 7 - 1
Modules/FindSDL_image.cmake

@@ -57,6 +57,12 @@ find_path(SDL_IMAGE_INCLUDE_DIR SDL_image.h
   PATH_SUFFIXES 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_IMAGE_LIBRARY AND SDLIMAGE_LIBRARY)
   set(SDL_IMAGE_LIBRARY ${SDLIMAGE_LIBRARY} CACHE FILEPATH "file cache entry
 initialized from old variable name")
@@ -66,7 +72,7 @@ find_library(SDL_IMAGE_LIBRARY
   HINTS
     ENV SDLIMAGEDIR
     ENV SDLDIR
-  PATH_SUFFIXES lib
+  PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX}
 )
 
 if(SDL_IMAGE_INCLUDE_DIR AND EXISTS "${SDL_IMAGE_INCLUDE_DIR}/SDL_image.h")

+ 7 - 1
Modules/FindSDL_mixer.cmake

@@ -57,6 +57,12 @@ find_path(SDL_MIXER_INCLUDE_DIR SDL_mixer.h
   PATH_SUFFIXES 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_MIXER_LIBRARY AND SDLMIXER_LIBRARY)
   set(SDL_MIXER_LIBRARY ${SDLMIXER_LIBRARY} CACHE FILEPATH "file cache entry
 initialized from old variable name")
@@ -66,7 +72,7 @@ find_library(SDL_MIXER_LIBRARY
   HINTS
     ENV SDLMIXERDIR
     ENV SDLDIR
-  PATH_SUFFIXES lib
+  PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX}
 )
 
 if(SDL_MIXER_INCLUDE_DIR AND EXISTS "${SDL_MIXER_INCLUDE_DIR}/SDL_mixer.h")

+ 7 - 1
Modules/FindSDL_net.cmake

@@ -57,6 +57,12 @@ find_path(SDL_NET_INCLUDE_DIR SDL_net.h
   PATH_SUFFIXES 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_NET_LIBRARY AND SDLNET_LIBRARY)
   set(SDL_NET_LIBRARY ${SDLNET_LIBRARY} CACHE FILEPATH "file cache entry
 initialized from old variable name")
@@ -66,7 +72,7 @@ find_library(SDL_NET_LIBRARY
   HINTS
     ENV SDLNETDIR
     ENV SDLDIR
-  PATH_SUFFIXES lib
+  PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX}
 )
 
 if(SDL_NET_INCLUDE_DIR AND EXISTS "${SDL_NET_INCLUDE_DIR}/SDL_net.h")

+ 1 - 1
Modules/FindSDL_sound.cmake

@@ -106,7 +106,7 @@ find_library(SDL_SOUND_LIBRARY
   HINTS
     ENV SDLSOUNDDIR
     ENV SDLDIR
-  PATH_SUFFIXES lib
+  PATH_SUFFIXES lib VisualC/win32lib
   )
 
 if(SDL_FOUND AND SDL_SOUND_INCLUDE_DIR AND SDL_SOUND_LIBRARY)

+ 7 - 1
Modules/FindSDL_ttf.cmake

@@ -57,6 +57,12 @@ find_path(SDL_TTF_INCLUDE_DIR SDL_ttf.h
   PATH_SUFFIXES 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_TTF_LIBRARY AND SDLTTF_LIBRARY)
   set(SDL_TTF_LIBRARY ${SDLTTF_LIBRARY} CACHE FILEPATH "file cache entry
 initialized from old variable name")
@@ -66,7 +72,7 @@ find_library(SDL_TTF_LIBRARY
   HINTS
     ENV SDLTTFDIR
     ENV SDLDIR
-  PATH_SUFFIXES lib
+  PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX}
 )
 
 if(SDL_TTF_INCLUDE_DIR AND EXISTS "${SDL_TTF_INCLUDE_DIR}/SDL_ttf.h")