implemented SUPER key/modifier support on windows
[freeglut] / blackberry.toolchain.cmake
index 4c9d264..4518d0f 100644 (file)
@@ -6,7 +6,7 @@
 #   $ source /absolute/path/to/the/bbndk/bbndk-env.sh
 #   $ mkdir build
 #   $ cd build
-#   $ cmake .. -DCMAKE_TOOLCHAIN_FILE="../blackberry.toolchain.cmake" -DBLACKBERRY_ARCHITECTURE=arm -DFREEGLUT_GLES2=ON -DFREEGLUT_BUILD_DEMOS=NO -DCMAKE_VERBOSE_MAKEFILE=TRUE -G "Eclipse CDT4 - Unix Makefiles"
+#   $ cmake .. -DCMAKE_TOOLCHAIN_FILE="../blackberry.toolchain.cmake" -DBLACKBERRY_ARCHITECTURE=arm -DFREEGLUT_GLES=ON -DFREEGLUT_BUILD_DEMOS=NO -DCMAKE_VERBOSE_MAKEFILE=TRUE -G "Eclipse CDT4 - Unix Makefiles"
 #   $ make -j8
 #
 #  Usage Mac:
@@ -16,7 +16,7 @@
 #   > /absolute/path/to/the/bbndk/bbndk-env.bat
 #   > mkdir build
 #   > cd build
-#   > cmake .. -DCMAKE_TOOLCHAIN_FILE="../blackberry.toolchain.cmake" -DBLACKBERRY_ARCHITECTURE=arm -DFREEGLUT_GLES2=ON -DFREEGLUT_BUILD_DEMOS=NO -DCMAKE_VERBOSE_MAKEFILE=TRUE -G "Eclipse CDT4 - Unix Makefiles"
+#   > cmake .. -DCMAKE_TOOLCHAIN_FILE="../blackberry.toolchain.cmake" -DBLACKBERRY_ARCHITECTURE=arm -DFREEGLUT_GLES=ON -DFREEGLUT_BUILD_DEMOS=NO -DCMAKE_VERBOSE_MAKEFILE=TRUE -G "Eclipse CDT4 - Unix Makefiles"
 #   > make -j8
 #
 
@@ -32,6 +32,16 @@ set( BLACKBERRY_TARGET_ROOT "$ENV{QNX_TARGET}" )
 set( CMAKE_SYSTEM_NAME Linux )
 set( CMAKE_SYSTEM_VERSION 1 )
 
+# Check for PlayBook
+if( EXISTS "${BLACKBERRY_TARGET_ROOT}/x86/lib/gcc/4.4.2" )
+  set( PLAYBOOK True )
+endif()
+
+# Check for for GCC 4.8.2
+if( EXISTS "${BLACKBERRY_TARGET_ROOT}/x86/lib/gcc/4.8.2" )
+  set( BB_GCC_482 True )
+endif()
+
 # STL version: by default gnustl_static will be used
 set( BLACKBERRY_USE_STLPORT FALSE CACHE BOOL "Experimental: use stlport_static instead of gnustl_static")
 mark_as_advanced( BLACKBERRY_USE_STLPORT )
@@ -91,21 +101,59 @@ else()
 endif()
 
 # Includes
-list( APPEND BLACKBERRY_SYSTEM_INCLUDE_DIRS "${BLACKBERRY_TARGET_ROOT}/qnx6/usr/include" )
+if( PLAYBOOK )
+ list( APPEND BLACKBERRY_SYSTEM_INCLUDE_DIRS "${BLACKBERRY_TARGET_ROOT}/usr/include" )
+else()
+ list( APPEND BLACKBERRY_SYSTEM_INCLUDE_DIRS "${BLACKBERRY_TARGET_ROOT}/qnx6/usr/include" )
+endif()
 
 # Flags and preprocessor definitions
+set( BB_USING_GCC_482 False )
+if( PLAYBOOK )
+  set( BLACKBERRY_COMP_DEF "-D__PLAYBOOK__" )
+  set( BLACKBERRY_COMP_VERSION "4.4.2" )
+else()
+  set( BLACKBERRY_COMP_DEF "-D__QNX__" )
+  if( BB_GCC_482 AND BLACKBERRY_USE_GCC_4_8 )
+    set( BLACKBERRY_COMP_VERSION "4.8.2" )
+    set( BB_USING_GCC_482 True )
+  else()
+    set( BLACKBERRY_COMP_VERSION "4.6.3" )
+  endif()
+endif()
 if( BLACKBERRY_ARCHITECTURE STREQUAL "arm" )
- set( BLACKBERRY_CC_FLAGS  " -V4.6.3,gcc_ntoarmv7le -D__QNX__" )
- set( BLACKBERRY_CXX_FLAGS " -V4.6.3,gcc_ntoarmv7le -Y_gpp -D__QNX__" )
+  set( BLACKBERRY_COMP_TARGET "gcc_ntoarmv7le" )
+else()
+  set( BLACKBERRY_COMP_TARGET "gcc_ntox86" )
+endif()
+set( BLACKBERRY_CXX_COMP_LIB "" )
+if( BLACKBERRY_DINKUM )
+  set( DINKUM 1 )
+  if( BB_USING_GCC_482 )
+    set( BLACKBERRY_COMP_TARGET "${BLACKBERRY_COMP_TARGET}_cpp" )
+  else()
+    set( BLACKBERRY_CXX_COMP_LIB "-Y_cpp" )
+  endif()
 else()
- set( BLACKBERRY_CC_FLAGS  " -V4.6.3,gcc_ntox86 -D__QNX__" )
- set( BLACKBERRY_CXX_FLAGS " -V4.6.3,gcc_ntox86 -Y_gpp -D__QNX__" )
+  set( DINKUM 0 )
+  if( BB_USING_GCC_482 )
+    set( BLACKBERRY_COMP_TARGET "${BLACKBERRY_COMP_TARGET}_gpp" )
+  else()
+    set( BLACKBERRY_CXX_COMP_LIB "-Y_gpp" )
+  endif()
 endif()
+set( BLACKBERRY_CC_FLAGS  " -V${BLACKBERRY_COMP_VERSION},${BLACKBERRY_COMP_TARGET} ${BLACKBERRY_COMP_DEF}" )
+set( BLACKBERRY_CXX_FLAGS " -V${BLACKBERRY_COMP_VERSION},${BLACKBERRY_COMP_TARGET} ${BLACKBERRY_CXX_COMP_LIB} ${BLACKBERRY_COMP_DEF}" )
 set( BLACKBERRY 1 )
 
 # NDK flags
-set( CMAKE_CXX_FLAGS "${BLACKBERRY_CXX_FLAGS}" )
-set( CMAKE_C_FLAGS "${BLACKBERRY_CC_FLAGS}" )
+if( DINKUM )
+  set( CMAKE_CXX_FLAGS "${BLACKBERRY_CXX_FLAGS} -DBLACKBERRY_DINKUM=1" )
+  set( CMAKE_C_FLAGS "${BLACKBERRY_CC_FLAGS} -DBLACKBERRY_DINKUM=1" )
+else()
+  set( CMAKE_CXX_FLAGS "${BLACKBERRY_CXX_FLAGS}" )
+  set( CMAKE_C_FLAGS "${BLACKBERRY_CC_FLAGS}" )
+endif()
 set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexceptions" )
 set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fexceptions" )
 
@@ -131,7 +179,7 @@ set( CMAKE_SHARED_LINKER_FLAGS "" CACHE STRING "linker flags" )
 SET( CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "" CACHE STRING "linker flags")
 SET( CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "" CACHE STRING "linker flags")
 set( CMAKE_MODULE_LINKER_FLAGS "" CACHE STRING "linker flags" )
-set( CMAKE_EXE_LINKER_FLAGS "-lstdc++ -lm -lEGL -lGLESv2 -lbps -lscreen" CACHE STRING "linker flags" )
+set( CMAKE_EXE_LINKER_FLAGS "-lstdc++" CACHE STRING "linker flags" )
 
 # Finish flags
 set( BLACKBERRY_CXX_FLAGS    "${BLACKBERRY_CXX_FLAGS}"    CACHE INTERNAL "Extra BlackBerry compiler flags")