Prevented case where no window was set when waiting for events.
[freeglut] / CMakeLists.txt
index 577947d..16661e6 100644 (file)
@@ -26,10 +26,10 @@ OPTION(FREEGLUT_BUILD_SHARED_LIBS "Build FreeGLUT shared library." ON)
 OPTION(FREEGLUT_BUILD_STATIC_LIBS "Build FreeGLUT static library." ON)
 
 # option for whether warnings and errors should be printed
-OPTION(FREEGLUT_ERRORS "Lib prints errors to stderr" ON)
-#MARK_AS_ADVANCED(FREEGLUT_ERRORS)
-OPTION(FREEGLUT_WARNINGS "Lib prints warnings to stderr" ON)
-#MARK_AS_ADVANCED(FREEGLUT_WARNINGS)
+OPTION(FREEGLUT_PRINT_ERRORS "Lib prints errors to stderr" ON)
+#MARK_AS_ADVANCED(FREEGLUT_PRINT_ERRORS)
+OPTION(FREEGLUT_PRINT_WARNINGS "Lib prints warnings to stderr" ON)
+#MARK_AS_ADVANCED(FREEGLUT_PRINT_WARNINGS)
 
 # option to also copy .pdb files to install directory when executing
 # INSTALL target
@@ -118,25 +118,38 @@ IF(WIN32)
         )
     ENDIF()
 
-ELSEIF(ANDROID)
+ELSEIF(ANDROID OR BLACKBERRY)
     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_cursor_android.c
         src/android/fg_ext_android.c
         src/android/fg_gamemode_android.c
-        src/android/fg_init_android.c
-        src/android/fg_input_devices_android.c
         src/android/fg_joystick_android.c
-        src/android/fg_main_android.c
-        src/android/fg_main_android.h
-        src/android/fg_runtime_android.c
         src/android/fg_spaceball_android.c
-        src/android/fg_state_android.c
         src/android/fg_structure_android.c
-        src/android/fg_window_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_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_window_blackberry.c
+        )
+    ENDIF()
 ELSE()
     LIST(APPEND FREEGLUT_SRCS
         src/x11/fg_cursor_x11.c
@@ -219,14 +232,14 @@ ENDIF()
 
 IF(CMAKE_COMPILER_IS_GNUCC)
   SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
-  IF(!ANDROID)
+  IF(NOT(ANDROID OR BLACKBERRY))
     # not setting -ansi as EGL/KHR headers doesn't support it
     SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ansi")
   ENDIF()
 ENDIF(CMAKE_COMPILER_IS_GNUCC)
 
 INCLUDE(CheckIncludeFiles)
-IF(UNIX AND NOT ANDROID)
+IF(UNIX AND NOT(ANDROID OR BLACKBERRY))
     FIND_PACKAGE(X11 REQUIRED)
     LIST(APPEND LIBS ${X11_LIBRARIES})
     IF(X11_Xrandr_FOUND)
@@ -251,6 +264,11 @@ IF(ANDROID)
     # -landroid for ANativeWindow
     # -llog for native Android logging
     LIST(APPEND LIBS android log)
+ELSEIF(BLACKBERRY)
+    # -lbps for event loop
+    # -lslog2 for logging
+    # -screen for native screen
+    LIST(APPEND LIBS bps slog2 screen)
 ENDIF()
 
 INCLUDE(CheckFunctionExists)
@@ -349,8 +367,12 @@ ELSE()
       SET(LIBNAME glut)
     ENDIF()
 
-    SET_TARGET_PROPERTIES(freeglut PROPERTIES VERSION 3.9.0 SOVERSION 3 OUTPUT_NAME ${LIBNAME})
-    SET_TARGET_PROPERTIES(freeglut_static PROPERTIES OUTPUT_NAME ${LIBNAME})
+    IF(FREEGLUT_BUILD_SHARED_LIBS)
+      SET_TARGET_PROPERTIES(freeglut PROPERTIES VERSION 3.9.0 SOVERSION 3 OUTPUT_NAME ${LIBNAME})
+    ENDIF()
+    IF(FREEGLUT_BUILD_STATIC_LIBS)
+      SET_TARGET_PROPERTIES(freeglut_static PROPERTIES OUTPUT_NAME ${LIBNAME})
+    ENDIF()
     IF(ANDROID)
         # Not in CMake toolchain file, because the toolchain
         # file is called several times and generally doesn't
@@ -460,12 +482,16 @@ IF(WIN32)
 ELSEIF(FREEGLUT_GLES2)
   IF(ANDROID)
     SET(PC_LIBS_PRIVATE "-llog -landroid -lGLESv2 -lEGL -lm")
+  ELSEIF(BLACKBERRY)
+    SET(PC_LIBS_PRIVATE "-lbps -lslog2 -lscreen -lGLESv2 -lEGL -lm")
   ELSE()
     SET(PC_LIBS_PRIVATE "-lX11 -lXxf86vm -lXrandr -lGLESv2 -lEGL -lm")
   ENDIF()
 ELSEIF(FREEGLUT_GLES1)
   IF(ANDROID)
     SET(PC_LIBS_PRIVATE "-llog -landroid -lGLESv1_CM -lEGL -lm")
+  ELSEIF(BLACKBERRY)
+    SET(PC_LIBS_PRIVATE "-lbps -lslog2 -lscreen -lGLESv1_CM -lEGL -lm")
   ELSE()
     SET(PC_LIBS_PRIVATE "-lX11 -lXxf86vm -lXrandr -lGLESv1_CM -lEGL -lm")
   ENDIF()