]> OCCT Git - occt-wok.git/commitdiff
0025146: Porting to Android
authoribs <ibs@opencascade.com>
Tue, 12 Aug 2014 09:11:35 +0000 (13:11 +0400)
committeribs <ibs@opencascade.com>
Wed, 24 Sep 2014 12:09:23 +0000 (16:09 +0400)
osutils.tcl - link to GLESv2
gl2ps, x-libs disabled for android. GLESv1_CM/EGL libraries added for OpenGL ES 1.1 emulator
supports a per-thread CPU usage timer turned on for android

0024444: Fix compilation issues on some not fully POSIX compliant Unix systems
list of being used android
hide draw module if current occt building for android

src/WOKTclLib/OS.tcl
src/WOKTclLib/osutils.tcl

index fcea405d119c37490985126e71ce08baf57835dc..60363e77f47163b3f0e67802ee9b4e8644a832ac 100755 (executable)
@@ -2992,7 +2992,15 @@ proc OS:MKCMK { theOutDir {theModules {}} {theAllSolution ""} } {
   # modules of occt
   set aBuff [list]
   foreach aModule $theModules {
+    if {$aModule == "Draw"} {
+      lappend aBuff "IF (NOT DEFINED ANDROID)"
+    }
+    
     lappend aBuff "SET(BUILD_${aModule} ON CACHE BOOL \"include ${aModule}\"  )"
+    
+    if {$aModule == "Draw"} {
+      lappend aBuff "ENDIF()"
+    }
   }
   regsub -all -- {__MODULE_LIST__}  $aModulesTmpl  [join $aBuff "\n"] aModulesTmpl
 
index 33d4ffe33df4a56e6f855448e0339148755e31a3..6b490b5bd3ed104a2e492d8d45d92be4a0b9f75d 100755 (executable)
@@ -1897,7 +1897,7 @@ proc osutils:csfList { theOS  theCsfMap theTarget} {
       set aCsfMap(CSF_OpenGlLibs) "GLU GL"
 
     } elseif { "$theOS" == "mac" } {
-      set aCsfMap(CSF_objc)     "objc"
+      set aCsfMap(CSF_objc)       "objc"
 
       # frameworks
       set aCsfMap(CSF_Appkit)     "Appkit"
@@ -1905,10 +1905,15 @@ proc osutils:csfList { theOS  theCsfMap theTarget} {
       set aCsfMap(CSF_OpenGlLibs) "OpenGL"
       set aCsfMap(CSF_TclLibs)    "Tcl"
       set aCsfMap(CSF_TclTkLibs)  "Tk"
+    } elseif { "$theOS" == "android" } {
+      set aCsfMap(CSF_ThreadLibs) "c"
+      set aCsfMap(CSF_OpenGlLibs) "EGL GLESv2"
     }
 
-    set aCsfMap(CSF_XwLibs)     "X11 Xext Xmu Xi"
-    set aCsfMap(CSF_MotifLibs)  "X11"
+    if { "$theOS" != "android" } {
+      set aCsfMap(CSF_XwLibs)     "X11 Xext Xmu Xi"
+      set aCsfMap(CSF_MotifLibs)  "X11"
+    }
 
     # variable is required for support for OCCT version that use fgtl
     #-- FTGL (font renderer for OpenGL)
@@ -1925,7 +1930,9 @@ proc osutils:csfList { theOS  theCsfMap theTarget} {
     set aCsfMap(CSF_FreeImagePlus)  "freeimage"
 
     #-- GL2PS
-    set aCsfMap(CSF_GL2PS)          "gl2ps"
+    if { "$theOS" != "android" } {
+      set aCsfMap(CSF_GL2PS)          "gl2ps"
+    }
 
     #-- OpenCL
     set aCsfMap(CSF_OPENCL)         "OpenCL"
@@ -2016,6 +2023,7 @@ proc osutils:cmktk { theOutDir theToolKit {theIsExec false} theModule} {
   set anUsedWntLibs        [osutils:usedOsLibs $theToolKit "wnt" cmake]
   set anUsedUnixLibs       [osutils:usedOsLibs $theToolKit "lin" cmake]
   set anUsedMacLibs        [osutils:usedOsLibs $theToolKit "mac"]
+  set anUsedAndroidLibs    [osutils:usedOsLibs $theToolKit "android"]
 
   set anUnits [list]
   foreach anUnitWithPath [osutils:tk:units [woklocate -u $theToolKit]] {
@@ -2221,6 +2229,24 @@ proc osutils:cmktk { theOutDir theToolKit {theIsExec false} theModule} {
       lappend aFileBuff "  list( APPEND ${theToolKit}_USED_LIBS ${anUsedMacLib} )"
     }
   }
+  lappend aFileBuff "elseif(ANDROID)"
+  foreach anUsedAndroidLib $anUsedAndroidLibs {
+    if { $anUsedAndroidLib == "tbb" || $anUsedAndroidLib == "tbbmalloc" } {
+      lappend aFileBuff "  if(USE_TBB)"
+      lappend aFileBuff "    list( APPEND ${theToolKit}_USED_LIBS ${anUsedAndroidLib} )"
+      lappend aFileBuff "  endif()"
+    } elseif { $anUsedAndroidLib == "freeimage" } {
+      lappend aFileBuff "  if(USE_FREEIMAGE)"
+      lappend aFileBuff "    list( APPEND ${theToolKit}_USED_LIBS ${anUsedAndroidLib} )"
+      lappend aFileBuff "  endif()"
+    } elseif { $anUsedAndroidLib == "gl2ps" } {
+      lappend aFileBuff "  if(USE_GL2PS)"
+      lappend aFileBuff "    list( APPEND ${theToolKit}_USED_LIBS ${anUsedAndroidLib} )"
+      lappend aFileBuff "  endif()"
+    } elseif { $anUsedAndroidLib != "" } {
+      lappend aFileBuff "  list( APPEND ${theToolKit}_USED_LIBS ${anUsedAndroidLib} )"
+    }
+  }
   lappend aFileBuff "else()"
   foreach anUsedUnixLib $anUsedUnixLibs {
     if { $anUsedUnixLib == "tbb" || $anUsedUnixLib == "tbbmalloc" } {