+ELSEIF(ANDROID OR BLACKBERRY)
+ # BlackBerry and Android share some similar design concepts and ideas, as with many mobile devices.
+ # As such, some classes can be shared between the two. XXX: Possibly rename shareable classes to
+ # a more generic name. *_stub? *_mobile?
+ LIST(APPEND FREEGLUT_SRCS
+ src/android/fg_cursor_android.c
+ src/android/fg_ext_android.c
+ src/android/fg_gamemode_android.c
+ src/android/fg_joystick_android.c
+ src/android/fg_spaceball_android.c
+ )
+ IF(ANDROID)
+ LIST(APPEND FREEGLUT_SRCS
+ src/android/native_app_glue/android_native_app_glue.c
+ src/android/native_app_glue/android_native_app_glue.h
+ src/android/fg_internal_android.h
+ src/android/fg_init_android.c
+ src/android/fg_input_devices_android.c
+ src/android/fg_main_android.c
+ src/android/fg_main_android.h
+ src/android/fg_runtime_android.c
+ src/android/fg_state_android.c
+ src/android/fg_structure_android.c
+ src/android/fg_window_android.c
+ )
+ ELSE()
+ LIST(APPEND FREEGLUT_SRCS
+ src/blackberry/fg_internal_blackberry.h
+ src/blackberry/fg_init_blackberry.c
+ src/x11/fg_input_devices_x11.c
+ src/blackberry/fg_main_blackberry.c
+ src/blackberry/fg_state_blackberry.c
+ src/blackberry/fg_structure_blackberry.c
+ src/blackberry/fg_window_blackberry.c
+ )
+ ENDIF()
+
+ELSE()
+ # UNIX (Wayland)
+ IF(FREEGLUT_WAYLAND)
+ LIST(APPEND FREEGLUT_SRCS
+ src/wayland/fg_cursor_wl.c
+ src/wayland/fg_ext_wl.c
+ src/wayland/fg_gamemode_wl.c
+ src/wayland/fg_init_wl.c
+ src/wayland/fg_internal_wl.h
+ src/wayland/fg_input_devices_wl.c
+ src/wayland/fg_main_wl.c
+ src/wayland/fg_state_wl.c
+ src/wayland/fg_structure_wl.c
+ src/wayland/fg_window_wl.c
+ # font, serial port & joystick code are agnostic
+ src/x11/fg_glutfont_definitions_x11.c
+ src/x11/fg_input_devices_x11.c
+ src/x11/fg_joystick_x11.c
+ )
+ # UNIX (X11)
+ ELSE()
+ LIST(APPEND FREEGLUT_SRCS
+ src/x11/fg_cursor_x11.c
+ src/x11/fg_ext_x11.c
+ src/x11/fg_gamemode_x11.c
+ src/x11/fg_glutfont_definitions_x11.c
+ src/x11/fg_init_x11.c
+ src/x11/fg_internal_x11.h
+ src/x11/fg_input_devices_x11.c
+ src/x11/fg_joystick_x11.c
+ src/x11/fg_main_x11.c
+ src/x11/fg_menu_x11.c
+ src/x11/fg_spaceball_x11.c
+ src/x11/fg_state_x11.c
+ src/x11/fg_structure_x11.c
+ src/x11/fg_window_x11.c
+ src/x11/fg_xinput_x11.c
+ )
+ IF(NOT(FREEGLUT_GLES))
+ LIST(APPEND FREEGLUT_SRCS
+ src/x11/fg_internal_x11_glx.h
+ src/x11/fg_display_x11_glx.c
+ src/x11/fg_state_x11_glx.c
+ src/x11/fg_state_x11_glx.h
+ src/x11/fg_window_x11_glx.c
+ src/x11/fg_window_x11_glx.h
+ )
+ ENDIF()
+ ENDIF()
+ENDIF()
+
+# OpenGL ES requires EGL, and so does Wayland
+IF(FREEGLUT_GLES OR FREEGLUT_WAYLAND)