mirror of
https://github.com/ceres-solver/ceres-solver.git
synced 2026-08-29 08:34:37 +08:00
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:
+16
-11
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user