Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save YellowOnion/49eb5ce269e5c6fc6407f994c9f0cd96 to your computer and use it in GitHub Desktop.
Save YellowOnion/49eb5ce269e5c6fc6407f994c9f0cd96 to your computer and use it in GitHub Desktop.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 74356b60f..e4276aca8 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -169,13 +169,6 @@ if(MSVC)
endif()
endforeach()
endif()
-
- # Make sure /RTC1 is disabled, otherwise it will use functions from the CRT
- foreach(flag_var
- CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
- CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO)
- string(REGEX REPLACE "/RTC(su|[1su])" "" ${flag_var} "${${flag_var}}")
- endforeach(flag_var)
endif()
# Those are used for pkg-config and friends, so that the SDL2.pc, sdl2-config,
@@ -389,7 +382,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})
+ set(CMAKE_REQUIRED_FLAGS)
if(HAVE_NO_UNDEFINED)
list(APPEND EXTRA_LDFLAGS "-Wl,--no-undefined")
endif()
@@ -695,52 +688,6 @@ if(SDL_VIDEO)
endif()
endif()
-if(ANDROID)
- file(GLOB ANDROID_CORE_SOURCES ${SDL2_SOURCE_DIR}/src/core/android/*.c)
- set(SOURCE_FILES ${SOURCE_FILES} ${ANDROID_CORE_SOURCES})
- file(GLOB ANDROID_MAIN_SOURCES ${SDL2_SOURCE_DIR}/src/main/android/*.c)
- set(SOURCE_FILES ${SOURCE_FILES} ${ANDROID_MAIN_SOURCES})
- if(SDL_AUDIO)
- set(SDL_AUDIO_DRIVER_ANDROID 1)
- file(GLOB ANDROID_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/android/*.c)
- set(SOURCE_FILES ${SOURCE_FILES} ${ANDROID_AUDIO_SOURCES})
- set(HAVE_SDL_AUDIO TRUE)
- endif()
- if(SDL_FILESYSTEM)
- set(SDL_FILESYSTEM_ANDROID 1)
- file(GLOB ANDROID_FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/android/*.c)
- set(SOURCE_FILES ${SOURCE_FILES} ${ANDROID_FILESYSTEM_SOURCES})
- set(HAVE_SDL_FILESYSTEM TRUE)
- endif()
- if(SDL_JOYSTICK)
- set(SDL_JOYSTICK_ANDROID 1)
- file(GLOB ANDROID_JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/android/*.c)
- set(SOURCE_FILES ${SOURCE_FILES} ${ANDROID_JOYSTICK_SOURCES})
- set(HAVE_SDL_JOYSTICK TRUE)
- endif()
- if(SDL_POWER)
- set(SDL_POWER_ANDROID 1)
- file(GLOB ANDROID_POWER_SOURCES ${SDL2_SOURCE_DIR}/src/power/android/*.c)
- set(SOURCE_FILES ${SOURCE_FILES} ${ANDROID_POWER_SOURCES})
- set(HAVE_SDL_POWER TRUE)
- endif()
- if(SDL_VIDEO)
- set(SDL_VIDEO_DRIVER_ANDROID 1)
- file(GLOB ANDROID_VIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/android/*.c)
- set(SOURCE_FILES ${SOURCE_FILES} ${ANDROID_VIDEO_SOURCES})
- set(HAVE_SDL_VIDEO TRUE)
-
- #enable gles
- if(VIDEO_OPENGLES)
- set(SDL_VIDEO_OPENGL_EGL 1)
- set(HAVE_VIDEO_OPENGLES TRUE)
- set(SDL_VIDEO_OPENGL_ES2 1)
- set(SDL_VIDEO_RENDER_OGL_ES2 1)
- endif()
- endif()
- list(APPEND EXTRA_LDFLAGS "-Wl,--undefined=Java_org_libsdl_app_SDLActivity_nativeInit")
-endif()
-
# Platform-specific options and settings
if(EMSCRIPTEN)
# Hide noisy warnings that intend to aid mostly during initial stages of porting a new
@@ -879,7 +826,7 @@ elseif(UNIX AND NOT APPLE)
if(SDL_JOYSTICK)
CheckUSBHID() # seems to be BSD specific - limit the test to BSD only?
- if(LINUX AND NOT ANDROID)
+ if(LINUX)
set(SDL_JOYSTICK_LINUX 1)
file(GLOB JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/linux/*.c)
set(SOURCE_FILES ${SOURCE_FILES} ${JOYSTICK_SOURCES})
@@ -951,20 +898,9 @@ elseif(WINDOWS)
file(GLOB CORE_SOURCES ${SDL2_SOURCE_DIR}/src/core/windows/*.c)
set(SOURCE_FILES ${SOURCE_FILES} ${CORE_SOURCES})
- if(MSVC)
- # Prevent codegen that would use the VC runtime libraries.
- add_definitions(/GS-)
- if(NOT ARCH_64)
- add_definitions(/arch:SSE)
- endif()
- endif()
-
# Check for DirectX
if(DIRECTX)
- if(DEFINED MSVC_VERSION AND NOT ${MSVC_VERSION} LESS 1700)
- set(USE_WINSDK_DIRECTX TRUE)
- endif()
- if(NOT CMAKE_COMPILER_IS_MINGW AND NOT USE_WINSDK_DIRECTX)
+ if(NOT CMAKE_COMPILER_IS_MINGW)
if("$ENV{DXSDK_DIR}" STREQUAL "")
message_error("DIRECTX requires the \$DXSDK_DIR environment variable to be set")
endif()
@@ -990,7 +926,7 @@ elseif(WINDOWS)
check_include_file(dxgi.h HAVE_DXGI_H)
if(HAVE_D3D_H OR HAVE_D3D11_H OR HAVE_DDRAW_H OR HAVE_DSOUND_H OR HAVE_DINPUT_H OR HAVE_XAUDIO2_H)
set(HAVE_DIRECTX TRUE)
- if(NOT CMAKE_COMPILER_IS_MINGW AND NOT USE_WINSDK_DIRECTX)
+ if(NOT CMAKE_COMPILER_IS_MINGW)
# TODO: change $ENV{DXSDL_DIR} to get the path from the include checks
link_directories($ENV{DXSDK_DIR}\\lib\\${PROCESSOR_ARCH})
include_directories($ENV{DXSDK_DIR}\\Include)
@@ -1064,6 +1000,8 @@ elseif(WINDOWS)
# Libraries for Win32 native and MinGW
list(APPEND EXTRA_LIBS user32 gdi32 winmm imm32 ole32 oleaut32 version uuid)
+ list(APPEND EXTRA2015_LIBS_STATIC libcmt libvcruntime libucrt)
+ list(APPEND EXTRA2015_LIBS msvcrt vcruntime ucrt)
# TODO: in configure.in the check for timers is set on
# cygwin | mingw32* - does this include mingw32CE?
@@ -1108,7 +1046,7 @@ elseif(WINDOWS)
list(APPEND EXTRA_LIBS dinput8 dxguid)
if(CMAKE_COMPILER_IS_MINGW)
list(APPEND EXTRA_LIBS dxerr8)
- elseif (NOT USE_WINSDK_DIRECTX)
+ else()
list(APPEND EXTRA_LIBS dxerr)
endif()
endif()
@@ -1151,7 +1089,7 @@ elseif(APPLE)
# Requires the darwin file implementation
if(SDL_FILE)
- file(GLOB EXTRA_SOURCES ${SDL2_SOURCE_DIR}/src/file/cocoa/*.m)
+ file(GLOB EXTRA_SOURCES ${PROJECT_SOURCE_DIR}/src/file/cocoa/*.m)
set(SOURCE_FILES ${EXTRA_SOURCES} ${SOURCE_FILES})
set_source_files_properties(${EXTRA_SOURCES} PROPERTIES LANGUAGE C)
set(HAVE_SDL_FILE TRUE)
@@ -1467,20 +1405,14 @@ if(SDL_SHARED)
SOVERSION ${LT_REVISION}
OUTPUT_NAME "SDL2")
endif()
- if(MSVC)
- # Don't try to link with the default set of libraries.
- set_target_properties(SDL2 PROPERTIES LINK_FLAGS_RELEASE "/NODEFAULTLIB")
- set_target_properties(SDL2 PROPERTIES LINK_FLAGS_DEBUG "/NODEFAULTLIB")
- set_target_properties(SDL2 PROPERTIES STATIC_LIBRARY_FLAGS "/NODEFAULTLIB")
- endif()
- set(_INSTALL_LIBS "SDL2" ${_INSTALL_LIBS})
- target_link_libraries(SDL2 ${EXTRA_LIBS} ${EXTRA_LDFLAGS})
+ set(_INSTALL_LIBS "SDL2" ${_INSTALL_LIBS})
+ target_link_libraries(SDL2 ${EXTRA_LIBS} ${EXTRA2015_LIBS} ${EXTRA_LDFLAGS})
endif()
if(SDL_STATIC)
set (BUILD_SHARED_LIBS FALSE)
add_library(SDL2-static STATIC ${SOURCE_FILES})
- set_target_properties(SDL2-static PROPERTIES OUTPUT_NAME "SDL2")
+ set_target_properties(SDL2-static PROPERTIES OUTPUT_NAME "SDL2-static")
if(MSVC)
set_target_properties(SDL2-static PROPERTIES LINK_FLAGS_RELEASE "/NODEFAULTLIB")
set_target_properties(SDL2-static PROPERTIES LINK_FLAGS_DEBUG "/NODEFAULTLIB")
@@ -1489,7 +1421,8 @@ if(SDL_STATIC)
# TODO: Win32 platforms keep the same suffix .lib for import and static
# libraries - do we need to consider this?
set(_INSTALL_LIBS "SDL2-static" ${_INSTALL_LIBS})
- target_link_libraries(SDL2-static ${EXTRA_LIBS} ${EXTRA_LDFLAGS})
+ #@changed tsky
+ target_link_libraries(SDL2-static ${EXTRA_LIBS} ${EXTRA2015_LIBS_STATIC} ${EXTRA_LDFLAGS})
endif()
##### Installation targets #####
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment