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

Fixes for iOS (make xcodeProject generate a working project for xcode + add onelab to the API)

parent f1d8829e
No related branches found
No related tags found
No related merge requests found
......@@ -35,7 +35,8 @@ option(ENABLE_BUILD_LIB "Build static Gmsh library" OFF)
option(ENABLE_BUILD_SHARED "Build shared Gmsh library" OFF)
option(ENABLE_BUILD_DYNAMIC "Build dynamically linked Gmsh binary" OFF)
option(ENABLE_BUILD_ANDROID "Build Gmsh library for Android NDK" OFF)
option(ENABLE_BUILD_IOS "Build Gmsh library for iOS" OFF)
option(ENABLE_BUILD_IOS "Build Gmsh library for iOS (ARM)" OFF)
option(ENABLE_BUILD_IOS_EMULATOR "Build Gmsh library for iOS emulator (x86)" OFF)
option(ENABLE_CGNS "Enable CGNS mesh export" OFF)
option(ENABLE_CHACO "Enable Chaco mesh partitioner" ${DEFAULT})
option(ENABLE_DINTEGRATION "Enable discrete integration and levelsets" ${DEFAULT})
......@@ -449,11 +450,16 @@ if(ENABLE_ONELAB)
endif(ENABLE_ONELAB_METAMODEL)
endif(ENABLE_ONELAB)
if(ENABLE_BUILD_IOS_EMULATOR)
set(GMSH_API ${GMSH_API} Common/onelab.h Common/GmshSocket.h Common/onelabUtils.h)
endif(ENABLE_BUILD_IOS_EMULATOR)
if(ENABLE_BUILD_IOS)
find_file(CMAKE_TOOLCHAIN_FILE "ios.cmake")
if(NOT CMAKE_TOOLCHAIN_FILE)
message(SEND_ERROR "Cannot compile Gmsh for iOS without a toolchain")
endif(NOT CMAKE_TOOLCHAIN_FILE)
set(GMSH_API ${GMSH_API} Common/onelab.h Common/GmshSocket.h Common/onelabUtils.h)
endif(ENABLE_BUILD_IOS)
if(ENABLE_BUILD_ANDROID)
......
......@@ -25,7 +25,14 @@ macro(append_src FILES)
set(ONELAB_SRC ${ONELAB_SRC};${LIST})
endmacro(append_src)
if(ENABLE_BUILD_IOS_EMULATOR)
macro(copy_headers SOURCE DEST)
file(GLOB hfiles "${SOURCE}/*.h")
foreach(file ${hfiles})
add_custom_command(TARGET xcodeProject POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${file} ${DEST})
endforeach(file ${hfiles})
endmacro(copy_headers)
if(ENABLE_BUILD_IOS_EMULATOR OR ENABLE_BUILD_IOS)
# we need getdp framework
find_path(GETDP_FRAMEWORK "GetDP" GetDP.framework)
if(NOT GETDP_FRAMEWORK)
......@@ -49,12 +56,17 @@ if(ENABLE_BUILD_IOS_EMULATOR)
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/drawGModel.cpp ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/drawGModel.h ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/iosGModel.h ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/
# FIXME preserve links ???
COMMAND ${CMAKE_COMMAND} -E copy_directory ${GETDP_FRAMEWORK} ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/frameworks/GetDP.framework/
COMMAND ${CMAKE_COMMAND} -E copy_directory ${GMSH_FRAMEWORK} ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/frameworks/Gmsh.framework/
COMMAND ${CMAKE_COMMAND} -E copy_directory ${PETSC_FRAMEWORK} ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/frameworks/petsc.framework/
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 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/
)
endif(ENABLE_BUILD_IOS_EMULATOR)
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/)
endif(ENABLE_BUILD_IOS_EMULATOR OR ENABLE_BUILD_IOS)
if(ENABLE_BUILD_ANDROID)
append_src(drawGModel.cpp)
......
......@@ -446,6 +446,7 @@
buildSettings = {
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_OBJCPP_ARC_ABI = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/../../getdp-iOS\"",
......@@ -473,6 +474,7 @@
buildSettings = {
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_OBJCPP_ARC_ABI = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/../../getdp-iOS\"",
......
......@@ -9,7 +9,7 @@
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>onelab.${PRODUCT_NAME:rfc1034identifier}</string>
<string>org.geuz.${PRODUCT_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment