Update minimum iOS version to 7.0 for shared_ptr/unordered_map.

- In order to correctly detect shared_ptr (& unordered_map)
  the iOS version must be >= 7.0 (Xcode 5.0+).  This only affects the
  SIMULATOR(64) platform builds, as the OS (device) build uses the
  latest SDK which is now likely 8.0+.

Change-Id: Iefec8f03408b8cdc7a495f442ebba081f800adb0
This commit is contained in:
Alex Stewart
2015-08-09 14:55:02 +01:00
parent 16ecd40523
commit 1f106904c1
2 changed files with 17 additions and 12 deletions
+16 -11
View File
@@ -149,14 +149,14 @@ ENDIF (MSVC)
# Use ios-cmake to build a static library for iOS
#
# We need to add isysroot to force cmake to find the toolchains from the iOS SDK
# instead of using the standard ones. And add flag mios-simulator-version so clang
# knows we are building for ios simulator but not mac.
# instead of using the standard ones. And add flag mios-simulator-version so
# clang knows we are building for ios simulator but not mac.
#
# You can build for OS (armv7, armv7s, arm64), SIMULATOR (i386) or SIMULATOR64 (x86_64)
# separately and use lipo to merge them into one static library.
# You can build for OS (armv7, armv7s, arm64), SIMULATOR (i386) or SIMULATOR64
# (x86_64) separately and use lipo to merge them into one static library.
#
# There are some features/algorithms are not available in iOS version and the
# minimum supported iOS version is 6.0 now.
# minimum supported iOS version is now 7.0.
#
# Use cmake ../ceres-solver -DCMAKE_TOOLCHAIN_FILE=../ceres-solver/cmake/iOS.cmake \
# -DIOS_PLATFORM=PLATFORM -DEIGEN_INCLUDE_DIR=/path/to/eigen/header
@@ -179,11 +179,12 @@ IF (IOS)
UPDATE_CACHE_VARIABLE(GFLAGS OFF)
UPDATE_CACHE_VARIABLE(OPENMP OFF)
# Apple claims that the BLAS call dsyrk_ is a private API, and will not allow you
# to submit to the Apple Store if the symbol is present.
# Apple claims that the BLAS call dsyrk_ is a private API, and will not allow
# you to submit to the Apple Store if the symbol is present.
UPDATE_CACHE_VARIABLE(LAPACK OFF)
MESSAGE(STATUS "Building for iOS: SuiteSparse, CXSparse, LAPACK, gflags, and OpenMP are not available.")
MESSAGE(STATUS "Building for iOS: SuiteSparse, CXSparse, LAPACK, gflags, "
"and OpenMP are not available.")
UPDATE_CACHE_VARIABLE(BUILD_EXAMPLES OFF)
MESSAGE(STATUS "Building for iOS, will not build examples.")
@@ -191,9 +192,13 @@ IF (IOS)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fobjc-abi-version=2 -fobjc-arc -isysroot ${CMAKE_OSX_SYSROOT}")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fobjc-abi-version=2 -fobjc-arc -isysroot ${CMAKE_OSX_SYSROOT}")
IF (${IOS_PLATFORM} STREQUAL "SIMULATOR" OR ${IOS_PLATFORM} STREQUAL "SIMULATOR64")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mios-simulator-version-min=6.0")
ENDIF()
IF (${IOS_PLATFORM} STREQUAL "SIMULATOR" OR
${IOS_PLATFORM} STREQUAL "SIMULATOR64")
# By default, the minimum version is < 7.0, which causes problems with
# detection of shared_ptr & unordered_map as pre-7.0 used libstdc++
# but 7.0+ uses libc++ (also LLVM-GCC was removed from Xcode 5).
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mios-simulator-version-min=7.0")
ENDIF()
ENDIF (IOS)
# Prior to October 2013, Ceres used some non-CMake standardised variables to
+1 -1
View File
@@ -440,7 +440,7 @@ iOS
.. NOTE::
You need iOS version 6.0 or higher to build Ceres Solver.
You need iOS version 7.0 or higher to build Ceres Solver.
To build Ceres for iOS, we need to force ``CMake`` to find the toolchains from
the iOS SDK instead of using the standard ones. For example: