Skip to content
Snippets Groups Projects
Commit 4bc5c285 authored by Maxime Graulich's avatar Maxime Graulich
Browse files

Add make androidProject and adapt changes for Android

parent 4519ce55
Branches
Tags
No related merge requests found
...@@ -475,14 +475,14 @@ endif(ENABLE_ONELAB) ...@@ -475,14 +475,14 @@ endif(ENABLE_ONELAB)
if(ENABLE_BUILD_IOS) if(ENABLE_BUILD_IOS)
find_file(CMAKE_TOOLCHAIN_FILE "ios.cmake") find_file(CMAKE_TOOLCHAIN_FILE "ios.cmake")
if(NOT CMAKE_TOOLCHAIN_FILE) if(NOT CMAKE_TOOLCHAIN_FILE)
message(SEND_ERROR "Cannot compile Gmsh for iOS without a toolchain") message(FATAL_ERROR "Cannot compile Gmsh for iOS without a toolchain")
endif(NOT CMAKE_TOOLCHAIN_FILE) endif(NOT CMAKE_TOOLCHAIN_FILE)
endif(ENABLE_BUILD_IOS) endif(ENABLE_BUILD_IOS)
if(ENABLE_BUILD_ANDROID) if(ENABLE_BUILD_ANDROID)
find_file(CMAKE_TOOLCHAIN_FILE "android.toolchain.cmake") find_file(CMAKE_TOOLCHAIN_FILE "android.toolchain.cmake")
if(NOT CMAKE_TOOLCHAIN_FILE) if(NOT CMAKE_TOOLCHAIN_FILE)
message(SEND_ERROR "Cannot compile Gmsh for android without android-cmake") message(FATAL_ERROR "Cannot compile Gmsh for android without android-cmake")
endif(NOT CMAKE_TOOLCHAIN_FILE) endif(NOT CMAKE_TOOLCHAIN_FILE)
set(CMAKE_BUILD_TYPE Release) set(CMAKE_BUILD_TYPE Release)
set(LIBRARY_OUTPUT_PATH_ROOT ${CMAKE_CURRENT_BINARY_DIR}) set(LIBRARY_OUTPUT_PATH_ROOT ${CMAKE_CURRENT_BINARY_DIR})
......
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
cmake_minimum_required(VERSION 2.8 FATAL_ERROR) cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
set(DEFAULT ON CACHE INTERNAL "Default value for enabled-by-default options")
if(APPLE) if(APPLE)
option(ENABLE_BUILD_IOS "Build XCode project for iOS (ARM)" OFF) option(ENABLE_BUILD_IOS "Build XCode project for iOS (ARM)" OFF)
option(ENABLE_BUILD_IOS_EMULATOR "Build XCode project for iOS emulator (x86)" ON) option(ENABLE_BUILD_IOS_EMULATOR "Build XCode project for iOS emulator (x86)" ON)
...@@ -79,8 +77,13 @@ if(ENABLE_BUILD_IOS_EMULATOR OR ENABLE_BUILD_IOS) ...@@ -79,8 +77,13 @@ if(ENABLE_BUILD_IOS_EMULATOR OR ENABLE_BUILD_IOS)
endif(ENABLE_BUILD_IOS_EMULATOR OR ENABLE_BUILD_IOS) endif(ENABLE_BUILD_IOS_EMULATOR OR ENABLE_BUILD_IOS)
if(ENABLE_BUILD_ANDROID) if(ENABLE_BUILD_ANDROID)
append_src(drawGModel.cpp) append_src(drawContext.cpp)
append_src(movePosition.h)
append_src(Trackball.cpp)
append_src(androidGModel.cpp) append_src(androidGModel.cpp)
append_src(drawString.cpp)
append_src(drawGeom.cpp)
append_src(drawMesh.cpp)
# user must specify the android-cmake toolchain # user must specify the android-cmake toolchain
find_file(CMAKE_TOOLCHAIN_FILE "android.toolchain.cmake") find_file(CMAKE_TOOLCHAIN_FILE "android.toolchain.cmake")
if(NOT CMAKE_TOOLCHAIN_FILE) if(NOT CMAKE_TOOLCHAIN_FILE)
...@@ -116,4 +119,23 @@ if(ENABLE_BUILD_ANDROID) ...@@ -116,4 +119,23 @@ if(ENABLE_BUILD_ANDROID)
set( LIBRARY_DEPS GLESv1_CM log) set( LIBRARY_DEPS GLESv1_CM log)
set_target_properties(androidOnelab PROPERTIES OUTPUT_NAME Onelab) set_target_properties(androidOnelab PROPERTIES OUTPUT_NAME Onelab)
target_link_libraries(androidOnelab ${LIBRARY_DEPS} ${EXTERNAL_LIBRARIES}) target_link_libraries(androidOnelab ${LIBRARY_DEPS} ${EXTERNAL_LIBRARIES})
find_library(PETSC_LIB petsc PATH_SUFFIXES lib)
find_library(BLAS_LIB f2cblas PATH_SUFFIXES lib)
find_library(LAPACK_LIB f2clapack PATH_SUFFIXES lib)
set(ONELAB_LIB ${CMAKE_CURRENT_BINARY_DIR}/libs/libOnelab.so)
if(PETSC_LIB AND BLAS_LIB AND LAPACK_LIB AND ONELAB_LIB)
add_custom_target(androidProject
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/Onelab/
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/Android/ ${CMAKE_CURRENT_BINARY_DIR}/Onelab/
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/Onelab/libs/armeabi-v7a/
COMMAND ${CMAKE_COMMAND} -E copy ${GMSH_LIB} ${CMAKE_CURRENT_BINARY_DIR}/Onelab/libs/armeabi-v7a/
COMMAND ${CMAKE_COMMAND} -E copy ${GETDP_LIB} ${CMAKE_CURRENT_BINARY_DIR}/Onelab/libs/armeabi-v7a/
COMMAND ${CMAKE_COMMAND} -E copy ${ONELAB_LIB} ${CMAKE_CURRENT_BINARY_DIR}/Onelab/libs/armeabi-v7a/
COMMAND ${CMAKE_COMMAND} -E copy ${PETSC_LIB} ${CMAKE_CURRENT_BINARY_DIR}/Onelab/libs/armeabi-v7a/
COMMAND ${CMAKE_COMMAND} -E copy ${LAPACK_LIB} ${CMAKE_CURRENT_BINARY_DIR}/Onelab/libs/armeabi-v7a/
COMMAND ${CMAKE_COMMAND} -E copy ${BLAS_LIB} ${CMAKE_CURRENT_BINARY_DIR}/Onelab/libs/armeabi-v7a/
)
else(PETSC_LIB AND BLAS_LIB AND LAPACK_LIB AND ONELAB_LIB)
message(STATUS "Cannot make Android project without PETSc or without BLAS or without LAPACK or without \"Onelab library\"")
endif(PETSC_LIB AND BLAS_LIB AND LAPACK_LIB AND ONELAB_LIB)
endif(ENABLE_BUILD_ANDROID) endif(ENABLE_BUILD_ANDROID)
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include "movePosition.h" #include "movePosition.h"
void drawArray(VertexArray *va, int type, bool colorArray=false);
int onelab_cb(std::string); int onelab_cb(std::string);
class drawContext{ class drawContext{
......
...@@ -16,6 +16,8 @@ ...@@ -16,6 +16,8 @@
#include <gmsh/Gmsh.h> #include <gmsh/Gmsh.h>
#include <gmsh/GModel.h> #include <gmsh/GModel.h>
#include <gmsh/PView.h>
#include <gmsh/Context.h>
#endif #endif
#include "drawContext.h" #include "drawContext.h"
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include <gmsh/GFaceCompound.h> #include <gmsh/GFaceCompound.h>
#include <gmsh/PView.h> #include <gmsh/PView.h>
#include <gmsh/PViewData.h> #include <gmsh/PViewData.h>
#include <gmsh/Context.h>
#endif #endif
#include "drawContext.h" #include "drawContext.h"
......
...@@ -13,10 +13,10 @@ if [ -z "$ANDROID_NDK" ]; then ...@@ -13,10 +13,10 @@ if [ -z "$ANDROID_NDK" ]; then
exit 1 exit 1
fi fi
if [ -z "$ANDROID_SDK" ]; then if [ -z "$ANDROID_SDK" ]; then
echo "ERROR: You must specify android SDK path: export ANDROID_NDK=/path/to/android-sdk/" echo "ERROR: You must specify android SDK path: export ANDROID_SDK=/path/to/android-sdk/"
exit 1 exit 1
fi fi
if [ -z "$ANDROID_TOOLCHAIN" ] && [ -f "$ANDROID_TOOLCHAIN" ]; then if [ -z "$ANDROID_TOOLCHAIN" ] || [ ! -f "$ANDROID_TOOLCHAIN" ]; then
echo "ERROR: You must specify a valid android toolchain: export ANDROID_TOOLCHAIN=/path/to/android.toolchain.cmake" echo "ERROR: You must specify a valid android toolchain: export ANDROID_TOOLCHAIN=/path/to/android.toolchain.cmake"
exit 1 exit 1
fi fi
...@@ -28,7 +28,7 @@ if [ ! -d "getdp" ]; then svn --username gmsh --password gmsh co https://geuz.or ...@@ -28,7 +28,7 @@ if [ ! -d "getdp" ]; then svn --username gmsh --password gmsh co https://geuz.or
if [ ! -d "gmsh.android" ]; then mkdir gmsh.android; fi if [ ! -d "gmsh.android" ]; then mkdir gmsh.android; fi
if [ ! -d "getdp.android" ]; then mkdir getdp.android; fi if [ ! -d "getdp.android" ]; then mkdir getdp.android; fi
if [ ! -d "onelab.android" ]; then mkdir onelab.android; fi if [ ! -d "onelab.android" ]; then mkdir onelab.android; fi
if [ ! -f "petsc.android/libpetsc.so" ] || [ ! -f "petsc.android/libf2clapack.so" ] || [ ! -f "petsc.android/libf2cblas.so" ] || [ ! -d "petsc.android/inclue/" ]; then if [ ! -f "petsc.android/libpetsc.so" ] || [ ! -f "petsc.android/libf2clapack.so" ] || [ ! -f "petsc.android/libf2cblas.so" ] || [ ! -d "petsc.android/include/" ]; then
echo "ERROR: petsc.android do not exist or is incomplete (need blas, lapack and petsc)" echo "ERROR: petsc.android do not exist or is incomplete (need blas, lapack and petsc)"
exit 1 exit 1
fi fi
...@@ -53,22 +53,18 @@ checkError $? "make getHeaders fail (GetDP)" ...@@ -53,22 +53,18 @@ checkError $? "make getHeaders fail (GetDP)"
cd ../onelab.android cd ../onelab.android
echo -e "\033[1m[+] Make Onelab interface library\033[0m" echo -e "\033[1m[+] Make Onelab interface library\033[0m"
cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_TOOLCHAIN -DENABLE_BUILD_ANDROID=1 -DGETDP_LIB=../getdp.android/libs/libGetDP.so -DGETDP_INC=../getdp.android/Headers/ -DGMSH_LIB=../gmsh.android/libs/libGmsh.so -DGMSH_INC=../gmsh.android/Headers/ ../gmsh/contrib/mobile/ cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_TOOLCHAIN -DENABLE_BUILD_ANDROID=1 -DGETDP_LIB=../getdp.android/libs/libGetDP.so -DGETDP_INC=../getdp.android/Headers/ -DGMSH_LIB=../gmsh.android/libs/libGmsh.so -DGMSH_INC=../gmsh.android/Headers/ -DPETSC_LIB=../petsc.android/libpetsc.so -DBLAS_LIB=../petsc.android/libf2cblas.so -DLAPACK_LIB=../petsc.android/libf2clapack.so ../gmsh/contrib/mobile/
checkError $? "CMake fail (Onelab)" checkError $? "CMake fail (Onelab)"
make androidOnelab -j3 make androidOnelab -j3
checkError $? "make fail (Onelab)" checkError $? "make fail (Onelab)"
make androidProject
checkError $? "make Android project fail (Onelab)"
echo -e "\033[1m[+] Build Android application (java)\033[0m" echo -e "\033[1m[+] Build Android application (java)\033[0m"
cd ../gmsh/contrib/mobile/Android cd Onelab/
if [ ! -d "libs/armeabi-v7a/" ]; then mkdir -p libs/armeabi-v7a/; fi if [ ! -d "libs/armeabi-v7a/" ]; then mkdir -p libs/armeabi-v7a/; fi
cp $ANDROID_SDK/extras/android/support/v4/android-support-v4.jar libs/ cp $ANDROID_SDK/extras/android/support/v4/android-support-v4.jar libs/
checkError $? "Copy android support v4 fail (Android)" checkError $? "Copy android support v4 fail (Android)"
cp ../../../../gmsh.android/libs/libGmsh.so libs/armeabi-v7a/
cp ../../../../getdp.android/libs/libGetDP.so libs/armeabi-v7a/
cp ../../../../onelab.android/libs/libOnelab.so libs/armeabi-v7a/
cp ../../../../petsc.android/libpetsc.so libs/armeabi-v7a/
cp ../../../../petsc.android/libf2clapack.so libs/armeabi-v7a/
cp ../../../../petsc.android/libf2cblas.so libs/armeabi-v7a/
target=1 target=1
count=0 count=0
while read line; do while read line; do
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment