From 54663b9c917e8c4f578f702c295802a81abb5c1e Mon Sep 17 00:00:00 2001 From: Sylvain Beucler Date: Sun, 11 Mar 2012 09:31:44 +0000 Subject: [PATCH] CMake: Android port git-svn-id: svn+ssh://svn.code.sf.net/p/freeglut/code/trunk/freeglut/freeglut@1105 7f0cb862-5218-0410-a997-914c9d46530a --- CMakeLists.txt | 49 +++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ef47269..808b8c0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,16 +13,13 @@ SET(FREEGLUT_SRCS src/Common/freeglut_cursor.c src/Common/freeglut_display.c src/Common/freeglut_ext.c - src/Common/freeglut_font.c src/Common/freeglut_font_data.c src/Common/freeglut_gamemode.c - src/Common/freeglut_geometry.c src/Common/freeglut_init.c src/Common/freeglut_internal.h src/Common/freeglut_input_devices.c src/Common/freeglut_joystick.c src/Common/freeglut_main.c - src/Common/freeglut_menu.c src/Common/freeglut_misc.c src/Common/freeglut_overlay.c src/Common/freeglut_spaceball.c @@ -30,10 +27,19 @@ SET(FREEGLUT_SRCS src/Common/freeglut_stroke_mono_roman.c src/Common/freeglut_stroke_roman.c src/Common/freeglut_structure.c - src/Common/freeglut_teapot.c src/Common/freeglut_videoresize.c src/Common/freeglut_window.c ) +# Android port requires adding a version of these compatible with +# OpenGL ES (TODO): +IF(NOT ANDROID) + LIST(APPEND FREEGLUT_SRCS + src/Common/freeglut_font.c + src/Common/freeglut_geometry.c + src/Common/freeglut_menu.c + src/Common/freeglut_teapot.c +) +ENDIF() IF(WIN32) LIST(APPEND FREEGLUT_SRCS @@ -54,6 +60,28 @@ IF(WIN32) src/mswin/freeglut_structure_mswin.c src/mswin/freeglut_window_mswin.c ) +ELSEIF(ANDROID) + LIST(APPEND FREEGLUT_SRCS + src/Common/xparsegeometry_repl.c + src/Common/xparsegeometry_repl.h + src/egl/freeglut_internal_egl.h + src/egl/freeglut_display_egl.c + src/egl/freeglut_init_egl.c + src/egl/freeglut_structure_egl.c + src/egl/freeglut_window_egl.c + src/android/native_app_glue/android_native_app_glue.c + src/android/native_app_glue/android_native_app_glue.h + src/android/freeglut_runtime_android.c + src/android/freeglut_gamemode_android.c + src/android/freeglut_input_devices_android.c + src/android/freeglut_joystick_android.c + src/android/freeglut_main_android.c + src/android/freeglut_spaceball_android.c + src/android/freeglut_state_android.c + src/android/freeglut_window_android.c + src/android/opengles_stubs.c + src/android/freeglut_internal_android.h +) ELSE() LIST(APPEND FREEGLUT_SRCS src/x11/freeglut_cursor_x11.c @@ -179,6 +207,19 @@ ELSE() # on Xrandr or Xxf86vm) SET_TARGET_PROPERTIES(freeglut PROPERTIES VERSION 3.9.0 SOVERSION 3 OUTPUT_NAME glut) SET_TARGET_PROPERTIES(freeglut_static PROPERTIES OUTPUT_NAME glut) + IF(ANDROID) + # Not in CMake toolchain file, because the toolchain + # file is called several times and generally doesn't + # seem to be meant for it: + # '-mandroid' is not mandatory but doesn't hurt + # '-O0 -gstabs+' helps the currently buggy GDB port + # '-DANDROID' is the Android build system convention + # Too late to manipulate ENV: SET(ENV{CFLAGS} "$ENV{CFLAGS} -mandroid") + # Not using _INIT variables, they seem to be used internally only + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mandroid") + SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -gstabs+") + ADD_DEFINITIONS(-DANDROID) + ENDIF() ENDIF() IF(BUILD_SHARED_LIBS) TARGET_LINK_LIBRARIES(freeglut ${LIBS}) -- 1.7.10.4