diff --git a/contrib/mobile/CMakeLists.txt b/contrib/mobile/CMakeLists.txt index d73adeb442228e8f344ccf9b57c080b348a2026d..f89cfee341bfb9705ee22f9168b78bbd42319114 100644 --- a/contrib/mobile/CMakeLists.txt +++ b/contrib/mobile/CMakeLists.txt @@ -68,6 +68,14 @@ if(ENABLE_BUILD_IOS_EMULATOR OR ENABLE_BUILD_IOS) else(PETSC_FRAMEWORK) message(SEND_ERROR "Could not find petsc.framework") endif(PETSC_FRAMEWORK) + # and we also need SLEPc + find_path(SLEPC_FRAMEWORK slepc.framework) + if(SLEPC_FRAMEWORK) + set(SLEPC_FRAMEWORK ${SLEPC_FRAMEWORK}/slepc.framework) + message(STATUS "Found framework " ${SLEPC_FRAMEWORK}) + else(SLEPC_FRAMEWORK) + message(SEND_ERROR "Could not find slepc.framework") + endif(SLEPC_FRAMEWORK) # add target add_custom_target(xcodeProject COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/Onelab/ @@ -88,9 +96,11 @@ if(ENABLE_BUILD_IOS_EMULATOR OR ENABLE_BUILD_IOS) COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/frameworks/GetDP.framework/Headers/ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/frameworks/Gmsh.framework/Headers/ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/frameworks/petsc.framework/Headers/ + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/frameworks/slepc.framework/Headers/ COMMAND ${CMAKE_COMMAND} -E copy ${GETDP_FRAMEWORK}/GetDP ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/frameworks/GetDP.framework/ COMMAND ${CMAKE_COMMAND} -E copy ${GMSH_FRAMEWORK}/Gmsh ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/frameworks/Gmsh.framework/ COMMAND ${CMAKE_COMMAND} -E copy ${PETSC_FRAMEWORK}/petsc ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/frameworks/petsc.framework/ + COMMAND ${CMAKE_COMMAND} -E copy ${SLEPC_FRAMEWORK}/slepc ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/frameworks/slepc.framework/ ) foreach(DIR ${BENCHMARKS}) get_filename_component(DIRNAME ${DIR} NAME) @@ -101,6 +111,7 @@ if(ENABLE_BUILD_IOS_EMULATOR OR ENABLE_BUILD_IOS) copy_headers(${GETDP_FRAMEWORK}/Headers/ ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/frameworks/GetDP.framework/Headers/) copy_headers(${GMSH_FRAMEWORK}/Headers/ ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/frameworks/Gmsh.framework/Headers/) copy_headers(${PETSC_FRAMEWORK}/Headers/ ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/frameworks/petsc.framework/Headers/) + copy_headers(${SLEPC_FRAMEWORK}/Headers/ ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/frameworks/slepc.framework/Headers/) message(STATUS "") message(STATUS "ONELAB for iOS successfully configured:") diff --git a/contrib/mobile/iOS/Onelab.xcodeproj/project.pbxproj b/contrib/mobile/iOS/Onelab.xcodeproj/project.pbxproj index 47f0e78b68911fd823dda26b5d3705d0b3f5beaa..b3e423250132fe97b8718333dbb9eb20dfb625d4 100644 --- a/contrib/mobile/iOS/Onelab.xcodeproj/project.pbxproj +++ b/contrib/mobile/iOS/Onelab.xcodeproj/project.pbxproj @@ -11,6 +11,7 @@ 2988FF1E18E59558001435B6 /* libf2cblas.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2988FF1C18E59558001435B6 /* libf2cblas.a */; }; 2988FF1F18E59558001435B6 /* libf2clapack.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2988FF1D18E59558001435B6 /* libf2clapack.a */; }; 29A4AC80193CE6DA0007B5A5 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 29A4AC7F193CE6DA0007B5A5 /* Images.xcassets */; }; + 9C1B9912194F4E0400507EFD /* slepc.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9C1B9911194F4E0400507EFD /* slepc.framework */; }; 9C1C10FA17BA5E7D00BFD483 /* OptionsViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9C1C10F917BA5E7D00BFD483 /* OptionsViewController.mm */; }; 9C2C3A1E187FDF9200E87F78 /* libc++.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9C2C3A1D187FDF9200E87F78 /* libc++.dylib */; }; 9C2C3A20187FDF9900E87F78 /* libstdc++.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9C2C3A1F187FDF9900E87F78 /* libstdc++.dylib */; }; @@ -54,6 +55,7 @@ 2988FF1C18E59558001435B6 /* libf2cblas.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libf2cblas.a; path = ../../frameworks/libf2cblas.a; sourceTree = "<group>"; }; 2988FF1D18E59558001435B6 /* libf2clapack.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libf2clapack.a; path = ../../frameworks/libf2clapack.a; sourceTree = "<group>"; }; 29A4AC7F193CE6DA0007B5A5 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; }; + 9C1B9911194F4E0400507EFD /* slepc.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = slepc.framework; path = Onelab/frameworks/slepc.framework; sourceTree = "<group>"; }; 9C1C10F817BA5E7D00BFD483 /* OptionsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OptionsViewController.h; sourceTree = "<group>"; }; 9C1C10F917BA5E7D00BFD483 /* OptionsViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = OptionsViewController.mm; sourceTree = "<group>"; }; 9C2C3A1D187FDF9200E87F78 /* libc++.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libc++.dylib"; path = "usr/lib/libc++.dylib"; sourceTree = SDKROOT; }; @@ -131,6 +133,7 @@ 9CE08E10178AEB1600A83B4B /* GetDP.framework in Frameworks */, 9CE08E11178AEB1600A83B4B /* Gmsh.framework in Frameworks */, 9CE08E12178AEB1600A83B4B /* petsc.framework in Frameworks */, + 9C1B9912194F4E0400507EFD /* slepc.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -167,6 +170,7 @@ 9C9608391712C16300E1D4A0 /* Frameworks */ = { isa = PBXGroup; children = ( + 9C1B9911194F4E0400507EFD /* slepc.framework */, 2988FF1C18E59558001435B6 /* libf2cblas.a */, 2988FF1D18E59558001435B6 /* libf2clapack.a */, 9C2C3A1F187FDF9900E87F78 /* libstdc++.dylib */, @@ -449,6 +453,7 @@ FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "\"$(SRCROOT)/Onelab/frameworks\"", + "$(PROJECT_DIR)/Onelab/frameworks", ); GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "Onelab/Onelab-Prefix.pch"; @@ -481,6 +486,7 @@ "\"$(SRCROOT)/../../gmsh-iOS\"", "\"$(SRCROOT)/../..\"", "\"$(SRCROOT)/Onelab/frameworks\"", + "$(PROJECT_DIR)/Onelab/frameworks", ); GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "Onelab/Onelab-Prefix.pch"; diff --git a/contrib/mobile/utils/onelab_ios_build.sh b/contrib/mobile/utils/onelab_ios_build.sh index 4c063d1320d9d45321d6604602048cdb96cc49cc..17706d392f065f92e65f28c63495ed43f531b0b0 100755 --- a/contrib/mobile/utils/onelab_ios_build.sh +++ b/contrib/mobile/utils/onelab_ios_build.sh @@ -5,6 +5,7 @@ getdp_svn="/Users/geuzaine/src/getdp/" frameworks_dir="/Users/geuzaine/src/gmsh/contrib/mobile/frameworks/" petsc_framework="$frameworks_dir/petsc.framework" +slepc_framework="$frameworks_dir/slepc.framework" cmake_default="-DDEFAULT=0 -DCMAKE_TOOLCHAIN_FILE=$gmsh_svn/contrib/mobile/utils/iOS.cmake -DENABLE_BUILD_IOS=1 -DCMAKE_BUILD_TYPE=Release -GXcode" @@ -46,7 +47,7 @@ function build_getdp { cd $getdp_svn/build_ios_$1 export PETSC_DIR= export PETSC_ARCH= - cmake $cmake_default -DENABLE_BLAS_LAPACK=1 -DENABLE_BUILD_LIB=1 -DENABLE_GMSH=1 -DENABLE_LEGACY=1 -DENABLE_PETSC=1 -DPETSC_INC="$petsc_framework/Headers/" -DPETSC_LIBS="$petsc_framework/petsc" -DGMSH_INC="$frameworks_dir/Gmsh.framework/Headers/" -DGMSH_LIB="$frameworks_dir/Gmsh.framework/Gmsh" -DCMAKE_OSX_ARCHITECTURES="$1" .. + cmake $cmake_default -DENABLE_BLAS_LAPACK=1 -DENABLE_BUILD_LIB=1 -DENABLE_GMSH=1 -DENABLE_LEGACY=1 -DENABLE_PETSC=1 -DPETSC_INC="$petsc_framework/Headers/" -DPETSC_LIBS="$petsc_framework/petsc" -DENABLE_SLEPC=1 -DSLEPC_INC="$slepc_framework/Headers/" -DSLEPC_LIB="$slepc_framework/slepc" -DGMSH_INC="$frameworks_dir/Gmsh.framework/Headers/" -DGMSH_LIB="$frameworks_dir/Gmsh.framework/Gmsh" -DCMAKE_OSX_ARCHITECTURES="$1" .. check $build_cmd check