Ogre編譯環境所需配置:
1、Android NDK版本16
2、Android Stuido 3.3
3、Java版本jdk1.8.0_131
4、CMake 3.16.0-rc3
5、Python2.7.13
4、swigwin-3.0.8 Ogre自動生成Java接口需要。
把以上的sdk安裝好後,需要在環境變量中配置一下,理論上以上版本不限定。
Ogre下載地址:https://github.com/OGRECave/ogre.git 作者每天在更新。在Ogre的當前目錄中創建一個build_android.bat 文件,文件的編譯的配置如下:
cmake -E make_directory "build/" && cd build/ && cmake -DCMAKE_TOOLCHAIN_FILE="%ANDROID_NDK%\build\cmake\android.toolchain.cmake" -DCMAKE_MAKE_PROGRAM="%ANDROID_NDK%/prebuilt/windows-x86_64/bin/make.exe" -DANDROID_STL="c++_static" -DANDROID_ABI="armeabi-v7a" -G "Unix Makefiles" -DANDROID=TRUE -DANDROID_PLATFORM=android-18 -DANDROID_NATIVE_API_LEVEL=18 -DANDROID_TOOLCHAIN=clang -DCMAKE_CONFIGURATION_TYPES=Release -DOGRE_BUILD_COMPONENT_OVERLAY_IMGUI=OFF -DOGRE_BUILD_SAMPLER_DEMO=TRUE -DOGRE_BUILD_ANDROID_JNI_SAMPLE=TRUE -DOGRE_DEPENDENCIES_DIR="../AndroidDependencies" ..
cmake --build ./
cd ..
pause
創建一個build目錄並且cd進入build目錄下,用來存放編譯文件。
cmake -E make_directory "build/" && cd build/
指定Android NDK中的cmake,%ANDROID_NDK%需要在環境變量中配置NDK的路徑。
-DCMAKE_TOOLCHAIN_FILE="%ANDROID_NDK%\build\cmake\android.toolchain.cmake"
-DCMAKE_MAKE_PROGRAM="%ANDROID_NDK%/prebuilt/windows-x86_64/bin/make.exe"
編譯選項的設定,設置NDK的編譯版本,Android宏定義,編譯器使用clang等等。
-DANDROID_STL="c++_static" -DANDROID_ABI="armeabi-v7a" -G "Unix Makefiles" -DANDROID=TRUE
-DANDROID_PLATFORM=android-18 -DANDROID_NATIVE_API_LEVEL=18 -DANDROID_TOOLCHAIN=clang
-DCMAKE_CONFIGURATION_TYPES=Release
該版去掉了IMGUI部分代碼所以需要關閉掉,不然會報錯。
-DOGRE_BUILD_COMPONENT_OVERLAY_IMGUI=OFF
設置編譯生成Android Demo,好像這裏設定起不了作用。
-DOGRE_BUILD_SAMPLER_DEMO=TRUE -DOGRE_BUILD_ANDROID_JNI_SAMPLE=TRUE
需要修改Ogre的CMakeList.txt,把FALSE設置爲TRUE
指定編譯好的依賴庫libFreeImage.a libfreetype.a libOIS.a等等,末尾中的..是指向Ogre根目錄下的CMakeList.txt路徑,例如:cd build/xxx ,則使用../../往上跳兩級目錄才能到達Ogre的根目錄代碼中,我們這裏只使用了一層目錄就能指定Ogre CMakeList。
-DOGRE_DEPENDENCIES_DIR="../AndroidDependencies" ..
開始編譯.....
cmake --build ./
需要修改2處地方:
1、在PlugIns/DotScene/CMakeLists.txt 需要對libpugixml.a 指定路徑否則編譯錯誤,還需要把pugiconfig.hpp,pugixml.hpp拷貝到PlugIns\DotScene\include下。
2、在Ogre 目錄下需要在CMake/Utils/PrecompiledHeader.cmake 該行需要註釋掉否則編譯會報錯。
執行build_android.bat,如果編譯不通過請使用Visual Studio 編譯器自帶的VS2015 x64控制檯。
build的目錄下生成一個OgreJNI工程,可以用android studio 3.4打開。
編譯好的工程:https://github.com/octopus888/android_ogre1.12.6.git 目錄下OgreJNI_3.3可以使用android studio 3.3打開。