Skip to content

Commit 8b13c88

Browse files
committed
Removed deprecated armv7/armv7s and i386 build targets
- Updated OpenSSL default to 3.0.15 - Updated curl default to 8.11.1 - Updated nghttp2 default to 1.64.0 - Removed deprecated armv7/armv7s and i386 architectures from build scripts
1 parent c04fd64 commit 8b13c88

File tree

22 files changed

+1154
-867
lines changed

22 files changed

+1154
-867
lines changed

.gitignore

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,32 @@ openssl-ios-x86_64-maccatalyst.a
5555
releases
5656
sandbox/
5757
example/iOS\ Test\ App/libs/
58-
example/iOS\ Test\ App/include/
5958
example/tvOS\ Test\ App/libs/
6059
example/tvOS\ Test\ App/include/
6160
example/macOS\ Test\ App/include/
6261
example/macOS\ Test\ App/libs/
6362
cacert.pem
63+
openssl/openssl-*/*
64+
curl/curl-*
65+
curl/include
66+
curl/lib
67+
openssl/openssl-1*
68+
openssl/openssl-3*
69+
openssl/openssl-ios*
70+
openssl/Mac
71+
openssl/iOS*
72+
openssl/tvOS*
73+
openssl/Catalyst
74+
nghttp2/nghttp2-1*
75+
nghttp2/Mac
76+
nghttp2/iOS*
77+
nghttp2/tvOS*
78+
nghttp2/lib
79+
nghttp2/Catalyst
80+
example/iOS\ Test\ App/build/*
81+
*.tgz
82+
*.pkg
83+
nghttp2/pkg-config*
84+
/tmp/curl
85+
/tmp/openssl
86+
/tmp/pkg_config

README.md

Lines changed: 34 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<!-- [![Build Status](https://app.travis-ci.com/jasonacox/Build-OpenSSL-cURL.svg?branch=master)](https://app.travis-ci.com/jasonacox/Build-OpenSSL-cURL) -->
44
[![Build Status](https://github.com/jasonacox/Build-OpenSSL-cURL/actions/workflows/build.yml/badge.svg)](https://github.com/jasonacox/Build-OpenSSL-cURL/actions/workflows/build.yml)
55

6-
This Script builds OpenSSL, nghttp2 and cURL/libcurl for MacOS (x86_64, arm64), Mac Catalyst (x86_64, arm64), iOS (armv7, armv7s, arm64 and arm64e), iOS Simulator (x86_64, arm64), tvOS (arm64) and tvOS Simulator (x86_64). It includes patching for tvOS to not use fork() and adds HTTP2 support via nghttp2.
6+
This Script builds OpenSSL, nghttp2 and cURL/libcurl for MacOS (x86_64, arm64), Mac Catalyst (x86_64, arm64), iOS (arm64 and arm64e), iOS Simulator (x86_64, arm64), tvOS (arm64) and tvOS Simulator (x86_64). It includes patching for tvOS to not use fork() and adds HTTP2 support via nghttp2.
77

88
## News
99

@@ -103,7 +103,7 @@ The build script requires:
103103
### OpenSSL
104104
The `openssl-build.sh` script creates separate bitcode enabled target libraries for:
105105
* MacOS - OS X (x86-64, arm64)
106-
* iOS - iPhone (armv7, armv7s, arm64 and arm64e) and iPhoneSimulator (i386, x86-64, arm64)
106+
* iOS - iPhone (arm64 and arm64e) and iPhoneSimulator (x86_64, arm64)
107107
* tvOS - AppleTVOS (arm64) and AppleTVSimulator (x86-64)
108108

109109
By default, the OpenSSL source disables ENGINE support for iOS builds. To force this active use `build.sh -e`
@@ -119,7 +119,7 @@ NOTE: This script allows building the OpenSSL 3.0.x and 1.1.1 series libraries.
119119
### HTTP2 / nghttp2
120120
The `nghttp2-build.sh` script builds the nghttp2 libraries used by libcurl for the HTTP2 protocol.
121121
* MacOS - OS X (x86-64, arm64)
122-
* iOS - iPhone (armv7, armv7s, arm64 and arm64e) and iPhoneSimulator (i386, x86-64, arm64)
122+
* iOS - iPhone (arm64 and arm64e) and iPhoneSimulator (x86_64, arm64)
123123
* tvOS - AppleTVOS (arm64) and AppleTVSimulator (x86-64)
124124

125125
Edit `build.sh` to change the default version of nghttp2 that will be downloaded and built or specify the version on the command line.
@@ -143,7 +143,7 @@ DISABLE HTTP2: The nghttp2 build can be disabled by using:
143143
### cURL / libcurl
144144
The `libcurl-build.sh` script create separate bitcode enabled targets libraries for:
145145
* MacOS - OS X (x86-64, arm64)
146-
* iOS - iPhone (armv7, armv7s, arm64 and arm64e) and iPhoneSimulator (i386, x86-64, arm64)
146+
* iOS - iPhone (arm64 and arm64e) and iPhoneSimulator (x86_64, arm64)
147147
* tvOS - AppleTVOS (arm64) and AppleTVSimulator (x86-64)
148148

149149
The curl build uses `--with-ssl` pointing to the above OpenSSL builds and `--with-nghttp2` pointing to the above nghttp2 builds..
@@ -154,7 +154,7 @@ Edit `build.sh` to change the version of cURL that will be downloaded and built
154154
Include the relevant library into your project. Rename the appropriate file to libcurl.a:
155155

156156
|____lib
157-
|____libcurl_iOS.a <-- Contains iOS (armv7, armv7s, arm64 and arm64e) libraries
157+
|____libcurl_iOS.a <-- Contains iOS (arm64 and arm64e) libraries
158158
|____libcurl_iOS-simulator.a <-- Contains iOS-simulator (x86_64, arm64) libraries
159159
|____libcurl_iOS-fat.a <-- Contains iOS and iOS-simulator (x86_64) libraries
160160
|____libcurl_Mac.a <-- Contains MacOS (x86_64, arm64) libraries
@@ -261,22 +261,22 @@ The Example app project builds an iOS, iOS Simulator and Mac Catalyst target.
261261
* curl/lib/libcurl_Mac.a are: x86_64 arm64
262262

263263
* iOS Only
264-
* openssl/iOS/lib/libcrypto.a are: armv7 armv7s arm64 arm64e
265-
* openssl/iOS/lib/libssl.a are: armv7 armv7s arm64 arm64e
266-
* nghttp2/lib/libnghttp2_iOS.a are: armv7 armv7s arm64 arm64e
267-
* curl/lib/libcurl_iOS.a are: armv7 armv7s arm64 arm64e
264+
* openssl/iOS/lib/libcrypto.a are: arm64 arm64e
265+
* openssl/iOS/lib/libssl.a are: arm64 arm64e
266+
* nghttp2/lib/libnghttp2_iOS.a are: arm64 arm64e
267+
* curl/lib/libcurl_iOS.a are: arm64 arm64e
268268

269269
* iOS Simulator (Intel + Apple Silicon)
270-
* openssl/iOS-simulator/lib/libcrypto.a are: i386 x86_64 arm64
271-
* openssl/iOS-simulator/lib/libssl.a are: i386 x86_64 arm64
272-
* nghttp2/lib/libnghttp2_iOS-simulator.a are: i386 x86_64 arm64
273-
* curl/lib/libcurl_iOS-simulator.a are: i386 x86_64 arm64
270+
* openssl/iOS-simulator/lib/libcrypto.a are: x86_64 arm64
271+
* openssl/iOS-simulator/lib/libssl.a are: x86_64 arm64
272+
* nghttp2/lib/libnghttp2_iOS-simulator.a are: x86_64 arm64
273+
* curl/lib/libcurl_iOS-simulator.a are: x86_64 arm64
274274

275275
* iOS + Intel Mac Simulator
276-
* openssl/iOS-fat/lib/libcrypto.a are: armv7 armv7s i386 x86_64 arm64 arm64e
277-
* openssl/iOS-fat/lib/libssl.a are: armv7 armv7s i386 x86_64 arm64 arm64e
278-
* nghttp2/lib/libnghttp2_iOS-fat.a are: armv7 armv7s i386 x86_64 arm64 arm64e
279-
* curl/lib/libcurl_iOS-fat.a are: armv7 armv7s i386 x86_64 arm64 arm64e
276+
* openssl/iOS-fat/lib/libcrypto.a are: x86_64 arm64 arm64e
277+
* openssl/iOS-fat/lib/libssl.a are: x86_64 arm64 arm64e
278+
* nghttp2/lib/libnghttp2_iOS-fat.a are: x86_64 arm64 arm64e
279+
* curl/lib/libcurl_iOS-fat.a are: x86_64 arm64 arm64e
280280

281281
* tvOS + Intel Mac Simulator
282282
* openssl/tvOS/lib/libcrypto.a are: x86_64 arm64
@@ -293,33 +293,33 @@ The Example app project builds an iOS, iOS Simulator and Mac Catalyst target.
293293
* (for architecture arm64): Mach-O 64-bit executable arm64
294294

295295
* Consolidated OpenSSL Libraries for iOS
296-
* openssl/openssl-ios-armv7_armv7s_arm64_arm64e.a are: armv7 armv7s arm64 arm64e
297-
* openssl/openssl-ios-x86_64-simulator.a are: i386 x86_64
296+
* openssl/openssl-ios-arm64_arm64e.a are: arm64 arm64e
297+
* openssl/openssl-ios-x86_64_arm64-simulator.a are: x86_64 arm64
298298
* openssl/openssl-ios-x86_64-maccatalyst.a is architecture: x86_64
299299

300300
* XCFrameworks
301301

302302
|__ libcrypto.xcframework
303-
│   |__ ios-arm64_arm64e_armv7_armv7s
304-
│   |__ ios-arm64_i386_x86_64-simulator
303+
│   |__ ios-arm64_arm64e
304+
│   |__ ios-x86_64_arm64-simulator
305305
│   |__ tvos-arm64
306306
│   |__ tvos-arm64_x86_64-simulator
307307
|
308308
|__ libcurl.xcframework
309-
│   |__ ios-arm64_arm64e_armv7_armv7s
310-
│   |__ ios-arm64_i386_x86_64-simulator
309+
│   |__ ios-arm64_arm64e
310+
│   |__ ios-x86_64_arm64-simulator
311311
│   |__ tvos-arm64
312312
│   |__ tvos-arm64_x86_64-simulator
313313
|
314314
|__ libnghttp2.xcframework
315-
│   |__ ios-arm64_arm64e_armv7_armv7s
316-
│   |__ ios-arm64_i386_x86_64-simulator
315+
│   |__ ios-arm64_arm64e
316+
│   |__ ios-x86_64_arm64-simulator
317317
│   |__ tvos-arm64
318318
│   |__ tvos-arm64_x86_64-simulator
319319
|
320320
|__ libssl.xcframework
321-
|__ ios-arm64_arm64e_armv7_armv7s
322-
|__ ios-arm64_i386_x86_64-simulator
321+
|__ ios-arm64_arm64e
322+
|__ ios-x86_64_arm64-simulator
323323
|__ tvos-arm64
324324
|__ tvos-arm64_x86_64-simulator
325325

@@ -353,6 +353,13 @@ The `build.sh` script will create an ./archive folder and store all the *.a libr
353353

354354
Previous builds can be downloaded form the Github releases for this project: https://github.com/jasonacox/Build-OpenSSL-cURL/releases
355355

356+
## i386 and armv7 Architectures
357+
358+
As of build 1.0.2, the build script no longer supports i386 and armv7/armv7s targets. New Xcode installations do not have the libraries to support these platform so the build script would fail.
359+
360+
* Apple officially stopped supporting the i386 architecture for new development in Xcode 10 (released in 2018), marking the end of 32-bit Intel support for both macOS and iOS simulators.
361+
* Apple officially stopped supporting the creation of binaries for armv7/armv7s architectures with the release of Xcode 14 in June 2022.
362+
356363
## License
357364

358365
The MIT License is used for this project. See LICENSE file.

RELEASE.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# RELEASE NOTES
22

3+
## 1.0.2 - Removal of armv7
4+
5+
* Removal of armv7/armv7s architecture support: Apple officially stopped supporting the creation of binaries for armv7/armv7s architectures with the release of Xcode 14 in June 2022. This means that new installations of Xcode will not be able to compile armv7 targets, which will break the build script.
6+
* Removal of i386 architecture support: Apple officially stopped supporting the i386 architecture for new development in Xcode 10 (released in 2018), marking the end of 32-bit Intel support for both macOS and iOS simulators.
7+
38
## 1.0.1 - Catalyst Fix
49

510
* Fix build issue where bitcode compile was happening for Catalyst target.

build.sh

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ set -e
1313
# EDIT this section to Select Default Versions #
1414
################################################
1515

16-
OPENSSL="3.0.15" # https://www.openssl.org/source/ - LTS Version
17-
LIBCURL="8.11.1" # https://curl.haxx.se/download.html
18-
NGHTTP2="1.64.0" # https://nghttp2.org/
16+
OPENSSL="3.0.18" # https://www.openssl.org/source/ - LTS Version
17+
LIBCURL="8.17.0" # https://curl.haxx.se/download.html
18+
NGHTTP2="1.68.0" # https://nghttp2.org/
1919

2020
################################################
2121

@@ -24,7 +24,7 @@ BUILD_MACHINE=`uname -m`
2424
BUILD_CMD=$*
2525

2626
# Script Version
27-
SCRIPT_VERSION="1.0.1"
27+
SCRIPT_VERSION="1.0.2"
2828

2929
# Compile Cache - Optional
3030
# export CMAKE_CXX_COMPILER_LAUNCHER="ccache"
@@ -57,7 +57,7 @@ BUILDFOR="all"
5757
# Global flags
5858
engine=""
5959
buildnghttp2="-n"
60-
disablebitcode="-b"
60+
disablebitcode="-b" # Default disable bitcode
6161
colorflag=""
6262
catalyst=""
6363
sslv3=""
@@ -371,8 +371,8 @@ elif [ "$BUILDFOR" == "all" ]; then
371371
-library $ARCHIVE/lib/tvOS-simulator/libssl.a \
372372
-library $ARCHIVE/lib/MacOS/libssl.a \
373373
-output $ARCHIVE/xcframework/libssl.xcframework
374-
# openssl/openssl-ios-armv7_armv7s_arm64_arm64e.a
375-
# openssl/openssl-ios-i386_x86_64_arm64-simulator.a
374+
# openssl/openssl-ios-arm64_arm64e.a
375+
# openssl/openssl-ios-x86_64_arm64-simulator.a
376376
cp openssl/*.a $ARCHIVE/framework
377377
elif [ "$BUILDFOR" == "ios" ]; then
378378
# Build XCFrameworks
@@ -392,8 +392,8 @@ elif [ "$BUILDFOR" == "ios" ]; then
392392
-library $ARCHIVE/lib/iOS/libssl.a \
393393
-library $ARCHIVE/lib/iOS-simulator/libssl.a \
394394
-output $ARCHIVE/xcframework/libssl.xcframework
395-
# openssl/openssl-ios-armv7_armv7s_arm64_arm64e.a
396-
# openssl/openssl-ios-i386_x86_64_arm64-simulator.a
395+
# openssl/openssl-ios-arm64_arm64e.a
396+
# openssl/openssl-ios-x86_64_arm64-simulator.a
397397
cp openssl/*.a $ARCHIVE/framework
398398
elif [ "$BUILDFOR" == "tvos" ]; then
399399
# Build XCFrameworks

curl/libcurl-build.sh

Lines changed: 3 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -595,68 +595,40 @@ if [ $BUILDFOR == "macos" ] || [ $BUILDFOR == "all" ]; then
595595
buildCatalyst "arm64" "${BITCODE}"
596596

597597
lipo \
598-
"/tmp/${CURL_VERSION}-catalyst-x86_64-bitcode/lib/libcurl.a" \
599-
"/tmp/${CURL_VERSION}-catalyst-arm64-bitcode/lib/libcurl.a" \
598+
"/tmp/${CURL_VERSION}-catalyst-x86_64-${BITCODE}/lib/libcurl.a" \
599+
"/tmp/${CURL_VERSION}-catalyst-arm64-${BITCODE}/lib/libcurl.a" \
600600
-create -output lib/libcurl_Catalyst.a
601601
fi
602602
fi
603603

604604
if [ $BUILDFOR == "ios" ] || [ $BUILDFOR == "all" ]; then
605605
echo -e "${bold}Building iOS libraries (${BITCODE})${dim}"
606-
buildIOS "armv7" "${BITCODE}"
607-
buildIOS "armv7s" "${BITCODE}"
608606
buildIOS "arm64" "${BITCODE}"
609607
buildIOS "arm64e" "${BITCODE}"
610608

611609
echo -e " ${dim}Copying headers"
612-
cp /tmp/${CURL_VERSION}-iOS-armv7-${BITCODE}/include/curl/* include/curl/
610+
cp /tmp/${CURL_VERSION}-iOS-arm64-${BITCODE}/include/curl/* include/curl/
613611

614612
lipo \
615-
"/tmp/${CURL_VERSION}-iOS-armv7-${BITCODE}/lib/libcurl.a" \
616-
"/tmp/${CURL_VERSION}-iOS-armv7s-${BITCODE}/lib/libcurl.a" \
617613
"/tmp/${CURL_VERSION}-iOS-arm64-${BITCODE}/lib/libcurl.a" \
618614
"/tmp/${CURL_VERSION}-iOS-arm64e-${BITCODE}/lib/libcurl.a" \
619615
-create -output lib/libcurl_iOS.a
620616

621-
buildIOSsim "i386" "${BITCODE}"
622617
buildIOSsim "x86_64" "${BITCODE}"
623618
buildIOSsim "arm64" "${BITCODE}"
624619

625620
lipo \
626-
"/tmp/${CURL_VERSION}-iOS-simulator-i386-${BITCODE}/lib/libcurl.a" \
627621
"/tmp/${CURL_VERSION}-iOS-simulator-x86_64-${BITCODE}/lib/libcurl.a" \
628622
"/tmp/${CURL_VERSION}-iOS-simulator-arm64-${BITCODE}/lib/libcurl.a" \
629623
-create -output lib/libcurl_iOS-simulator.a
630624

631625
lipo \
632-
"/tmp/${CURL_VERSION}-iOS-armv7-${BITCODE}/lib/libcurl.a" \
633-
"/tmp/${CURL_VERSION}-iOS-armv7s-${BITCODE}/lib/libcurl.a" \
634626
"/tmp/${CURL_VERSION}-iOS-arm64-${BITCODE}/lib/libcurl.a" \
635627
"/tmp/${CURL_VERSION}-iOS-arm64e-${BITCODE}/lib/libcurl.a" \
636-
"/tmp/${CURL_VERSION}-iOS-simulator-i386-${BITCODE}/lib/libcurl.a" \
637628
"/tmp/${CURL_VERSION}-iOS-simulator-x86_64-${BITCODE}/lib/libcurl.a" \
638629
-create -output lib/libcurl_iOS-fat.a
639630
fi
640631

641-
# if [[ "${NOBITCODE}" == "yes" ]]; then
642-
# echo -e "${bold}Building iOS libraries (nobitcode)${dim}"
643-
# buildIOS "armv7" "nobitcode"
644-
# buildIOS "armv7s" "nobitcode"
645-
# buildIOS "arm64" "nobitcode"
646-
# buildIOS "arm64e" "nobitcode"
647-
# buildIOSsim "x86_64" "nobitcode"
648-
# buildIOSsim "i386" "nobitcode"
649-
650-
# lipo \
651-
# "/tmp/${CURL_VERSION}-iOS-armv7-nobitcode/lib/libcurl.a" \
652-
# "/tmp/${CURL_VERSION}-iOS-armv7s-nobitcode/lib/libcurl.a" \
653-
# "/tmp/${CURL_VERSION}-iOS-simulator-i386-nobitcode/lib/libcurl.a" \
654-
# "/tmp/${CURL_VERSION}-iOS-arm64-nobitcode/lib/libcurl.a" \
655-
# "/tmp/${CURL_VERSION}-iOS-arm64e-nobitcode/lib/libcurl.a" \
656-
# "/tmp/${CURL_VERSION}-iOS-simulator-x86_64-nobitcode/lib/libcurl.a" \
657-
# -create -output lib/libcurl_iOS_nobitcode.a
658-
# fi
659-
660632
if [ $BUILDFOR == "tvos" ] || [ $BUILDFOR == "all" ]; then
661633
echo -e "${bold}Building tvOS libraries${dim}"
662634
buildTVOS "arm64" "${BITCODE}"

0 commit comments

Comments
 (0)