mirror of
https://github.com/overte-org/overte.git
synced 2025-06-19 01:21:04 +02:00
add an external project for SDL 2
This commit is contained in:
parent
d6105e2e8c
commit
bc0bd462cb
4 changed files with 55 additions and 49 deletions
|
@ -126,6 +126,9 @@ set(EXTERNAL_PROJECT_PREFIX "project")
|
||||||
set_property(DIRECTORY PROPERTY EP_PREFIX ${EXTERNAL_PROJECT_PREFIX})
|
set_property(DIRECTORY PROPERTY EP_PREFIX ${EXTERNAL_PROJECT_PREFIX})
|
||||||
setup_externals_binary_dir()
|
setup_externals_binary_dir()
|
||||||
|
|
||||||
|
# setup for optional external project dependencies
|
||||||
|
option(GET_SDL2 "Download SDL2 as external project" 0)
|
||||||
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
add_paths_to_lib_paths("${QT_DIR}/bin")
|
add_paths_to_lib_paths("${QT_DIR}/bin")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
50
cmake/externals/sdl2/CMakeLists.txt
vendored
Normal file
50
cmake/externals/sdl2/CMakeLists.txt
vendored
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
set(EXTERNAL_NAME sdl2)
|
||||||
|
|
||||||
|
include(ExternalProject)
|
||||||
|
|
||||||
|
if (WIN32)
|
||||||
|
ExternalProject_Add(
|
||||||
|
${EXTERNAL_NAME}
|
||||||
|
URL http://www.libsdl.org/release/SDL2-devel-2.0.3-VC.zip
|
||||||
|
URL_MD5 30a333bcbe94bc5016e8799c73e86233
|
||||||
|
CONFIGURE_COMMAND ""
|
||||||
|
BUILD_COMMAND ""
|
||||||
|
INSTALL_COMMAND ""
|
||||||
|
LOG_DOWNLOAD 1
|
||||||
|
)
|
||||||
|
else ()
|
||||||
|
if (ANDROID)
|
||||||
|
set(ANDROID_CMAKE_ARGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "-DANDROID_NATIVE_API_LEVEL=19")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
ExternalProject_Add(
|
||||||
|
${EXTERNAL_NAME}
|
||||||
|
URL http://www.libsdl.org/release/SDL2-2.0.3.tar.gz
|
||||||
|
URL_MD5 fe6c61d2e9df9ef570e7e80c6e822537
|
||||||
|
CMAKE_ARGS ${ANDROID_CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
|
||||||
|
LOG_DOWNLOAD 1
|
||||||
|
LOG_CONFIGURE 1
|
||||||
|
LOG_BUILD 1
|
||||||
|
)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
string(TOUPPER ${EXTERNAL_NAME} EXTERNAL_NAME_UPPER)
|
||||||
|
|
||||||
|
if (WIN32)
|
||||||
|
ExternalProject_Get_Property(${EXTERNAL_NAME} SOURCE_DIR)
|
||||||
|
set(_ROOT_DIR ${SOURCE_DIR})
|
||||||
|
set(_LIB_DIR "${SOURCE_DIR}/lib/x86")
|
||||||
|
set(_LIB_EXT "lib")
|
||||||
|
|
||||||
|
set(${EXTERNAL_NAME_UPPER}_DLL_PATH ${_LIB_DIR} CACHE PATH "Location of SDL2 DLL")
|
||||||
|
else ()
|
||||||
|
ExternalProject_Get_Property(${EXTERNAL_NAME} INSTALL_DIR)
|
||||||
|
set(_ROOT_DIR ${INSTALL_DIR})
|
||||||
|
|
||||||
|
set(_LIB_DIR ${INSTALL_DIR}/lib)
|
||||||
|
set(_LIB_EXT "so")
|
||||||
|
set(_LIB_PREFIX "lib")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
set(${EXTERNAL_NAME_UPPER}_INCLUDE_DIR ${_ROOT_DIR}/include/SDL2 CACHE PATH "Location of SDL2 include directory")
|
||||||
|
set(${EXTERNAL_NAME_UPPER}_LIBRARY_TEMP ${_LIB_DIR}/${_LIB_PREFIX}SDL2.${_LIB_EXT} CACHE FILEPATH "Path to SDL2 library")
|
|
@ -163,48 +163,6 @@ ELSE(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||||
endif ()
|
endif ()
|
||||||
ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||||
|
|
||||||
IF(NOT SDL2_BUILDING_LIBRARY)
|
|
||||||
IF(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework")
|
|
||||||
# Non-OS X framework versions expect you to also dynamically link to
|
|
||||||
# SDL2main. This is mainly for Windows and OS X. Other (Unix) platforms
|
|
||||||
# seem to provide SDL2main for compatibility even though they don't
|
|
||||||
# necessarily need it.
|
|
||||||
# Lookup the 64 bit libs on x64
|
|
||||||
IF(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
|
||||||
FIND_LIBRARY(SDL2MAIN_LIBRARY
|
|
||||||
NAMES SDL2main
|
|
||||||
HINTS
|
|
||||||
${SDL2_SEARCH_DIRS}
|
|
||||||
$ENV{SDL2}
|
|
||||||
PATH_SUFFIXES lib64 lib
|
|
||||||
lib/x64
|
|
||||||
x86_64-w64-mingw32/lib
|
|
||||||
PATHS
|
|
||||||
/sw
|
|
||||||
/opt/local
|
|
||||||
/opt/csw
|
|
||||||
/opt
|
|
||||||
)
|
|
||||||
# On 32bit build find the 32bit libs
|
|
||||||
ELSE(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
|
||||||
FIND_LIBRARY(SDL2MAIN_LIBRARY
|
|
||||||
NAMES SDL2main
|
|
||||||
HINTS
|
|
||||||
${SDL2_SEARCH_DIRS}
|
|
||||||
$ENV{SDL2}
|
|
||||||
PATH_SUFFIXES lib
|
|
||||||
lib/x86
|
|
||||||
i686-w64-mingw32/lib
|
|
||||||
PATHS
|
|
||||||
/sw
|
|
||||||
/opt/local
|
|
||||||
/opt/csw
|
|
||||||
/opt
|
|
||||||
)
|
|
||||||
ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
|
||||||
ENDIF(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework")
|
|
||||||
ENDIF(NOT SDL2_BUILDING_LIBRARY)
|
|
||||||
|
|
||||||
# SDL2 may require threads on your system.
|
# SDL2 may require threads on your system.
|
||||||
# The Apple build may not need an explicit flag because one of the
|
# The Apple build may not need an explicit flag because one of the
|
||||||
# frameworks may already provide it.
|
# frameworks may already provide it.
|
||||||
|
@ -222,13 +180,6 @@ ENDIF(MINGW)
|
||||||
|
|
||||||
SET(SDL2_FOUND "NO")
|
SET(SDL2_FOUND "NO")
|
||||||
IF(SDL2_LIBRARY_TEMP)
|
IF(SDL2_LIBRARY_TEMP)
|
||||||
# For SDL2main
|
|
||||||
IF(NOT SDL2_BUILDING_LIBRARY)
|
|
||||||
IF(SDL2MAIN_LIBRARY)
|
|
||||||
SET(SDL2_LIBRARY_TEMP ${SDL2MAIN_LIBRARY} ${SDL2_LIBRARY_TEMP})
|
|
||||||
ENDIF(SDL2MAIN_LIBRARY)
|
|
||||||
ENDIF(NOT SDL2_BUILDING_LIBRARY)
|
|
||||||
|
|
||||||
# For OS X, SDL2 uses Cocoa as a backend so it must link to Cocoa.
|
# For OS X, SDL2 uses Cocoa as a backend so it must link to Cocoa.
|
||||||
# CMake doesn't display the -framework Cocoa string in the UI even
|
# CMake doesn't display the -framework Cocoa string in the UI even
|
||||||
# though it actually is there if I modify a pre-used variable.
|
# though it actually is there if I modify a pre-used variable.
|
||||||
|
|
|
@ -119,6 +119,8 @@ link_hifi_libraries(shared octree environment gpu model fbx metavoxels networkin
|
||||||
audio audio-client animation script-engine physics
|
audio audio-client animation script-engine physics
|
||||||
render-utils entities-renderer)
|
render-utils entities-renderer)
|
||||||
|
|
||||||
|
add_dependency_external_projects(sdl2)
|
||||||
|
|
||||||
# perform standard include and linking for found externals
|
# perform standard include and linking for found externals
|
||||||
foreach(EXTERNAL ${OPTIONAL_EXTERNALS})
|
foreach(EXTERNAL ${OPTIONAL_EXTERNALS})
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue