Simplify ios/build.sh.
This commit is contained in:
parent
73290dcda8
commit
f79223e2ac
@ -6,16 +6,12 @@ index 695be54..4efe5e5 100644
|
|||||||
# - iOS - build everything for iOS
|
# - iOS - build everything for iOS
|
||||||
# - tvOS - build everything for tvOS
|
# - tvOS - build everything for tvOS
|
||||||
# - watchOS - build everything for watchOS
|
# - watchOS - build everything for watchOS
|
||||||
-# - OpenSSL-macOS - build OpenSSL for macOS
|
# - OpenSSL-macOS - build OpenSSL for macOS
|
||||||
-# - OpenSSL-iOS - build OpenSSL for iOS
|
# - OpenSSL-iOS - build OpenSSL for iOS
|
||||||
-# - OpenSSL-tvOS - build OpenSSL for tvOS
|
|
||||||
-# - OpenSSL-watchOS - build OpenSSL for watchOS
|
|
||||||
+# - OpenSSL-macOS - build OpenSSL for macOS
|
|
||||||
+# - OpenSSL-iOS - build OpenSSL for iOS
|
|
||||||
+# - OpenSSL-iOS-simulator - build OpenSSL for iOS-simulator
|
+# - OpenSSL-iOS-simulator - build OpenSSL for iOS-simulator
|
||||||
+# - OpenSSL-tvOS - build OpenSSL for tvOS
|
# - OpenSSL-tvOS - build OpenSSL for tvOS
|
||||||
+# - OpenSSL-tvOS-simulator - build OpenSSL for tvOS-simulator
|
+# - OpenSSL-tvOS-simulator - build OpenSSL for tvOS-simulator
|
||||||
+# - OpenSSL-watchOS - build OpenSSL for watchOS
|
# - OpenSSL-watchOS - build OpenSSL for watchOS
|
||||||
+# - OpenSSL-watchOS-simulator - build OpenSSL for watchOS-simulator
|
+# - OpenSSL-watchOS-simulator - build OpenSSL for watchOS-simulator
|
||||||
# - BZip2-macOS - build BZip2 for macOS
|
# - BZip2-macOS - build BZip2 for macOS
|
||||||
# - BZip2-iOS - build BZip2 for iOS
|
# - BZip2-iOS - build BZip2 for iOS
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Below are instructions for building TDLib for iOS, watchOS, tvOS, and also macOS.
|
Below are instructions for building TDLib for iOS, watchOS, tvOS, and also macOS.
|
||||||
|
|
||||||
If you need only a macOS build, take a look at our build instructions for [macOS](https://github.com/tdlib/td#macos).
|
If you need only a macOS build for the current architecture, take a look at our build instructions for [macOS](https://github.com/tdlib/td#macos).
|
||||||
|
|
||||||
For example of usage take a look at our [Swift example](https://github.com/tdlib/td/tree/master/example/swift).
|
For example of usage take a look at our [Swift example](https://github.com/tdlib/td/tree/master/example/swift).
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ cd <path to TDLib sources>/example/ios
|
|||||||
./build.sh
|
./build.sh
|
||||||
```
|
```
|
||||||
This may take a while, because TDLib will be built about 10 times.
|
This may take a while, because TDLib will be built about 10 times.
|
||||||
Resulting library for iOS will work on any architecture (armv7, armv7s, arm64) and even on a simulator (Intel, Apple Silicon).
|
Resulting library will work on any architecture (armv7, armv7s, arm64) and even on a simulator (Intel, Apple Silicon).
|
||||||
We use [CMake/iOS.cmake](https://github.com/tdlib/td/blob/master/CMake/iOS.cmake) toolchain, other toolchains may work too.
|
We use [CMake/iOS.cmake](https://github.com/tdlib/td/blob/master/CMake/iOS.cmake) toolchain, other toolchains may work too.
|
||||||
|
|
||||||
Built libraries will be stored in `tdjson` directory.
|
Built libraries will be stored in `tdjson` directory.
|
||||||
|
@ -26,6 +26,37 @@ for platform in $platforms;
|
|||||||
do
|
do
|
||||||
echo "Platform = ${platform}"
|
echo "Platform = ${platform}"
|
||||||
if [[ $platform = "macOS" ]]; then
|
if [[ $platform = "macOS" ]]; then
|
||||||
|
simulators="0"
|
||||||
|
else
|
||||||
|
simulators="0 1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for simulator in $simulators;
|
||||||
|
do
|
||||||
|
if [[ $platform = "macOS" ]]; then
|
||||||
|
other_options="-DCMAKE_OSX_ARCHITECTURES='x86_64;arm64'"
|
||||||
|
else
|
||||||
|
watchos=""
|
||||||
|
if [[ $platform = "watchOS" ]]; then
|
||||||
|
ios_platform="WATCH"
|
||||||
|
watchos="-DTD_EXPERIMENTAL_WATCH_OS=ON"
|
||||||
|
elif [[ $platform = "tvOS" ]]; then
|
||||||
|
ios_platform="TV"
|
||||||
|
else
|
||||||
|
ios_platform=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $simulator = "1" ]]; then
|
||||||
|
platform="${platform}-simulator"
|
||||||
|
ios_platform="${ios_platform}SIMULATOR"
|
||||||
|
else
|
||||||
|
ios_platform="${ios_platform}OS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "iOS platform = ${ios_platform}"
|
||||||
|
other_options="${watchos} -DIOS_PLATFORM=${ios_platform} -DCMAKE_TOOLCHAIN_FILE=${td_path}/CMake/iOS.cmake"
|
||||||
|
fi
|
||||||
|
|
||||||
set_cmake_options $platform
|
set_cmake_options $platform
|
||||||
build="build-${platform}"
|
build="build-${platform}"
|
||||||
install="install-${platform}"
|
install="install-${platform}"
|
||||||
@ -33,62 +64,15 @@ do
|
|||||||
mkdir -p $build
|
mkdir -p $build
|
||||||
mkdir -p $install
|
mkdir -p $install
|
||||||
cd $build
|
cd $build
|
||||||
cmake $td_path $options -DCMAKE_INSTALL_PREFIX=../${install} -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
|
cmake $td_path $options $other_options -DCMAKE_INSTALL_PREFIX=../${install}
|
||||||
make -j3 install || exit
|
make -j3 install || exit
|
||||||
cd ..
|
cd ..
|
||||||
mkdir -p $platform
|
install_name_tool -id @rpath/libtdjson.dylib ${install}/lib/libtdjson.dylib
|
||||||
cp $build/libtdjson.dylib $platform/libtdjson.dylib
|
|
||||||
install_name_tool -id @rpath/libtdjson.dylib $platform/libtdjson.dylib
|
|
||||||
|
|
||||||
mkdir -p ../tdjson/${platform}/include
|
mkdir -p ../tdjson/${platform}/include
|
||||||
rsync --recursive ${install}/include/ ../tdjson/${platform}/include/
|
rsync --recursive ${install}/include/ ../tdjson/${platform}/include/
|
||||||
mkdir -p ../tdjson/${platform}/lib
|
mkdir -p ../tdjson/${platform}/lib
|
||||||
cp ${platform}/libtdjson.dylib ../tdjson/${platform}/lib/
|
cp ${install}/lib/libtdjson.dylib ../tdjson/${platform}/lib/
|
||||||
else
|
|
||||||
simulators="0 1"
|
|
||||||
for simulator in $simulators;
|
|
||||||
do
|
|
||||||
build="build-${platform}"
|
|
||||||
install="install-${platform}"
|
|
||||||
if [[ $simulator = "1" ]]; then
|
|
||||||
build="${build}-simulator"
|
|
||||||
install="${install}-simulator"
|
|
||||||
platform_path="${platform}-simulator"
|
|
||||||
ios_platform="SIMULATOR"
|
|
||||||
lib="${install}/lib/libtdjson.dylib"
|
|
||||||
set_cmake_options ${platform_path}
|
|
||||||
else
|
|
||||||
platform_path=${platform}
|
|
||||||
ios_platform="OS"
|
|
||||||
lib="${install}/lib/libtdjson.dylib"
|
|
||||||
set_cmake_options ${platform_path}
|
|
||||||
fi
|
|
||||||
watchos=""
|
|
||||||
if [[ $platform = "watchOS" ]]; then
|
|
||||||
ios_platform="WATCH${ios_platform}"
|
|
||||||
watchos="-DTD_EXPERIMENTAL_WATCH_OS=ON"
|
|
||||||
fi
|
|
||||||
if [[ $platform = "tvOS" ]]; then
|
|
||||||
ios_platform="TV${ios_platform}"
|
|
||||||
fi
|
|
||||||
echo $ios_platform
|
|
||||||
rm -rf $build
|
|
||||||
mkdir -p $build
|
|
||||||
mkdir -p $install
|
|
||||||
cd $build
|
|
||||||
cmake $td_path $options $watchos -DIOS_PLATFORM=${ios_platform} -DCMAKE_TOOLCHAIN_FILE=${td_path}/CMake/iOS.cmake -DCMAKE_INSTALL_PREFIX=../${install}
|
|
||||||
make -j3 install || exit
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
install_name_tool -id @rpath/libtdjson.dylib $lib
|
|
||||||
|
|
||||||
mkdir -p ../tdjson/${platform_path}/include
|
|
||||||
rsync --recursive ${install}/include/ ../tdjson/${platform_path}/include/
|
|
||||||
mkdir -p ../tdjson/${platform_path}/lib
|
|
||||||
cp ${lib} ../tdjson/${platform_path}/lib/
|
|
||||||
done
|
done
|
||||||
fi
|
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
produced_dylibs=(install-*/lib/libtdjson.dylib)
|
produced_dylibs=(install-*/lib/libtdjson.dylib)
|
||||||
|
Loading…
Reference in New Issue
Block a user