From bbb272ef03f712fa7be41a096bd99b66888b3a71 Mon Sep 17 00:00:00 2001
From: Maxime Graulich <maxime.graulich@gmail.com>
Date: Fri, 10 May 2013 14:36:27 +0000
Subject: [PATCH] Fix BLAS and LAPACK for Android

---
 CMakeLists.txt | 36 +++++++++++++++---------------------
 1 file changed, 15 insertions(+), 21 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index ccbec4b74e..6a9066c204 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -293,8 +293,16 @@ if(ENABLE_BLAS_LAPACK)
     set_config_option(HAVE_LAPACK "Lapack(VecLib)")
   endif(MSVC)
   if(BUILD_ANDROID)
-    set_config_option(HAVE_BLAS "Blas")
-    set_config_option(HAVE_LAPACK "Lapack")
+    find_library(BLAS_LIB f2cblas PATH_SUFFIXES lib)
+    find_library(LAPACK_LIB f2clapack PATH_SUFFIXES lib)
+    if(BLAS_LIB)
+      list(APPEND EXTERNAL_LIBRARIES ${BLAS_LIB})
+      set_config_option(HAVE_BLAS "Blas")
+    endif(BLAS_LIB)
+    if(LAPACK_LIB)
+      list(APPEND EXTERNAL_LIBRARIES ${LAPACK_LIB})
+      set_config_option(HAVE_LAPACK "Lapack")
+    endif(LAPACK_LIB)
   endif(BUILD_ANDROID)
   if(NOT HAVE_BLAS OR NOT HAVE_LAPACK)
     # if we haven't found blas and lapack without using the standard
@@ -443,27 +451,16 @@ if(ENABLE_BUILD_IOS)
 endif(ENABLE_BUILD_IOS)
 
 if(ENABLE_BUILD_ANDROID)
-  # we need getdp lib
-  #find_library(GETDP_LIB Gmsh PATH_SUFFIXES lib)
-  #find_path(GETDP_INC "GetDP.h" PATH_SUFFIXES include getdp include/getdp)
-  #if(GETDP_LIB AND GETDP_INC)
-  #  list(APPEND EXTERNAL_LIBRARIES ${GETDP_LIB})
-  #  list(APPEND EXTERNAL_INCLUDES ${GETDP_INC})
-  #  set_config_option(HAVE_GETDP "GetDP")
-  #else(GETDP_LIB AND GETDP_INC)
-  #  message(SEND_ERROR "Cannot compile Gmsh for Android without GetDP")
-  #endif(GETDP_LIB AND GETDP_INC)
-  # then we can make gmsh lib
+  find_file(CMAKE_TOOLCHAIN_FILE "android.toolchain.cmake")
+  if(NOT CMAKE_TOOLCHAIN_FILE)
+    message(SEND_ERROR "Cannot compile Gmsh for android without android-cmake")
+  endif(NOT CMAKE_TOOLCHAIN_FILE)
   set(CMAKE_BUILD_TYPE Release)
-  add_definitions(-DBUILD_ANDROID)
   set(LIBRARY_OUTPUT_PATH_ROOT ${CMAKE_CURRENT_BINARY_DIR})
   set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/libs/)
-  #add_subdirectory(Mobile/Android/)
-  #add_library(androidGmsh SHARED Mobile/Android/drawGModel.cpp Mobile/Android/androidGModel.cpp ${GMSH_SRC})
   add_library(androidGmsh SHARED ${GMSH_SRC})
-  #set( LIBRARY_DEPS GLESv1_CM log)
   set_target_properties(androidGmsh PROPERTIES OUTPUT_NAME Gmsh)
-  target_link_libraries(androidGmsh  ${LINK_LIBRARIES})
+  target_link_libraries(androidGmsh ${EXTERNAL_LIBRARIES})
 endif(ENABLE_BUILD_ANDROID)
 
 if(HAVE_FLTK OR HAVE_QT OR ENABLE_GRAPHICS)
@@ -1272,9 +1269,6 @@ endif(ENABLE_BUILD_LIB)
 if(ENABLE_BUILD_SHARED OR ENABLE_BUILD_DYNAMIC)
   install(TARGETS shared DESTINATION lib OPTIONAL)
 endif(ENABLE_BUILD_SHARED OR ENABLE_BUILD_DYNAMIC)
-if(ENABLE_BUILD_ANDROID)
-  install(TARGETS androidGmsh DESTINATION lib OPTIONAL)
-endif(ENABLE_BUILD_ANDROID)
 
 install(FILES ${ONELAB_PY} DESTINATION ${GMSH_BIN})
 install(FILES ${GMSH_API} DESTINATION include/gmsh)
-- 
GitLab