Fixed bug 2108 - CMake does not set X11 includes properly for sdl2-config and friends
authorSam Lantinga <slouken@libsdl.org>
Fri, 18 Oct 2013 00:49:59 -0700
changeset 7835 4be86f76e710
parent 7834 e22726c82922
child 7836 b7c1c84c33e3
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.
cmake/sdlchecks.cmake
--- a/cmake/sdlchecks.cmake	Fri Oct 18 00:47:22 2013 -0700
+++ b/cmake/sdlchecks.cmake	Fri Oct 18 00:49:59 2013 -0700
@@ -304,6 +304,11 @@
       endif()
     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/extensions/Xinerama.h HAVE_XINERAMA_H)
     check_include_file(X11/extensions/XInput2.h HAVE_XINPUT_H)
@@ -345,6 +350,7 @@
         endif(HAVE_SHMAT)
         if(NOT HAVE_SHMAT)
           add_definitions(-DNO_SHARED_MEMORY)
+          set(X_CFLAGS "${X_CFLAGS} -DNO_SHARED_MEMORY")
         endif(NOT HAVE_SHMAT)
       endif(NOT HAVE_SHMAT)
 
@@ -367,6 +373,8 @@
         endif(HAVE_X11_SHARED)
       endif(X11_SHARED)
 
+      set(SDL_CFLAGS "${SDL_CFLAGS} ${X_CFLAGS}")
+
       set(CMAKE_REQUIRED_LIBRARIES ${X11_LIB} ${X11_LIB})
       check_c_source_compiles("
           #include <X11/Xlib.h>