Fixed bug 2108 - CMake does not set X11 includes properly for sdl2-config and friends

Marcus von Appen

The autotools-based code uses X_CFLAGS and some hackish x_includes code to add some necessary includes to SDL_CFLAGS for proper X11 and OpenGL include handling.

At the moment, the cmake-baed build code does not do that. Below is a patch, which provides the necessary changes to add a proper include to the SDL_CFLAGS.
This commit is contained in:
Sam Lantinga 2013-10-18 00:49:59 -07:00
parent 379c0054dc
commit 5a02600647
1 changed files with 8 additions and 0 deletions

View File

@ -304,6 +304,11 @@ macro(CheckX11)
endif() endif()
endforeach() endforeach()
find_path(X_INCLUDEDIR X11/Xlib.h)
if(X_INCLUDEDIR)
set(X_CFLAGS "-I${X_INCLUDEDIR}")
endif()
check_include_file(X11/Xcursor/Xcursor.h HAVE_XCURSOR_H) check_include_file(X11/Xcursor/Xcursor.h HAVE_XCURSOR_H)
check_include_file(X11/extensions/Xinerama.h HAVE_XINERAMA_H) check_include_file(X11/extensions/Xinerama.h HAVE_XINERAMA_H)
check_include_file(X11/extensions/XInput2.h HAVE_XINPUT_H) check_include_file(X11/extensions/XInput2.h HAVE_XINPUT_H)
@ -345,6 +350,7 @@ macro(CheckX11)
endif(HAVE_SHMAT) endif(HAVE_SHMAT)
if(NOT HAVE_SHMAT) if(NOT HAVE_SHMAT)
add_definitions(-DNO_SHARED_MEMORY) add_definitions(-DNO_SHARED_MEMORY)
set(X_CFLAGS "${X_CFLAGS} -DNO_SHARED_MEMORY")
endif(NOT HAVE_SHMAT) endif(NOT HAVE_SHMAT)
endif(NOT HAVE_SHMAT) endif(NOT HAVE_SHMAT)
@ -367,6 +373,8 @@ macro(CheckX11)
endif(HAVE_X11_SHARED) endif(HAVE_X11_SHARED)
endif(X11_SHARED) endif(X11_SHARED)
set(SDL_CFLAGS "${SDL_CFLAGS} ${X_CFLAGS}")
set(CMAKE_REQUIRED_LIBRARIES ${X11_LIB} ${X11_LIB}) set(CMAKE_REQUIRED_LIBRARIES ${X11_LIB} ${X11_LIB})
check_c_source_compiles(" check_c_source_compiles("
#include <X11/Xlib.h> #include <X11/Xlib.h>