Skip to content

Commit 360d634

Browse files
committed
Update build script and documentation for version 1.0.0 with single platform target support
1 parent 2c284a1 commit 360d634

File tree

4 files changed

+76
-2
lines changed

4 files changed

+76
-2
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ This Script builds OpenSSL, nghttp2 and cURL/libcurl for MacOS (x86_64, arm64),
77

88
## News
99

10-
* 19-Jan-2025: Updated build script to allow building for single platform targets: macOS, iOS or tvOS. Specify with `-p macOS`. Default build is for "all" as it has been. Added examples apps for tvOS and macOS.
10+
* 19-Jan-2025: Version 1.0.0 - Updated build script to allow building for single platform targets: macOS, iOS or tvOS. Specify with `-p macOS`. Default build is for "all" as it has been. Added examples apps for tvOS and macOS.
1111
* 17-Mar-2024: Updated tvOS build script to work with XCode 15.3 and added `--without-libpsl` for cURL due to on-by-default policy (see [cURL blog](https://daniel.haxx.se/blog/2024/01/10/psl-in-curl/)). TODO: Get a static build of libpsl for cross-compile.
1212
* 19-Jul-2023: Added OpenSSL 3.0.x (LTS) Support and removed EOL bitcode for builds going forward.
1313
* 13-Feb-2021: Update now builds XCFrameworks which supports all platforms and targets for easy import into your projects.

RELEASE.md

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# RELEASE NOTES
2+
3+
## v1.0.0 - Platform Builds
4+
5+
* Updated build script to allow building for single platform targets: macOS, iOS or tvOS. Specify with `-p <platform>` switch. Default build is for "all" as it has been.
6+
```bash
7+
# Examples
8+
9+
./build.sh -p macos # Build only for macOS
10+
./build.sh -p ios # Build only for iOS
11+
./build.sh -p tvos # Build only for tvOS
12+
./build.sh # Build for all - macOS, iOS and tvOS
13+
14+
# Disable Confirmation (auto-Yes)
15+
./build.sh -y
16+
```
17+
18+
* Added [examples apps](https://github.com/jasonacox/Build-OpenSSL-cURL/tree/master/example) for tvOS and macOS.
19+
<img width="641" alt="Image" src="https://github.com/user-attachments/assets/a05b76b5-2052-4033-be18-fdf45f7342e0" />
20+

build.sh

+5-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ NGHTTP2="1.64.0" # https://nghttp2.org/
2323
BUILD_MACHINE=`uname -m`
2424
BUILD_CMD=$*
2525

26+
# Script Version
27+
SCRIPT_VERSION="1.0.0"
28+
2629
# Compile Cache - Optional
2730
# export CMAKE_CXX_COMPILER_LAUNCHER="ccache"
2831

@@ -81,6 +84,7 @@ trap 'echo -e "\n${alertdim}Cancelled by User${normal}"; exit 1' INT
8184

8285
# Show Usage
8386
usage () {
87+
echo -e "${bold}Build-OpenSSL-cURL${dim} - v$SCRIPT_VERSION"
8488
echo
8589
echo -e "${bold}Usage:${normal}"
8690
echo
@@ -158,7 +162,7 @@ shift $((OPTIND-1))
158162
OSARGS="-s ${IOS_MIN_SDK_VERSION} -t ${TVOS_MIN_SDK_VERSION} -i ${MACOS_X86_64_VERSION} -a ${MACOS_ARM64_VERSION}"
159163

160164
## Welcome
161-
echo -e "${bold}Build-OpenSSL-cURL${dim}"
165+
echo -e "${bold}Build-OpenSSL-cURL${dim} - v$SCRIPT_VERSION"
162166
echo
163167
echo -e " - OpenSSL version: ${subbold}${OPENSSL}${dim}"
164168
echo -e " - cURL version: ${subbold}${LIBCURL}${dim}"

example/README.md

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Example Apps
2+
3+
These three example Xcode projects show how to incorporate the OpenSSL+Curl libraries into your code.
4+
5+
## iOS
6+
7+
The iOS Build [iOS Test App](./iOS%20Test%20App/)
8+
9+
<img width="400" alt="image" src="https://github.com/jasonacox/Build-OpenSSL-cURL/assets/836718/6de13ab3-b7fe-4017-bf6d-9cbde131c098">
10+
<img width="400" alt="image" src="https://github.com/jasonacox/Build-OpenSSL-cURL/assets/836718/66806f0c-0915-4742-b71c-b683300082ae">
11+
12+
## tvOS
13+
14+
The tvOS Build [tvOS Test App](./tvOS%20Test%20App/)
15+
16+
<img width="641" alt="Image" src="https://github.com/user-attachments/assets/fd0b1e2b-6f2c-4295-853a-574dc8533461" />
17+
18+
## macOS
19+
20+
The macOS Build [macOS Test App](./macOS%20Test%20App/)
21+
22+
<img width="641" alt="Image" src="https://github.com/user-attachments/assets/a05b76b5-2052-4033-be18-fdf45f7342e0" />
23+
24+
## Build Notes
25+
26+
The Test Apps will not build without the required files in the `libs` and `include` folders. These are created during the build and will be installed by the script:
27+
28+
```bash
29+
./build.sh
30+
```
31+
32+
If you are setting up a new Xcode project, there are a few things you will need to do, including adding the required xcframework (lib) files and include path. Note, these are all set up for you already in the Test xcodeproj files.
33+
34+
### Add to Project
35+
36+
You will need to add the xcframework files (libs) and header files (include). You will also need to add libz.tbd to the Xcode project ("General").
37+
38+
<img width="495" alt="Image" src="https://github.com/user-attachments/assets/a1f194e4-2947-48e9-aa57-01458a79f623" />
39+
40+
You will also need to import the `cacert.pem` certificate bundle file into your project if you plan to use HTTPS (openssl) for certificate verification.
41+
42+
### Sandbox Settings for macOS
43+
44+
For macOS builds, you will need to allow "Outgoing Connection (Client)" in the "Signing & Capabilities" of the project target "Sandbox" settings.
45+
46+
<img width="482" alt="Image" src="https://github.com/user-attachments/assets/cd7f5e68-bc3e-4b5c-94d6-cb44c4c2ad23" />
47+
48+
You will also need to add libz.tbd, libldap.tbd, CoreFoundation.framework, and SystemConfiguration.framework to the Xcode project ("General") to prevent build errors.
49+
50+
<img width="482" alt="Image" src="https://github.com/user-attachments/assets/29fd3b15-f130-41cd-91d8-689a6b8b3f50" />

0 commit comments

Comments
 (0)