Skip to content

Commit

Permalink
package/solarus: fix OpenGLES2 build
Browse files Browse the repository at this point in the history
1. Adds a patch that fixes OpenGLES2 build
   https://gitlab.com/solarus-games/solarus/-/merge_requests/1364

2. Updates Config.in and solarus.mk to support OpenGLES2

Signed-off-by: Gleb Mazovetskiy <[email protected]>
[[email protected]: renumber patch]
Signed-off-by: Yann E. MORIN <[email protected]>
  • Loading branch information
glebm authored and yann-morin-1998 committed Jul 17, 2021
1 parent 1cf3c39 commit dc19702
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 2 deletions.
48 changes: 48 additions & 0 deletions package/solarus/0002-Add-a-basic-FindOpenGLES2.cmake.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
From 2bf0e98f17d92fd86ee61be179e3cebe93f75ea7 Mon Sep 17 00:00:00 2001
From: Gleb Mazovetskiy <[email protected]>
Date: Sun, 3 Jan 2021 12:38:13 +0000
Subject: [PATCH] Add a basic FindOpenGLES2.cmake

Fixes #1324
---
cmake/modules/FindOpenGLES2.cmake | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
create mode 100644 cmake/modules/FindOpenGLES2.cmake

diff --git a/cmake/modules/FindOpenGLES2.cmake b/cmake/modules/FindOpenGLES2.cmake
new file mode 100644
index 000000000..70fd5e6f0
--- /dev/null
+++ b/cmake/modules/FindOpenGLES2.cmake
@@ -0,0 +1,28 @@
+# Try to find OpenGLES2. Once done this will define:
+# OPENGLES2_FOUND
+# OPENGLES2_INCLUDE_DIRS
+# OPENGLES2_LIBRARIES
+# OPENGLES2_DEFINITIONS
+
+find_package(PkgConfig QUIET)
+
+pkg_check_modules(PC_OPENGLES2 glesv2)
+
+if (PC_OPENGLES2_FOUND)
+ set(OPENGLES2_DEFINITIONS ${PC_OPENGLES2_CFLAGS_OTHER})
+endif ()
+
+find_path(OPENGLES2_INCLUDE_DIRS NAMES GLES2/gl2.h
+ HINTS ${PC_OPENGLES2_INCLUDEDIR} ${PC_OPENGLES2_INCLUDE_DIRS}
+)
+
+set(OPENGLES2_NAMES ${OPENGLES2_NAMES} glesv2 GLESv2)
+find_library(OPENGLES2_LIBRARIES NAMES ${OPENGLES2_NAMES}
+ HINTS ${PC_OPENGLES2_LIBDIR} ${PC_OPENGLES2_LIBRARY_DIRS}
+)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(OpenGLES2 REQUIRED_VARS OPENGLES2_INCLUDE_DIRS OPENGLES2_LIBRARIES
+ FOUND_VAR OPENGLES2_FOUND)
+
+mark_as_advanced(OPENGLES2_INCLUDE_DIRS OPENGLES2_LIBRARIES)
--
2.27.0

2 changes: 1 addition & 1 deletion package/solarus/Config.in
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ config BR2_PACKAGE_SOLARUS
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # openal
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # openal
depends on !BR2_STATIC_LIBS # SDL2
depends on BR2_PACKAGE_HAS_LIBGL
depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBGLES
select BR2_PACKAGE_GLM
select BR2_PACKAGE_LIBMODPLUG
select BR2_PACKAGE_LIBOGG
Expand Down
9 changes: 8 additions & 1 deletion package/solarus/solarus.mk
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,21 @@ SOLARUS_LICENSE_FILES = license.txt
# Install libsolarus.so
SOLARUS_INSTALL_STAGING = YES

SOLARUS_DEPENDENCIES = glm libgl libmodplug libogg libvorbis openal physfs \
SOLARUS_DEPENDENCIES = glm libmodplug libogg libvorbis openal physfs \
sdl2 sdl2_image sdl2_ttf

# Disable launcher GUI (requires Qt5)
SOLARUS_CONF_OPTS = \
-DSOLARUS_GUI=OFF \
-DSOLARUS_TESTS=OFF

ifeq ($(BR2_PACKAGE_HAS_LIBGL),y)
SOLARUS_DEPENDENCIES += libgl
else
SOLARUS_CONF_OPTS += -DSOLARUS_GL_ES=ON
SOLARUS_DEPENDENCIES += libgles
endif

ifeq ($(BR2_PACKAGE_LUAJIT),y)
SOLARUS_CONF_OPTS += -DSOLARUS_USE_LUAJIT=ON
SOLARUS_DEPENDENCIES += luajit
Expand Down

0 comments on commit dc19702

Please sign in to comment.