mirror of
https://github.com/love2d/megasource.git
synced 2026-08-17 19:24:09 +02:00
... actually update.
This commit is contained in:
+73
-38
@@ -2,7 +2,7 @@ if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
|
||||
message(FATAL_ERROR "Prevented in-tree built. Please create a build directory outside of the SDL source code and call cmake from there")
|
||||
endif()
|
||||
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
cmake_minimum_required(VERSION 2.8.5)
|
||||
project(SDL2 C)
|
||||
|
||||
# !!! FIXME: this should probably do "MACOSX_RPATH ON" as a target property
|
||||
@@ -26,6 +26,7 @@ include(CheckTypeSize)
|
||||
include(CheckStructHasMember)
|
||||
include(CMakeDependentOption)
|
||||
include(FindPkgConfig)
|
||||
include(GNUInstallDirs)
|
||||
set(CMAKE_MODULE_PATH "${SDL2_SOURCE_DIR}/cmake")
|
||||
include(${SDL2_SOURCE_DIR}/cmake/macros.cmake)
|
||||
include(${SDL2_SOURCE_DIR}/cmake/sdlchecks.cmake)
|
||||
@@ -40,9 +41,9 @@ include(${SDL2_SOURCE_DIR}/cmake/sdlchecks.cmake)
|
||||
# set SDL_BINARY_AGE and SDL_INTERFACE_AGE to 0.
|
||||
set(SDL_MAJOR_VERSION 2)
|
||||
set(SDL_MINOR_VERSION 0)
|
||||
set(SDL_MICRO_VERSION 4)
|
||||
set(SDL_INTERFACE_AGE 0)
|
||||
set(SDL_BINARY_AGE 4)
|
||||
set(SDL_MICRO_VERSION 5)
|
||||
set(SDL_INTERFACE_AGE 1)
|
||||
set(SDL_BINARY_AGE 5)
|
||||
set(SDL_VERSION "${SDL_MAJOR_VERSION}.${SDL_MINOR_VERSION}.${SDL_MICRO_VERSION}")
|
||||
|
||||
# Calculate a libtool-like version number
|
||||
@@ -205,7 +206,7 @@ set(ORIG_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
|
||||
if(CYGWIN)
|
||||
# We build SDL on cygwin without the UNIX emulation layer
|
||||
include_directories("-I/usr/include/mingw")
|
||||
set(CMAKE_REQUIRED_FLAGS "-mno-cygwin")
|
||||
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -mno-cygwin")
|
||||
check_c_source_compiles("int main(int argc, char **argv) {}"
|
||||
HAVE_GCC_NO_CYGWIN)
|
||||
set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS})
|
||||
@@ -309,8 +310,8 @@ set_option(VIDEO_VIVANTE "Use Vivante EGL video driver" ${UNIX_SYS})
|
||||
|
||||
# TODO: We should (should we?) respect cmake's ${BUILD_SHARED_LIBS} flag here
|
||||
# The options below are for compatibility to configure's default behaviour.
|
||||
set(SDL_SHARED ON CACHE BOOL "Build a shared version of the library")
|
||||
set(SDL_STATIC OFF CACHE BOOL "Build a static version of the library")
|
||||
set(SDL_SHARED ${SDL_SHARED_ENABLED_BY_DEFAULT} CACHE BOOL "Build a shared version of the library")
|
||||
set(SDL_STATIC ON CACHE BOOL "Build a static version of the library")
|
||||
|
||||
dep_option(SDL_STATIC_PIC "Static version of the library should be built with Position Independent Code" OFF "SDL_STATIC" OFF)
|
||||
|
||||
@@ -416,7 +417,7 @@ if(USE_GCC OR USE_CLANG)
|
||||
set(CMAKE_REQUIRED_FLAGS "-Wl,--no-undefined")
|
||||
check_c_compiler_flag("" HAVE_NO_UNDEFINED)
|
||||
set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS})
|
||||
if(HAVE_NO_UNDEFINED AND NOT APPLE) # Flag check produces false positive on (my) Mac.
|
||||
if(HAVE_NO_UNDEFINED)
|
||||
list(APPEND EXTRA_LDFLAGS "-Wl,--no-undefined")
|
||||
endif()
|
||||
endif()
|
||||
@@ -796,6 +797,16 @@ if(EMSCRIPTEN)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${EM_POWER_SOURCES})
|
||||
set(HAVE_SDL_POWER TRUE)
|
||||
endif()
|
||||
if(SDL_TIMERS)
|
||||
set(SDL_TIMER_UNIX 1)
|
||||
file(GLOB TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/unix/*.c)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${TIMER_SOURCES})
|
||||
set(HAVE_SDL_TIMERS TRUE)
|
||||
|
||||
if(CLOCK_GETTIME)
|
||||
set(HAVE_CLOCK_GETTIME 1)
|
||||
endif()
|
||||
endif()
|
||||
if(SDL_VIDEO)
|
||||
set(SDL_VIDEO_DRIVER_EMSCRIPTEN 1)
|
||||
file(GLOB EM_VIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/emscripten/*.c)
|
||||
@@ -889,8 +900,24 @@ elseif(UNIX AND NOT APPLE)
|
||||
|
||||
check_include_file("libudev.h" HAVE_LIBUDEV_H)
|
||||
|
||||
# !!! FIXME: this needs pkg-config to find the include path, I think.
|
||||
check_include_file("dbus/dbus.h" HAVE_DBUS_DBUS_H)
|
||||
if(PKG_CONFIG_FOUND)
|
||||
pkg_search_module(DBUS dbus-1 dbus)
|
||||
if(DBUS_FOUND)
|
||||
set(HAVE_DBUS_DBUS_H TRUE)
|
||||
include_directories(${DBUS_INCLUDE_DIRS})
|
||||
list(APPEND EXTRA_LIBS ${DBUS_LIBRARIES})
|
||||
endif()
|
||||
|
||||
pkg_search_module(IBUS ibus-1.0 ibus)
|
||||
if(IBUS_FOUND)
|
||||
set(HAVE_IBUS_IBUS_H TRUE)
|
||||
include_directories(${IBUS_INCLUDE_DIRS})
|
||||
list(APPEND EXTRA_LIBS ${IBUS_LIBRARIES})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
check_include_file("fcitx/frontend.h" HAVE_FCITX_FRONTEND_H)
|
||||
|
||||
endif()
|
||||
|
||||
if(INPUT_TSLIB)
|
||||
@@ -992,8 +1019,6 @@ elseif(WINDOWS)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(SDL_LINK_DIR ${PARENT_SCOPE})
|
||||
|
||||
# Check for DirectX
|
||||
if(DIRECTX)
|
||||
if(DEFINED MSVC_VERSION AND NOT ${MSVC_VERSION} LESS 1700)
|
||||
@@ -1027,15 +1052,13 @@ elseif(WINDOWS)
|
||||
set(HAVE_DIRECTX TRUE)
|
||||
if(NOT CMAKE_COMPILER_IS_MINGW AND NOT USE_WINSDK_DIRECTX)
|
||||
# TODO: change $ENV{DXSDL_DIR} to get the path from the include checks
|
||||
set(SDL_LINK_DIR $ENV{DXSDK_DIR}\\lib\\${PROCESSOR_ARCH} ${SDL_LINK_DIR})
|
||||
link_directories($ENV{DXSDK_DIR}\\lib\\${PROCESSOR_ARCH})
|
||||
include_directories($ENV{DXSDK_DIR}\\Include)
|
||||
endif()
|
||||
endif()
|
||||
set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS})
|
||||
endif()
|
||||
|
||||
link_directories(${SDL_LINK_DIR})
|
||||
|
||||
if(SDL_AUDIO)
|
||||
set(SDL_AUDIO_DRIVER_WINMM 1)
|
||||
file(GLOB WINMM_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/winmm/*.c)
|
||||
@@ -1200,16 +1223,20 @@ elseif(APPLE)
|
||||
|
||||
if(SDL_AUDIO)
|
||||
set(SDL_AUDIO_DRIVER_COREAUDIO 1)
|
||||
file(GLOB AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/coreaudio/*.c)
|
||||
file(GLOB AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/coreaudio/*.m)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${AUDIO_SOURCES})
|
||||
set(HAVE_SDL_AUDIO TRUE)
|
||||
set(SDL_FRAMEWORK_COREAUDIO 1)
|
||||
set(SDL_FRAMEWORK_AUDIOUNIT 1)
|
||||
set(SDL_FRAMEWORK_AUDIOTOOLBOX 1)
|
||||
endif()
|
||||
|
||||
if(SDL_JOYSTICK)
|
||||
set(SDL_JOYSTICK_IOKIT 1)
|
||||
file(GLOB JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/darwin/*.c)
|
||||
if (IOS)
|
||||
file(GLOB JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/iphoneos/*.m)
|
||||
else()
|
||||
file(GLOB JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/darwin/*.c)
|
||||
endif()
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${JOYSTICK_SOURCES})
|
||||
set(HAVE_SDL_JOYSTICK TRUE)
|
||||
set(SDL_FRAMEWORK_IOKIT 1)
|
||||
@@ -1218,7 +1245,12 @@ elseif(APPLE)
|
||||
|
||||
if(SDL_HAPTIC)
|
||||
set(SDL_HAPTIC_IOKIT 1)
|
||||
file(GLOB HAPTIC_SOURCES ${SDL2_SOURCE_DIR}/src/haptic/darwin/*.c)
|
||||
if (IOS)
|
||||
file(GLOB POWER_SOURCES ${SDL2_SOURCE_DIR}/src/power/dummy/*.c)
|
||||
set(SDL_HAPTIC_DUMMY 1)
|
||||
else()
|
||||
file(GLOB HAPTIC_SOURCES ${SDL2_SOURCE_DIR}/src/haptic/darwin/*.c)
|
||||
endif()
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${HAPTIC_SOURCES})
|
||||
set(HAVE_SDL_HAPTIC TRUE)
|
||||
set(SDL_FRAMEWORK_IOKIT 1)
|
||||
@@ -1230,7 +1262,11 @@ elseif(APPLE)
|
||||
|
||||
if(SDL_POWER)
|
||||
set(SDL_POWER_MACOSX 1)
|
||||
file(GLOB POWER_SOURCES ${SDL2_SOURCE_DIR}/src/power/macosx/*.c)
|
||||
if (IOS)
|
||||
file(GLOB POWER_SOURCES ${SDL2_SOURCE_DIR}/src/power/uikit/*.m)
|
||||
else()
|
||||
file(GLOB POWER_SOURCES ${SDL2_SOURCE_DIR}/src/power/macosx/*.c)
|
||||
endif()
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${POWER_SOURCES})
|
||||
set(HAVE_SDL_POWER TRUE)
|
||||
set(SDL_FRAMEWORK_CARBON 1)
|
||||
@@ -1277,19 +1313,25 @@ elseif(APPLE)
|
||||
find_library(COREAUDIO CoreAudio)
|
||||
list(APPEND EXTRA_LIBS ${COREAUDIO})
|
||||
endif()
|
||||
if(SDL_FRAMEWORK_AUDIOUNIT)
|
||||
find_library(AUDIOUNIT AudioUnit)
|
||||
list(APPEND EXTRA_LIBS ${AUDIOUNIT})
|
||||
if(SDL_FRAMEWORK_AUDIOTOOLBOX)
|
||||
find_library(AUDIOTOOLBOX AudioToolbox)
|
||||
list(APPEND EXTRA_LIBS ${AUDIOTOOLBOX})
|
||||
endif()
|
||||
|
||||
# iOS hack needed - http://code.google.com/p/ios-cmake/ ?
|
||||
if(SDL_VIDEO)
|
||||
CheckCOCOA()
|
||||
if(VIDEO_OPENGL)
|
||||
set(SDL_VIDEO_OPENGL 1)
|
||||
set(SDL_VIDEO_OPENGL_CGL 1)
|
||||
set(SDL_VIDEO_RENDER_OGL 1)
|
||||
set(HAVE_VIDEO_OPENGL TRUE)
|
||||
if (IOS)
|
||||
set(SDL_VIDEO_DRIVER_UIKIT 1)
|
||||
file(GLOB UIKITVIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/uikit/*.m)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${UIKITVIDEO_SOURCES})
|
||||
else()
|
||||
CheckCOCOA()
|
||||
if(VIDEO_OPENGL)
|
||||
set(SDL_VIDEO_OPENGL 1)
|
||||
set(SDL_VIDEO_OPENGL_CGL 1)
|
||||
set(SDL_VIDEO_RENDER_OGL 1)
|
||||
set(HAVE_VIDEO_OPENGL TRUE)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -1495,8 +1537,7 @@ add_library(SDL2main STATIC ${SDLMAIN_SOURCES})
|
||||
set(_INSTALL_LIBS "SDL2main")
|
||||
|
||||
if(SDL_SHARED)
|
||||
add_library(SDL2 SHARED ${SOURCE_FILES})
|
||||
install(TARGETS SDL2 RUNTIME DESTINATION . LIBRARY DESTINATION .)
|
||||
add_library(SDL2 SHARED ${SOURCE_FILES} ${VERSION_SOURCES})
|
||||
if(UNIX)
|
||||
set_target_properties(SDL2 PROPERTIES
|
||||
VERSION ${LT_VERSION}
|
||||
@@ -1516,7 +1557,6 @@ if(SDL_SHARED)
|
||||
endif()
|
||||
set(_INSTALL_LIBS "SDL2" ${_INSTALL_LIBS})
|
||||
target_link_libraries(SDL2 ${EXTRA_LIBS} ${EXTRA_LDFLAGS})
|
||||
target_include_directories(SDL2 PUBLIC include)
|
||||
endif()
|
||||
|
||||
if(SDL_STATIC)
|
||||
@@ -1536,11 +1576,6 @@ if(SDL_STATIC)
|
||||
endif()
|
||||
|
||||
##### Installation targets #####
|
||||
|
||||
if(MEGA)
|
||||
return()
|
||||
endif()
|
||||
|
||||
install(TARGETS ${_INSTALL_LIBS}
|
||||
LIBRARY DESTINATION "lib${LIB_SUFFIX}"
|
||||
ARCHIVE DESTINATION "lib${LIB_SUFFIX}"
|
||||
@@ -1576,7 +1611,7 @@ if(NOT (WINDOWS OR CYGWIN))
|
||||
endif()
|
||||
install(PROGRAMS ${SDL2_BINARY_DIR}/sdl2-config DESTINATION bin)
|
||||
# TODO: what about the .spec file? Is it only needed for RPM creation?
|
||||
install(FILES "${SDL2_SOURCE_DIR}/sdl2.m4" DESTINATION "share/aclocal")
|
||||
install(FILES "${SDL2_SOURCE_DIR}/sdl2.m4" DESTINATION "${CMAKE_INSTALL_FULL_DATAROOTDIR}/aclocal")
|
||||
endif()
|
||||
|
||||
##### Uninstall target #####
|
||||
|
||||
Reference in New Issue
Block a user