Skip to content

Commit

Permalink
Modified code that tracks down SDL files on Windows to be version ind…
Browse files Browse the repository at this point in the history
…ependent. Also added README-SDL.txt to list of install files. Partially completes issue AntiMicro#73. Still need to update installer manifest.
  • Loading branch information
jsbackus committed Nov 4, 2016
1 parent 028c2ce commit 217e59e
Showing 1 changed file with 32 additions and 25 deletions.
57 changes: 32 additions & 25 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -619,29 +619,33 @@ elseif (WIN32)
endif(PKG_CONFIG_FOUND)
endif(MSYS OR MINGW)

if (NOT SDL2_LIBRARY AND EXISTS "${PROJECT_SOURCE_DIR}/SDL2-2.0.4/")
if (NOT SDL2_LIBRARY)
# Perform extra voodoo to get proper library paths and include
# proper headers.
unset(SDL2_LIBRARY)

if(TARGET_ARCH STREQUAL "x86_64")
set(SDL2_LIBRARY_DIR "${PROJECT_SOURCE_DIR}/SDL2-2.0.4/x86_64-w64-mingw32/lib")
set(SDL2_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/SDL2-2.0.4/x86_64-w64-mingw32/include")
set(SDL2_DLL_LOCATION_DIR "${PROJECT_SOURCE_DIR}/SDL2-2.0.4/x86_64-w64-mingw32/bin")

find_library(SDL2_LIBRARY SDL2 ${SDL2_LIBRARY_DIR})
list(APPEND LIBS ${SDL2_LIBRARY})
include_directories(${SDL2_INCLUDE_DIR})
else()
set(SDL2_LIBRARY_DIR "${PROJECT_SOURCE_DIR}/SDL2-2.0.4/i686-w64-mingw32/lib")
set(SDL2_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/SDL2-2.0.4/i686-w64-mingw32/include")
set(SDL2_DLL_LOCATION_DIR "${PROJECT_SOURCE_DIR}/SDL2-2.0.4/i686-w64-mingw32/bin")

find_library(SDL2_LIBRARY SDL2 ${SDL2_LIBRARY_DIR})
list(APPEND LIBS ${SDL2_LIBRARY})
include_directories(${SDL2_INCLUDE_DIR})
endif(TARGET_ARCH STREQUAL "x86_64")
endif(NOT SDL2_LIBRARY AND EXISTS "${PROJECT_SOURCE_DIR}/SDL2-2.0.4/")
file(GLOB SDL2_BASE_DIR "${PROJECT_SOURCE_DIR}/SDL2-*.*.*/")

if (SDL2_BASE_DIR)
unset(SDL2_LIBRARY)

if(TARGET_ARCH STREQUAL "x86_64")
set(SDL2_LIBRARY_DIR "${SDL2_BASE_DIR}/x86_64-w64-mingw32/lib")
set(SDL2_INCLUDE_DIR "${SDL2_BASE_DIR}/x86_64-w64-mingw32/include")
set(SDL2_DLL_LOCATION_DIR "${SDL2_BASE_DIR}/x86_64-w64-mingw32/bin")

find_library(SDL2_LIBRARY SDL2 ${SDL2_LIBRARY_DIR})
list(APPEND LIBS ${SDL2_LIBRARY})
include_directories(${SDL2_INCLUDE_DIR})
else()
set(SDL2_LIBRARY_DIR "${SDL2_BASE_DIR}/i686-w64-mingw32/lib")
set(SDL2_INCLUDE_DIR "${SDL2_BASE_DIR}/i686-w64-mingw32/include")
set(SDL2_DLL_LOCATION_DIR "${SDL2_BASE_DIR}/i686-w64-mingw32/bin")

find_library(SDL2_LIBRARY SDL2 ${SDL2_LIBRARY_DIR})
list(APPEND LIBS ${SDL2_LIBRARY})
include_directories(${SDL2_INCLUDE_DIR})
endif(TARGET_ARCH STREQUAL "x86_64")
endif(SDL2_BASE_DIR)
endif(NOT SDL2_LIBRARY)

add_definitions(-DUNICODE -D_UNICODE)
endif(USE_SDL_2)
Expand Down Expand Up @@ -743,12 +747,12 @@ if(WIN32)
#if(TARGET_ARCH STREQUAL "x86_64")
# # Copy SDL2.dll to find installation directory.
# add_custom_target(copy_sdl_dll
# COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR}/SDL2-2.0.4/x86_64-w64-mingw32/bin/SDL2.dll" ${CMAKE_CURRENT_BINARY_DIR}
# COMMAND ${CMAKE_COMMAND} -E copy "${SDL2_BASE_DIR}/x86_64-w64-mingw32/bin/SDL2.dll" ${CMAKE_CURRENT_BINARY_DIR}
# )
#else()
# # Copy SDL2.dll to find installation directory.
# add_custom_target(copy_sdl_dll
# COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR}/SDL2-2.0.4/i686-w64-mingw32/bin/SDL2.dll" ${CMAKE_CURRENT_BINARY_DIR}
# COMMAND ${CMAKE_COMMAND} -E copy "${SDL2_BASE_DIR}/i686-w64-mingw32/bin/SDL2.dll" ${CMAKE_CURRENT_BINARY_DIR}
# )
#endif(TARGET_ARCH STREQUAL "x86_64")

Expand Down Expand Up @@ -793,16 +797,19 @@ if(WIN32)

list(APPEND EXTRA_DLL_FILES
${GCC_DLL}
"${PROJECT_SOURCE_DIR}/SDL2-2.0.4/x86_64-w64-mingw32/bin/SDL2.dll"
"${SDL2_BASE_DIR}/x86_64-w64-mingw32/bin/SDL2.dll"
)
else()
find_library( GCC_DLL "libgcc_s_dw2-1.dll" )

list(APPEND EXTRA_DLL_FILES
${GCC_DLL}
"${PROJECT_SOURCE_DIR}/SDL2-2.0.4/i686-w64-mingw32/bin/SDL2.dll"
"${SDL2_BASE_DIR}/i686-w64-mingw32/bin/SDL2.dll"
)
endif(TARGET_ARCH STREQUAL "x86_64")

# Not a DLL file, but needs to travel with SDL2.DLL
list(APPEND EXTRA_DLL_FILES "${SDL2_BASE_DIR}/README-SDL.txt")

# Target to copy Qt DLL files.
add_custom_target(install_extra_dlls)
Expand Down

0 comments on commit 217e59e

Please sign in to comment.