You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+38-15Lines changed: 38 additions & 15 deletions
Original file line number
Diff line number
Diff line change
@@ -4,25 +4,48 @@ Supported version: 1.84.0 (use the appropriate tag to select the version)
4
4
5
5
This repo provides a universal script for building static Boost C++ libraries for use in iOS, watchOS, tvOS, visionOS, and macOS & Catalyst applications.
6
6
7
-
Since the Boost distribution URLs are often broken and change, the script tries to download it from the links specified in the LOCATIONS file in the master branch. Only after the SHA256 hash of the downloaded archive is verified, the libraries are unpacked and compiled.
7
+
Since Boost distribution URLs are often unreliable and subject to change, the script attempts to download Boost from the links specified in the `LOCATIONS` file on the master branch. Only after verifying the SHA256 hash of the downloaded archive are the libraries unpacked and compiled.
1) Xcode must be installed because xcodebuild is used to create xcframeworks
17
-
2)```xcode-select -p``` must point to Xcode app developer directory (by default e.g. /Applications/Xcode.app/Contents/Developer). If it points to CommandLineTools directory you should execute:
18
-
```sudo xcode-select --reset``` or ```sudo xcode-select -s /Applications/Xcode.app/Contents/Developer```
19
-
3) You should not have your own user-config.jam file in your home directory!
20
-
4) Building for tvOS, watchOS, visionOS and their simulators requires the appropriate SDKs to be installed in the folder /Applications/Xcode.app/Contents/Developer/Platforms
21
16
22
-
## Building notes
23
-
1) The 'locale' and 'regex' libraries are built using the ICU backend. There are two ways to get it. The first (default) is when the ICU libraries are automatically built before Boost is built using the build script from https://github.com/apotocki/icu4c-iosx . The second is by specifying the ICU4C_RELEASE_LINK environment variable where prebuit binaries can be downloaded from.
24
-
2) The 'test' library is built for iOS and visionOS with the BOOST_TEST_NO_MAIN flag.
25
-
3) The 'test' library is built for watchOS and tvOS with the BOOST_TEST_NO_MAIN and BOOST_TEST_DISABLE_ALT_STACK flags.
17
+
1.**Install Xcode**: Ensure Xcode is installed, as `xcodebuild` is required to create `xcframeworks`.
18
+
19
+
2.**Verify Xcode Developer Directory**:
20
+
- The `xcode-select -p` command must point to the Xcode app's developer directory (e.g., `/Applications/Xcode.app/Contents/Developer`).
21
+
- If it points to the CommandLineTools directory, reset it using one of the following commands:
3. **Remove User-Specific Configurations**: Ensure you do not have a `user-config.jam` file in your home directory, as it may interfere with the build process.
31
+
32
+
4. **Install Required SDKs**: To build fortvOS, watchOS, visionOS, and their simulators, make sure the corresponding SDKs are installedin the folder:
# have fun, the result artifacts will be located in 'frameworks' folder.
40
63
# Then you can add desirable xcframeworks in your XCode project. The process is described, e.g., at https://www.simpleswiftguide.com/how-to-add-xcframework-to-xcode-project/
Suffix '-both' means that xcframeworks will be built for both arm64 and x86_64 architectures.
54
77
The platform names for macosx and simulators without an architecture suffix (e.g. macosx, iossim, tvossim) mean that xcframeworks are only built for the current host architecture.
@@ -77,7 +100,7 @@ Add the following lines into your project's Podfile:
77
100
use_frameworks!
78
101
pod 'boost-iosx', '~> 1.84.0'
79
102
# or optionally more precisely e.g.:
80
-
# pod 'boost-iosx', :git => 'https://github.com/apotocki/boost-iosx', :tag => '1.84.0.7'
103
+
# pod 'boost-iosx', :git => 'https://github.com/apotocki/boost-iosx', :tag => '1.84.0.8'
81
104
```
82
105
If you want to use specific boost libraries, specify them as in the following example for log and program_options libraries:
Copy file name to clipboardExpand all lines: boost-iosx.podspec
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
Pod::Spec.newdo |s|
2
2
s.name="boost-iosx"
3
-
s.version="1.84.0.7"
3
+
s.version="1.84.0.8"
4
4
s.summary="Boost C++ libraries for macOS, iOS, watchOS, tvOS, and visionOS, including builds for Mac Catalyst, iOS Simulator, watchOS Simulator, tvOS Simulator, and visionOS Simulator."
0 commit comments