mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-01 19:30:13 -06:00
Help: Example of tweaking iOS/tvOS/watchOS build
CMAKE_OSX_ARCHITECTURES and CMAKE_OSX_DEPLOYMENT_TARGET variables can be used to tweak iOS/tvOS/watchOS build
This commit is contained in:
committed by
Brad King
parent
4a9e2e4f35
commit
f7d602b572
@@ -556,6 +556,54 @@ command is sufficient:
|
||||
|
||||
cmake .. -GXcode -DCMAKE_SYSTEM_NAME=iOS
|
||||
|
||||
Variable :variable:`CMAKE_OSX_ARCHITECTURES` can be used to set architectures
|
||||
for both device and simulator. Variable :variable:`CMAKE_OSX_DEPLOYMENT_TARGET`
|
||||
can be used to set an iOS/tvOS/watchOS deployment target.
|
||||
|
||||
Next configuration will install fat 5 architectures iOS library
|
||||
and add the ``-miphoneos-version-min=9.3``/``-mios-simulator-version-min=9.3``
|
||||
flags to the compiler:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ cmake -S. -B_builds -GXcode \
|
||||
-DCMAKE_SYSTEM_NAME=iOS \
|
||||
"-DCMAKE_OSX_ARCHITECTURES=armv7;armv7s;arm64;i386;x86_64" \
|
||||
-DCMAKE_OSX_DEPLOYMENT_TARGET=9.3 \
|
||||
-DCMAKE_INSTALL_PREFIX=`pwd`/_install \
|
||||
-DCMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH=NO \
|
||||
-DCMAKE_IOS_INSTALL_COMBINED=YES
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
# CMakeLists.txt
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
project(foo)
|
||||
add_library(foo foo.cpp)
|
||||
install(TARGETS foo DESTINATION lib)
|
||||
|
||||
Install:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ cmake --build _builds --config Release --target install
|
||||
|
||||
Check library:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ lipo -info _install/lib/libfoo.a
|
||||
Architectures in the fat file: _install/lib/libfoo.a are: i386 armv7 armv7s x86_64 arm64
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ otool -l _install/lib/libfoo.a | grep -A2 LC_VERSION_MIN_IPHONEOS
|
||||
cmd LC_VERSION_MIN_IPHONEOS
|
||||
cmdsize 16
|
||||
version 9.3
|
||||
|
||||
Code Signing
|
||||
^^^^^^^^^^^^
|
||||
|
||||
|
||||
Reference in New Issue
Block a user