@@ -293,7 +293,7 @@ if(CYGWIN)
|
||||
# We build SDL on cygwin without the UNIX emulation layer
|
||||
target_include_directories(sdl-build-options INTERFACE "/usr/include/mingw")
|
||||
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -mno-cygwin")
|
||||
check_c_source_compiles("int main(int argc, char **argv) {}"
|
||||
check_c_source_compiles("int main(int argc, char **argv) { return 0; }"
|
||||
HAVE_GCC_NO_CYGWIN)
|
||||
set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS})
|
||||
if(HAVE_GCC_NO_CYGWIN)
|
||||
@@ -545,7 +545,7 @@ if(USE_GCC OR USE_CLANG)
|
||||
#if !defined(__GNUC__) || __GNUC__ < 3
|
||||
#error Dependency tracking requires GCC 3.0 or newer
|
||||
#endif
|
||||
int main(int argc, char **argv) { }" HAVE_DEPENDENCY_TRACKING)
|
||||
int main(int argc, char **argv) { return 0; }" HAVE_DEPENDENCY_TRACKING)
|
||||
endif()
|
||||
|
||||
if(SDL_GCC_ATOMICS)
|
||||
@@ -556,17 +556,19 @@ if(USE_GCC OR USE_CLANG)
|
||||
__sync_lock_test_and_set(&x, y);
|
||||
__sync_fetch_and_add(&a, 1);
|
||||
__sync_bool_compare_and_swap(&a, 5, 10);
|
||||
__sync_bool_compare_and_swap(&x, y, z); }" HAVE_GCC_ATOMICS)
|
||||
__sync_bool_compare_and_swap(&x, y, z);
|
||||
return 0; }" HAVE_GCC_ATOMICS)
|
||||
if(NOT HAVE_GCC_ATOMICS)
|
||||
check_c_source_compiles("int main(int argc, char **argv) {
|
||||
int a;
|
||||
__sync_lock_test_and_set(&a, 1);
|
||||
__sync_lock_release(&a); }" HAVE_GCC_SYNC_LOCK_TEST_AND_SET)
|
||||
__sync_lock_release(&a);
|
||||
return 0; }" HAVE_GCC_SYNC_LOCK_TEST_AND_SET)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(CMAKE_REQUIRED_FLAGS "-mpreferred-stack-boundary=2")
|
||||
check_c_source_compiles("int x = 0; int main(int argc, char **argv) {}"
|
||||
check_c_source_compiles("int x = 0; int main(int argc, char **argv) { return 0; }"
|
||||
HAVE_GCC_PREFERRED_STACK_BOUNDARY)
|
||||
set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS})
|
||||
|
||||
@@ -575,7 +577,7 @@ if(USE_GCC OR USE_CLANG)
|
||||
#if !defined(__GNUC__) || __GNUC__ < 4
|
||||
#error SDL only uses visibility attributes in GCC 4 or newer
|
||||
#endif
|
||||
int main(int argc, char **argv) {}" HAVE_GCC_FVISIBILITY)
|
||||
int main(int argc, char **argv) { return 0; }" HAVE_GCC_FVISIBILITY)
|
||||
if(HAVE_GCC_FVISIBILITY)
|
||||
list(APPEND EXTRA_CFLAGS "-fvisibility=hidden")
|
||||
endif()
|
||||
@@ -631,7 +633,7 @@ if(SDL_ASSEMBLY)
|
||||
#ifndef __MMX__
|
||||
#error Assembler CPP flag not enabled
|
||||
#endif
|
||||
int main(int argc, char **argv) { }" HAVE_MMX)
|
||||
int main(int argc, char **argv) { return 0; }" HAVE_MMX)
|
||||
if(HAVE_MMX)
|
||||
list(APPEND EXTRA_CFLAGS "-mmmx")
|
||||
endif()
|
||||
@@ -648,6 +650,7 @@ if(SDL_ASSEMBLY)
|
||||
int main(int argc, char **argv) {
|
||||
void *p = 0;
|
||||
_m_prefetch(p);
|
||||
return 0;
|
||||
}" HAVE_3DNOW)
|
||||
if(HAVE_3DNOW)
|
||||
list(APPEND EXTRA_CFLAGS "-m3dnow")
|
||||
@@ -671,7 +674,7 @@ if(SDL_ASSEMBLY)
|
||||
#ifndef __SSE__
|
||||
#error Assembler CPP flag not enabled
|
||||
#endif
|
||||
int main(int argc, char **argv) { }" HAVE_SSE)
|
||||
int main(int argc, char **argv) { return 0; }" HAVE_SSE)
|
||||
if(HAVE_SSE)
|
||||
list(APPEND EXTRA_CFLAGS "-msse")
|
||||
endif()
|
||||
@@ -694,7 +697,7 @@ if(SDL_ASSEMBLY)
|
||||
#ifndef __SSE2__
|
||||
#error Assembler CPP flag not enabled
|
||||
#endif
|
||||
int main(int argc, char **argv) { }" HAVE_SSE2)
|
||||
int main(int argc, char **argv) { return 0; }" HAVE_SSE2)
|
||||
if(HAVE_SSE2)
|
||||
list(APPEND EXTRA_CFLAGS "-msse2")
|
||||
endif()
|
||||
@@ -717,7 +720,7 @@ if(SDL_ASSEMBLY)
|
||||
#ifndef __SSE3__
|
||||
#error Assembler CPP flag not enabled
|
||||
#endif
|
||||
int main(int argc, char **argv) { }" HAVE_SSE3)
|
||||
int main(int argc, char **argv) { return 0; }" HAVE_SSE3)
|
||||
if(HAVE_SSE3)
|
||||
list(APPEND EXTRA_CFLAGS "-msse3")
|
||||
endif()
|
||||
@@ -746,12 +749,12 @@ if(SDL_ASSEMBLY)
|
||||
vector unsigned int vzero() {
|
||||
return vec_splat_u32(0);
|
||||
}
|
||||
int main(int argc, char **argv) { }" HAVE_ALTIVEC_H_HDR)
|
||||
int main(int argc, char **argv) { return 0; }" HAVE_ALTIVEC_H_HDR)
|
||||
check_c_source_compiles("
|
||||
vector unsigned int vzero() {
|
||||
return vec_splat_u32(0);
|
||||
}
|
||||
int main(int argc, char **argv) { }" HAVE_ALTIVEC)
|
||||
int main(int argc, char **argv) { return 0; }" HAVE_ALTIVEC)
|
||||
set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS})
|
||||
if(HAVE_ALTIVEC OR HAVE_ALTIVEC_H_HDR)
|
||||
set(HAVE_ALTIVEC TRUE) # if only HAVE_ALTIVEC_H_HDR is set
|
||||
@@ -878,7 +881,7 @@ if(SDL_LIBC)
|
||||
# TODO: refine the mprotect check
|
||||
check_c_source_compiles("#include <sys/types.h>
|
||||
#include <sys/mman.h>
|
||||
int main() { }" HAVE_MPROTECT)
|
||||
int main() { return 0; }" HAVE_MPROTECT)
|
||||
foreach(_FN
|
||||
strtod malloc calloc realloc free getenv setenv putenv unsetenv
|
||||
qsort abs bcopy memset memcpy memmove memcmp strlen strlcpy strlcat
|
||||
@@ -1156,9 +1159,7 @@ if(ANDROID)
|
||||
#if defined(__ARM_ARCH) && __ARM_ARCH < 7
|
||||
#error Vulkan doesn't work on this configuration
|
||||
#endif
|
||||
int main(void) {
|
||||
return 0;
|
||||
}
|
||||
int main(int argc, char **argv) { return 0; }
|
||||
" VULKAN_PASSED_ANDROID_CHECKS)
|
||||
if(VULKAN_PASSED_ANDROID_CHECKS)
|
||||
set(SDL_VIDEO_VULKAN 1)
|
||||
@@ -1294,7 +1295,7 @@ elseif(UNIX AND NOT APPLE AND NOT ANDROID AND NOT RISCOS AND NOT HAIKU)
|
||||
#ifndef EVIOCGNAME
|
||||
#error EVIOCGNAME() ioctl not available
|
||||
#endif
|
||||
int main(int argc, char** argv) {}" HAVE_INPUT_EVENTS)
|
||||
int main(int argc, char** argv) { return 0; }" HAVE_INPUT_EVENTS)
|
||||
|
||||
if(LINUX)
|
||||
check_c_source_compiles("
|
||||
@@ -1306,6 +1307,7 @@ elseif(UNIX AND NOT APPLE AND NOT ANDROID AND NOT RISCOS AND NOT HAIKU)
|
||||
struct kbentry kbe;
|
||||
kbe.kb_table = KG_CTRL;
|
||||
ioctl(0, KDGKBENT, &kbe);
|
||||
return 0;
|
||||
}" HAVE_INPUT_KD)
|
||||
elseif(FREEBSD)
|
||||
check_c_source_compiles("
|
||||
@@ -1316,6 +1318,7 @@ elseif(UNIX AND NOT APPLE AND NOT ANDROID AND NOT RISCOS AND NOT HAIKU)
|
||||
{
|
||||
accentmap_t accTable;
|
||||
ioctl(0, KDENABIO, 1);
|
||||
return 0;
|
||||
}" HAVE_INPUT_KBIO)
|
||||
endif()
|
||||
|
||||
@@ -1515,7 +1518,7 @@ elseif(WINDOWS)
|
||||
|
||||
check_c_source_compiles("
|
||||
#include <windows.h>
|
||||
int main(int argc, char **argv) { }" HAVE_WIN32_CC)
|
||||
int main(int argc, char **argv) { return 0; }" HAVE_WIN32_CC)
|
||||
|
||||
file(GLOB CORE_SOURCES ${SDL2_SOURCE_DIR}/src/core/windows/*.c)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} ${CORE_SOURCES})
|
||||
@@ -1580,22 +1583,22 @@ elseif(WINDOWS)
|
||||
check_c_source_compiles("
|
||||
#include <windows.h>
|
||||
#include <xinput.h>
|
||||
int main(int argc, char **argv) { }" HAVE_XINPUT_H)
|
||||
int main(int argc, char **argv) { return 0; }" HAVE_XINPUT_H)
|
||||
check_c_source_compiles("
|
||||
#include <windows.h>
|
||||
#include <xinput.h>
|
||||
XINPUT_GAMEPAD_EX x1;
|
||||
int main(int argc, char **argv) { }" HAVE_XINPUT_GAMEPAD_EX)
|
||||
int main(int argc, char **argv) { return 0; }" HAVE_XINPUT_GAMEPAD_EX)
|
||||
check_c_source_compiles("
|
||||
#include <windows.h>
|
||||
#include <xinput.h>
|
||||
XINPUT_STATE_EX s1;
|
||||
int main(int argc, char **argv) { }" HAVE_XINPUT_STATE_EX)
|
||||
int main(int argc, char **argv) { return 0; }" HAVE_XINPUT_STATE_EX)
|
||||
check_c_source_compiles("
|
||||
#define COBJMACROS
|
||||
#include <windows.gaming.input.h>
|
||||
__x_ABI_CWindows_CGaming_CInput_CIGamepadStatics2 *s2;
|
||||
int main(int argc, char **argv) { }" HAVE_WINDOWS_GAMING_INPUT_H)
|
||||
int main(int argc, char **argv) { return 0; }" HAVE_WINDOWS_GAMING_INPUT_H)
|
||||
endif()
|
||||
|
||||
# headers needed elsewhere
|
||||
@@ -1897,13 +1900,13 @@ elseif(APPLE)
|
||||
#if TARGET_CPU_X86
|
||||
#error GameController framework doesn't work on this configuration
|
||||
#endif
|
||||
int main() {}" HAVE_FRAMEWORK_GAMECONTROLLER)
|
||||
int main() { return 0; }" HAVE_FRAMEWORK_GAMECONTROLLER)
|
||||
check_objc_source_compiles("
|
||||
#include <AvailabilityMacros.h>
|
||||
#include <TargetConditionals.h>
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <CoreHaptics/CoreHaptics.h>
|
||||
int main() {}" HAVE_FRAMEWORK_COREHAPTICS)
|
||||
int main() { return 0; }" HAVE_FRAMEWORK_COREHAPTICS)
|
||||
if(HAVE_FRAMEWORK_GAMECONTROLLER AND HAVE_FRAMEWORK_COREHAPTICS)
|
||||
# Only enable MFI if we also have CoreHaptics to ensure rumble works
|
||||
set(SDL_JOYSTICK_MFI 1)
|
||||
@@ -2020,7 +2023,7 @@ elseif(APPLE)
|
||||
#if (!TARGET_CPU_X86_64 && !TARGET_CPU_ARM64)
|
||||
#error Metal doesn't work on this configuration
|
||||
#endif
|
||||
int main(void) {}" HAVE_FRAMEWORK_METAL)
|
||||
int main(int argc, char **argv) { return 0; }" HAVE_FRAMEWORK_METAL)
|
||||
if(HAVE_FRAMEWORK_METAL)
|
||||
set(SDL_FRAMEWORK_METAL 1)
|
||||
set(SDL_FRAMEWORK_QUARTZCORE 1)
|
||||
|
||||
Reference in New Issue
Block a user