Skip to content
Snippets Groups Projects
Commit da9052e7 authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

simpler framework and ios build

parent 81f6beea
No related branches found
No related tags found
No related merge requests found
......@@ -1518,12 +1518,12 @@ if(UNIX AND NOT CYGWIN)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/doc/gmsh.1 DESTINATION ${GMSH_MAN})
endif(UNIX AND NOT CYGWIN)
add_custom_target(getHeaders
add_custom_target(get_headers
COMMAND ${CMAKE_COMMAND} -E remove_directory Headers
COMMAND ${CMAKE_COMMAND} -E make_directory Headers/gmsh
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
foreach(FILE ${GMSH_API})
add_custom_command(TARGET getHeaders POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy
add_custom_command(TARGET get_headers POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy
${FILE} ${CMAKE_CURRENT_BINARY_DIR}/Headers/gmsh/
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
endforeach(FILE)
......@@ -1582,22 +1582,16 @@ if(APPLE AND ENABLE_BUILD_LIB)
get_target_property(LIBNAME lib LOCATION)
add_custom_target(framework DEPENDS lib
COMMAND ${CMAKE_COMMAND} -E remove_directory Gmsh.framework
COMMAND ${CMAKE_COMMAND} -E make_directory Gmsh.framework/Versions/A/Headers
COMMAND ${CMAKE_COMMAND} -E make_directory Gmsh.framework/Versions/A/Resources
COMMAND ${CMAKE_COMMAND} -E copy ${LIBNAME} Gmsh.framework/Versions/A/Gmsh
COMMAND ${CMAKE_COMMAND} -E make_directory Gmsh.framework/Headers
COMMAND ${CMAKE_COMMAND} -E make_directory Gmsh.framework/Resources
COMMAND ${CMAKE_COMMAND} -E copy ${LIBNAME} Gmsh.framework/Gmsh
COMMAND ${CMAKE_COMMAND} -E copy Info_framework.plist
Gmsh.framework/Versions/A/Resources/Info.plist
COMMAND ${CMAKE_COMMAND} -E create_symlink A Gmsh.framework/Versions/Current
COMMAND ${CMAKE_COMMAND} -E create_symlink Versions/Current/Gmsh
Gmsh.framework/Gmsh
COMMAND ${CMAKE_COMMAND} -E create_symlink Versions/Current/Headers
Gmsh.framework/Headers
COMMAND ${CMAKE_COMMAND} -E create_symlink Versions/Current/Resources
Gmsh.framework/Resources
Gmsh.framework/Resources/Info.plist
COMMAND ${CMAKE_COMMAND} -E create_symlink . Gmsh.framework/Headers/gmsh
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
foreach(FILE ${GMSH_API})
add_custom_command(TARGET framework POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy
${FILE} ${CMAKE_CURRENT_BINARY_DIR}/Gmsh.framework/Versions/A/Headers/
${FILE} ${CMAKE_CURRENT_BINARY_DIR}/Gmsh.framework/Headers/
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
endforeach(FILE)
endif(APPLE AND ENABLE_BUILD_LIB)
......
......@@ -36,13 +36,6 @@ macro(append_src FILES)
set(ONELAB_SRC ${ONELAB_SRC};${LIST})
endmacro(append_src)
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.framework)
......@@ -78,10 +71,12 @@ if(ENABLE_BUILD_IOS_EMULATOR OR ENABLE_BUILD_IOS)
endif(SLEPC_FRAMEWORK)
# add target
add_custom_target(xcodeProject
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/Onelab/
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/models/
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/iOS/Onelab/ ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/iOS/Onelab.xcodeproj/ ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab.xcodeproj/
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/Onelab/
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/iOS/Onelab/
${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/iOS/Onelab.xcodeproj/
${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab.xcodeproj/
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/drawContext.cpp ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/drawContext.h ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/drawGeom.cpp ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/
......@@ -93,14 +88,14 @@ if(ENABLE_BUILD_IOS_EMULATOR OR ENABLE_BUILD_IOS)
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/movePosition.h ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/iosGModel.h ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/iosGModel.cpp ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/
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/
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/frameworks/
COMMAND ${CMAKE_COMMAND} -E copy_directory ${GETDP_FRAMEWORK}/ ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/frameworks/GetDP.framework/
COMMAND ${CMAKE_COMMAND} -E remove ${GMSH_FRAMEWORK}/Headers/gmsh
COMMAND ${CMAKE_COMMAND} -E copy_directory ${GMSH_FRAMEWORK}/ ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/frameworks/Gmsh.framework/
COMMAND ${CMAKE_COMMAND} -E create_symlink . ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/frameworks/Gmsh.framework/Headers/gmsh
COMMAND ${CMAKE_COMMAND} -E create_symlink . ${GMSH_FRAMEWORK}/Headers/gmsh
COMMAND ${CMAKE_COMMAND} -E copy_directory ${PETSC_FRAMEWORK}/ ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/frameworks/petsc.framework/
COMMAND ${CMAKE_COMMAND} -E copy_directory ${SLEPC_FRAMEWORK}/ ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/frameworks/slepc.framework/
)
foreach(DIR ${BENCHMARKS})
get_filename_component(DIRNAME ${DIR} NAME)
......@@ -108,11 +103,6 @@ if(ENABLE_BUILD_IOS_EMULATOR OR ENABLE_BUILD_IOS)
${DIR} ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/files/${DIRNAME})
endforeach(DIR)
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:")
message(STATUS " * Run `make xcodeProject' to create the XCode project")
......
......@@ -452,7 +452,6 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/Onelab/frameworks\"",
"$(PROJECT_DIR)/Onelab/frameworks",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
......@@ -461,7 +460,7 @@
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
/Users/geuzaine/src/gmsh/contrib/mobile/frameworks_ios,
"$(PROJECT_DIR)/Onelab/frameworks/petsc.framework",
);
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
PRODUCT_NAME = "$(TARGET_NAME)";
......@@ -482,10 +481,6 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/../../getdp-iOS\"",
"\"$(SRCROOT)/../../gmsh-iOS\"",
"\"$(SRCROOT)/../..\"",
"\"$(SRCROOT)/Onelab/frameworks\"",
"$(PROJECT_DIR)/Onelab/frameworks",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
......@@ -494,7 +489,7 @@
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
/Users/geuzaine/src/gmsh/contrib/mobile/frameworks_ios,
"$(PROJECT_DIR)/Onelab/frameworks/petsc.framework",
);
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "";
......
......@@ -39,7 +39,7 @@ fi
cd $gmsh_svn/build_android
make androidGmsh -j$cmake_thread
check
make getHeaders
make get_headers
check
# GetDP
......@@ -56,7 +56,7 @@ fi
cd $getdp_svn/build_android
make androidGetdp -j$cmake_thread
check
make getHeaders
make get_headers
check
# Onelab/Mobile interface
......
......@@ -10,49 +10,46 @@ 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"
build_cmd="xcodebuild -verbose -target lib -configuration Release"
header_cmd="xcodebuild -verbose -target getHeaders -configuration Release"
function check {
return_code=$?
if [ $return_code != 0 ]; then
echo "last command failed (return $return_code)"
exit $return_code
fi
return_code=$?
if [ $return_code != 0 ]; then
echo "last command failed (return $return_code)"
exit $return_code
fi
}
function build_gmsh {
if [ $# -ne 1 ]; then
echo "You must specify an architecture (e.g. armv7, armv7s, arm64, ...)"
return
fi
if [ ! -d "$gmsh_svn/build_ios_$1" ]; then
mkdir $gmsh_svn/build_ios_$1
fi
cd $gmsh_svn/build_ios_$1
cmake $cmake_default -DENABLE_BLAS_LAPACK=1 -DENABLE_BUILD_LIB=1 -DENABLE_MATHEX=1 -DENABLE_MESH=1 -DENABLE_ONELAB=1 -DENABLE_PARSER=1 -DENABLE_POST=1 -DENABLE_TETGEN=1 -DCMAKE_OSX_ARCHITECTURES="$1" ..
check
$build_cmd
check
$header_cmd
cd -
if [ $# -ne 1 ]; then
echo "You must specify an architecture (e.g. armv7, armv7s, arm64, ...)"
return
fi
if [ ! -d "$gmsh_svn/build_ios_$1" ]; then
mkdir $gmsh_svn/build_ios_$1
fi
cd $gmsh_svn/build_ios_$1
cmake $cmake_default -DENABLE_BLAS_LAPACK=1 -DENABLE_BUILD_LIB=1 -DENABLE_MATHEX=1 -DENABLE_MESH=1 -DENABLE_ONELAB=1 -DENABLE_PARSER=1 -DENABLE_POST=1 -DENABLE_TETGEN=1 -DCMAKE_OSX_ARCHITECTURES="$1" ..
check
$build_cmd
check
cd -
}
function build_getdp {
if [ $# -ne 1 ]; then
echo "You must specify an architecture (e.g. armv7, armv7s, arm64, ...)"
return
fi
if [ ! -d "$getdp_svn/build_ios_$1" ]; then
mkdir $getdp_svn/build_ios_$1
fi
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" -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
$header_cmd
cd -
if [ $# -ne 1 ]; then
echo "You must specify an architecture (e.g. armv7, armv7s, arm64, ...)"
return
fi
if [ ! -d "$getdp_svn/build_ios_$1" ]; then
mkdir $getdp_svn/build_ios_$1
fi
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" -DENABLE_SLEPC=1 -DSLEPC_INC="$slepc_framework/Headers/" -DSLEPC_LIB="$slepc_framework/slepc" -DGMSH_INC="$gmsh_svn/build_ios_$1/Gmsh.framework/Headers/" -DGMSH_LIB="$gmsh_svn/build_ios_$1/Gmsh.framework/Gmsh" -DCMAKE_OSX_ARCHITECTURES="$1" ..
check
$build_cmd
check
cd -
}
# build gmsh framework
......@@ -61,10 +58,8 @@ build_gmsh armv7
build_gmsh armv7s
build_gmsh arm64
mkdir -p $frameworks_dir/Gmsh.framework/Headers
lipo -create $gmsh_svn/build_ios_armv7/Release-iphoneos/libGmsh.a $gmsh_svn/build_ios_arm64/Release-iphoneos/libGmsh.a $gmsh_svn/build_ios_armv7s/Release-iphoneos/libGmsh.a -output $frameworks_dir/Gmsh.framework/Gmsh
cd $frameworks_dir/Gmsh.framework/Headers
cp $gmsh_svn/build_ios_armv7/Headers/gmsh/* .
ln -s . gmsh
lipo -create $gmsh_svn/build_ios_armv7/Gmsh.framework/Gmsh $gmsh_svn/build_ios_arm64/Gmsh.framework/Gmsh $gmsh_svn/build_ios_armv7s/Gmsh.framework/Gmsh -output $frameworks_dir/Gmsh.framework/Gmsh
cp $gmsh_svn/build_ios_armv7/Gmsh.framework/Headers/* $frameworks_dir/Gmsh.framework/Headers
# build getdp framework
cd $getdp_svn && svn up
......@@ -72,13 +67,12 @@ build_getdp armv7
build_getdp armv7s
build_getdp arm64
mkdir -p $frameworks_dir/GetDP.framework/Headers
lipo -create $getdp_svn/build_ios_armv7/Release-iphoneos/libGetdp.a $getdp_svn/build_ios_arm64/Release-iphoneos/libGetdp.a $getdp_svn/build_ios_armv7s/Release-iphoneos/libGetdp.a -output $frameworks_dir/GetDP.framework/GetDP
cd $frameworks_dir/GetDP.framework/Headers
cp $getdp_svn/build_ios_armv7/Headers/getdp/* .
lipo -create $getdp_svn/build_ios_armv7/GetDP.framework/GetDP $getdp_svn/build_ios_arm64/GetDP.framework/GetDP $getdp_svn/build_ios_armv7s/GetDP.framework/GetDP -output $frameworks_dir/GetDP.framework/GetDP
cp $getdp_svn/build_ios_armv7/GetDP.framework/Headers/* $frameworks_dir/GetDP.framework/Headers
# create xcode project
mkdir $gmsh_svn/contrib/mobile/xcode_project
cd $gmsh_svn/contrib/mobile/xcode_project
mkdir $gmsh_svn/contrib/mobile/build_ios
cd $gmsh_svn/contrib/mobile/build_ios
cmake -DCMAKE_INCLUDE_PATH="$frameworks_dir;$getdp_svn" ..
make xcodeProject
......
......@@ -25,7 +25,7 @@ function build_getdp {
mkdir $getdp_svn/build_ios_$1
fi
cd $getdp_svn/build_ios_$1
PETSC_DIR= PETSC_ARCH= SLEPC_DIR= 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" ..
PETSC_DIR= PETSC_ARCH= SLEPC_DIR= 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="$gmsh_svn/build_ios_$1/Gmsh.framework/Headers/" -DGMSH_LIB="$gmsh_svn/build_ios_$1/Gmsh.framework/Gmsh" ..
$build_cmd
cd -
}
......@@ -33,16 +33,15 @@ function build_getdp {
# build gmsh's framework
cd $gmsh_svn && svn up
build_gmsh x86
cp -r $gmsh_svn/build_ios_x86/Gmsh.framework/ $frameworks_dir/Gmsh.framework
cd $frameworks_dir/Gmsh.framework/Headers/;ln -s . gmsh; cd -
cp -R $gmsh_svn/build_ios_x86/Gmsh.framework/ $frameworks_dir/Gmsh.framework
# build getdp's framework
cd $getdp_svn && svn up
build_getdp x86
cp -r $getdp_svn/build_ios_x86/GetDP.framework/ $frameworks_dir/GetDP.framework
cp -R $getdp_svn/build_ios_x86/GetDP.framework/ $frameworks_dir/GetDP.framework
# create xcode project
mkdir $gmsh_svn/contrib/mobile/xcode_project_simulator
cd $gmsh_svn/contrib/mobile/xcode_project_simulator
mkdir $gmsh_svn/contrib/mobile/build_iossimulator
cd $gmsh_svn/contrib/mobile/build_iossimulator
cmake -DCMAKE_INCLUDE_PATH="$frameworks_dir;$getdp_svn" ..
make xcodeProject
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment