@@ -234,27 +234,35 @@ if(ENABLE_DISCORD)
234234 add_subdirectory (external/discord-sdk EXCLUDE_FROM_ALL )
235235endif ()
236236
237- set (USE_GL_LIBRARY "glew" CACHE STRING "Which OpenGL function library to choose from (e.g. glew, libepoxy)" )
237+ if (ANDROID )
238+ set (USE_GL_LIBRARY_DEFAULT "libepoxy" )
239+ else ()
240+ set (USE_GL_LIBRARY_DEFAULT "glew" )
241+ endif ()
242+ set (USE_GL_LIBRARY ${USE_GL_LIBRARY_DEFAULT} CACHE STRING "Which OpenGL function library to choose from (e.g. glew, libepoxy)" )
238243set_property (CACHE USE_GL_LIBRARY PROPERTY STRINGS glew libepoxy )
239244
240245set (HAVE_OPENGL NO )
241246set (HAVE_CURL NO )
242247set (HAVE_GLEW NO )
243248set (HAVE_EPOXY NO )
244- # OpenGL for Emscripten is added in Emscripten.cmake
245- if (ENABLE_OPENGL AND NOT EMSCRIPTEN)
249+ if (ANDROID )
250+ # SDL already adds OpenGLES to the linker command
251+ set (HAVE_OPENGL YES )
252+ set (USE_OPENGLES2 YES )
253+ elseif (ENABLE_OPENGL AND NOT EMSCRIPTEN)
246254 set (OpenGL_GL_PREFERENCE "LEGACY" )
247- find_package (OpenGL )
255+ find_package (OpenGL QUIET )
248256
249- if (OPENGL_FOUND)
250- if (" ${ USE_GL_LIBRARY} " STREQUAL "glew" )
257+ if (OPENGL_FOUND OR ANDROID )
258+ if (USE_GL_LIBRARY STREQUAL "glew" )
251259 message (STATUS "Using glew" )
252260 add_package (TARGET GLEW
253261 PKG GLEW PKG_USE GLEW::GLEW CONFIG REQUIRED PKG_CONFIG glew
254262 PREFER_PKGCONFIG )
255263 set (HAVE_OPENGL "${ADDPKG_GLEW_FOUND} " )
256264 set (HAVE_GLEW ON )
257- elseif (" ${ USE_GL_LIBRARY} " STREQUAL "libepoxy" )
265+ elseif (USE_GL_LIBRARY STREQUAL "libepoxy" )
258266 message (STATUS "Using libepoxy" )
259267 add_package (TARGET libepoxy
260268 PKG libepoxy PKG_CONFIG epoxy libepoxy
@@ -419,7 +427,6 @@ else()
419427 set_property (TARGET squirrel PROPERTY INTERPROCEDURAL_OPTIMIZATION OFF )
420428endif ()
421429
422-
423430# Include altivec wrapper on ppc
424431if (CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc.*" )
425432 target_include_directories (supertux2 PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} /src/ppc )
@@ -456,11 +463,12 @@ if(NOT EMSCRIPTEN)
456463 set (HAVE_CURL YES )
457464 endif ()
458465
459- if (HAVE_OPENGL)
460- if ("${USE_GL_LIBRARY} " STREQUAL "glew" )
461- target_link_libraries (supertux2 PUBLIC OpenGL::GL GLEW )
466+ if (HAVE_OPENGL AND NOT ANDROID )
467+ target_link_libraries (supertux2 PUBLIC OpenGL::GL )
468+ if (USE_GL_LIBRARY STREQUAL "glew" )
469+ target_link_libraries (supertux2 PUBLIC GLEW )
462470 else ()
463- target_link_libraries (supertux2 PUBLIC OpenGL::GL libepoxy )
471+ target_link_libraries (supertux2 PUBLIC libepoxy )
464472 endif ()
465473 endif ()
466474
@@ -484,21 +492,22 @@ configure_file(config.h.in ${CMAKE_BINARY_DIR}/config.h)
484492if (ANDROID )
485493 set (ANDROID_PROJECT_DIR "${PROJECT_SOURCE_DIR} /mk/android/" CACHE PATH
486494 "Path to the root of the root of the android project" )
487- if (NOT EXISTS "${ANDROID_PROJECT_DIR} /assetpack/src/main/assets/data.zip" )
488- get_filename_component (DATADIR ${PROJECT_SOURCE_DIR} /data REALPATH )
489- if (NOT EXISTS ${ANDROID_PROJECT_DIR} /assetpack/src/main/assets)
490- file (MAKE_DIRECTORY ${ANDROID_PROJECT_DIR} /assetpack/src/main/assets )
491- endif ()
492- file (GLOB DATA_CONTENTS RELATIVE ${DATADIR} ${DATADIR} /* )
493- #file(ARCHIVE_CREATE OUTPUT ${ANDROID_PROJECT_DIR}/app/src/main/assets/data.zip PATHS ${DATA_CONTENTS} FORMAT zip)
494- execute_process (COMMAND ${CMAKE_COMMAND} -E tar "cfv"
495- "${ANDROID_PROJECT_DIR} /assetpack/src/main/assets/data.zip"
496- --format=zip
497- ${DATA_CONTENTS}
498-
499- WORKING_DIRECTORY ${DATADIR}
500- )
495+ set (ANDROID_ASSETS_DIR "${ANDROID_PROJECT_DIR} /assetpack/src/main/assets" )
496+ set (ANDROID_DATA_ZIP "${ANDROID_ASSETS_DIR} /data.zip" )
497+ get_filename_component (DATA_DIR ${PROJECT_SOURCE_DIR} /data REALPATH )
498+
499+ if (NOT EXISTS "${ANDROID_ASSETS_DIR} " )
500+ file (MAKE_DIRECTORY "${ANDROID_ASSETS_DIR} " )
501501 endif ()
502+
503+ file (GLOB DATA_CONTENTS RELATIVE "${DATA_DIR} " "${DATA_DIR} /*" )
504+ add_custom_command (
505+ OUTPUT "${ANDROID_DATA_ZIP} "
506+ COMMAND ${CMAKE_COMMAND} -E tar "cfv" "${ANDROID_DATA_ZIP} " --format=zip ${DATA_CONTENTS}
507+ WORKING_DIRECTORY "${DATA_DIR} "
508+ COMMENT "Creating data.zip for android assets"
509+ )
510+ target_sources (supertux2 PRIVATE "${ANDROID_DATA_ZIP} " )
502511endif ()
503512
504513## Build tests
0 commit comments