summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAhmad Fatoum <[email protected]>2018-05-11 23:43:00 +0200
committerAhmad Fatoum <[email protected]>2018-05-11 23:43:35 +0200
commit2d6fb5c628068757387525e190c3afdbe33ae9c6 (patch)
treee8d90cb5b68859364abc843a930f2b77cfec7b50
parent245704df723343fd274f77589164c6e9984aef8b (diff)
downloadraylib-2d6fb5c628068757387525e190c3afdbe33ae9c6.tar.gz
raylib-2d6fb5c628068757387525e190c3afdbe33ae9c6.zip
Revert "CMake: Build glfw separately with CMake"
This reverts commit 0adb4b67de6dfe3f7a0a557130dffc3b8f4d6a43, because it failed tests for Alien::raylib: http://www.cpantesters.org/distro/A/Alien-raylib.html
-rw-r--r--.travis.yml26
-rw-r--r--[-rwxr-xr-x]src/CMakeLists.txt36
-rw-r--r--[-rwxr-xr-x]utils.cmake51
3 files changed, 66 insertions, 47 deletions
diff --git a/.travis.yml b/.travis.yml
index 2d9a774f..e5097e75 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -18,18 +18,19 @@ matrix:
- os: linux
env: ARCH=amd64 GLFW=SYSTEM
sudo: required
- - os: linux
- env: USE_WAYLAND=ON ARCH=amd64
- sudo: required
- addons:
- apt:
- packages:
- - libwayland-dev
- - libxkbcommon-dev
- - libegl1-mesa-dev
- os: osx
env: ARCH=universal
+# - os: linux
+# env: USE_WAYLAND=ON ARCH=amd64
+# sudo: required
+# addons:
+# apt:
+# packages:
+# - libwayland-dev
+# - libxkbcommon-dev
+# - libegl1-mesa-dev
+
before_script:
before_install:
@@ -37,12 +38,11 @@ before_install:
sudo apt-get install -y gcc-multilib
libasound2-dev:$ARCH
libxcursor-dev:$ARCH libxinerama-dev:$ARCH mesa-common-dev:$ARCH
- libx11-dev:$ARCH libxrandr-dev:$ARCH libxrandr2:$ARCH libxi-dev:$ARCH
+ libx11-dev:$ARCH libxrandr-dev:$ARCH libxi-dev:$ARCH
libgl1-mesa-dev:$ARCH libglu1-mesa-dev:$ARCH;
- if [ "$ARCH" == "i386" ]; then
- export CMAKE_ARCH_ARGS='-DCMAKE_C_FLAGS=-m32 -DCMAKE_SYSTEM_LIBRARY_PATH=/usr/lib/i386-linux-gnu';
- fi;
export RAYLIB_PACKAGE_SUFFIX="-Linux-$ARCH";
+ if [ "$ARCH" == "i386" ]; then export CFLAGS="-m32"; fi;
+ if [ "$ARCH" == "amd64" ]; then export CFLAGS="-m64"; fi;
if [ "$GLFW" == "SYSTEM" ]; then
wget 'http://ftp.de.debian.org/debian/pool/main/g/glfw3/libglfw3_3.2.1-1_amd64.deb';
wget 'http://ftp.de.debian.org/debian/pool/main/g/glfw3/libglfw3-dev_3.2.1-1_amd64.deb';
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index e6501dc5..0e3411ee 100755..100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -10,28 +10,16 @@ include("CMakeOptions.txt")
configure_file(config.h.in ${CMAKE_BINARY_DIR}/cmake/config.h)
include_directories(${CMAKE_BINARY_DIR})
-if(MACOS_FATLIB)
- if (CMAKE_OSX_ARCHITECTURES)
- message(FATAL_ERROR "User supplied -DCMAKE_OSX_ARCHITECTURES overrides -DMACOS_FATLIB=ON")
- else()
- SET(CMAKE_OSX_ARCHITECTURES "x86_64;i386")
- endif()
-endif()
-
-if(NOT glfw3_FOUND)
- set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
- set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
- set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
- set(GLFW_USE_WAYLAND ${USE_WAYLAND} CACHE BOOL "" FORCE)
-
- add_subdirectory(external/glfw)
-endif()
-
include("../utils.cmake")
# Get the sources together
file(GLOB raylib_sources *.c)
-list(REMOVE_ITEM raylib_sources ${CMAKE_CURRENT_SOURCE_DIR}/rglfw.c)
+
+if(glfw3_FOUND)
+ list(REMOVE_ITEM raylib_sources ${CMAKE_CURRENT_SOURCE_DIR}/rglfw.c)
+else()
+ include_directories(external/glfw/include)
+endif()
if(USE_AUDIO)
file(GLOB stb_vorbis external/stb_vorbis.c)
@@ -63,6 +51,7 @@ if(${PLATFORM} MATCHES "Desktop")
# See: https://github.com/raysan5/raylib/issues/341
if(APPLE)
set(GRAPHICS "GRAPHICS_API_OPENGL_33")
+ set_source_files_properties(rglfw.c PROPERTIES COMPILE_FLAGS "-x objective-c")
link_libraries("${LIBS_PRIVATE}")
elseif(WIN32)
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
@@ -87,6 +76,14 @@ elseif(${PLATFORM} MATCHES "Raspberry Pi")
set(GRAPHICS "GRAPHICS_API_OPENGL_ES2")
endif()
+if(MACOS_FATLIB)
+ if (CMAKE_OSX_ARCHITECTURES)
+ message(FATAL_ERROR "User supplied -DCMAKE_OSX_ARCHITECTURES overrides -DMACOS_FATLIB=ON")
+ else()
+ SET(CMAKE_OSX_ARCHITECTURES "x86_64;i386")
+ endif()
+endif()
+
# Which platform?
if(${PLATFORM} MATCHES "PLATFORM_DESKTOP")
@@ -103,7 +100,7 @@ if(${PLATFORM} MATCHES "PLATFORM_DESKTOP")
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
set(CMAKE_MACOSX_RPATH ON)
- target_link_libraries(${RAYLIB}_shared ${LIBS_PRIVATE} glfw)
+ target_link_libraries(${RAYLIB}_shared ${LIBS_PRIVATE})
if (UNIX AND ${FILESYSTEM_LACKS_SYMLINKS})
MESSAGE(WARNING "Can't version UNIX shared library on file system without symlink support")
else()
@@ -140,7 +137,6 @@ if(${PLATFORM} MATCHES "PLATFORM_DESKTOP")
)
set(PKG_CONFIG_LIBS_PRIVATE ${__PKG_CONFIG_LIBS_PRIVATE})
- target_link_libraries(${RAYLIB} glfw)
if (WITH_PIC)
set_property(TARGET ${RAYLIB} PROPERTY POSITION_INDEPENDENT_CODE ON)
diff --git a/utils.cmake b/utils.cmake
index 27f74e68..71e34e01 100755..100644
--- a/utils.cmake
+++ b/utils.cmake
@@ -17,24 +17,47 @@ if(APPLE)
elseif(WIN32)
# no pkg-config --static on Windows yet...
else()
+ if(USE_WAYLAND)
+ set(_GLFW_WAYLAND 1)
+ else()
+ set(_GLFW_X11 1)
+ endif()
+
find_library(pthread NAMES pthread)
find_package(OpenGL QUIET)
if ("${OPENGL_LIBRARIES}" STREQUAL "")
- set(OPENGL_LIBRARIES "GL")
- endif()
-
- include_directories(${OPENGL_INCLUDE_DIR})
-
- if ("${CMAKE_SYSTEM_NAME}" MATCHES "(Net|Open)BSD")
- find_library(OSS_LIBRARY ossaudio)
- endif()
-
- set(LIBS_PRIVATE m pthread ${OPENGL_LIBRARIES} ${OSS_LIBRARY})
- # TODO: maybe read those out of glfw's cmake config?
- if(USE_WAYLAND)
- set(LIBS_PRIVATE ${LIBS_PRIVATE} wayland-client wayland-cursor wayland-egl)
+ if(NOT USE_WAYLAND)
+ # CFLAGS=-m32 cmake on Linux fails for some reason, so fallback to hardcoding
+ set(LIBS_PRIVATE m pthread GL X11 Xrandr Xinerama Xi Xxf86vm Xcursor)
+ else()
+ # CFLAGS=-m32 cmake on Linux fails for some reason, so fallback to hardcoding
+ set(LIBS_PRIVATE m pthread GL wayland-client wayland-cursor wayland-egl)
+ endif()
else()
- set(LIBS_PRIVATE ${LIBS_PRIVATE} X11 Xrandr Xinerama Xi Xxf86vm Xcursor)
+ if(NOT USE_WAYLAND)
+ find_package(X11 REQUIRED X11)
+ find_library(XRANDR_LIBRARY Xrandr)
+ find_library(XI_LIBRARY Xi)
+ find_library(XINERAMA_LIBRARY Xinerama)
+ find_library(XXF86VM_LIBRARY Xxf86vm)
+ find_library(XCURSOR_LIBRARY Xcursor)
+ else()
+ find_library(WAYLAND_CLIENT_LIBRARY wayland-client)
+ find_library(WAYLAND_CURSOR_LIBRARY wayland-cursor)
+ find_library(WAYLAND_EGL_LIBRARY wayland-egl)
+ endif()
+
+ include_directories(${OPENGL_INCLUDE_DIR})
+
+ if ("${CMAKE_SYSTEM_NAME}" MATCHES "(Net|Open)BSD")
+ find_library(OSS_LIBRARY ossaudio)
+ endif()
+
+ if(NOT USE_WAYLAND)
+ set(LIBS_PRIVATE m ${pthread} ${OPENGL_LIBRARIES} ${X11_LIBRARIES} ${XRANDR_LIBRARY} ${XINERAMA_LIBRARY} ${XI_LIBRARY} ${XXF86VM_LIBRARY} ${XCURSOR_LIBRARY} ${OSS_LIBRARY})
+ else()
+ set(LIBS_PRIVATE m ${pthread} ${OPENGL_LIBRARIES} ${WAYLAND_CLIENT_LIBRARY} ${WAYLAND_CURSOR_LIBRARY} ${WAYLAND_EGL_LIBRARY} ${OSS_LIBRARY})
+ endif()
endif()
endif()