From 1a773ca333c817399dcc3ec3fe369811b8402255 Mon Sep 17 00:00:00 2001 From: apotocki Date: Mon, 18 Dec 2023 18:41:09 +0100 Subject: [PATCH] version 1.84.0 --- .github/workflows/main.yml | 2 +- README.md | 128 +++++++------- boost-iosx.podspec | 343 +++++++++++++++++++------------------ scripts/build.sh | 7 +- 4 files changed, 243 insertions(+), 237 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ab6d7f5b..1cd250dc 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -14,7 +14,7 @@ jobs: - uses: actions/checkout@v3 - name: Build run: | - export ICU4C_RELEASE_LINK=https://github.com/apotocki/icu4c-iosx/releases/download/73.2.1 + export ICU4C_RELEASE_LINK=https://github.com/apotocki/icu4c-iosx/releases/download/74.2.6 scripts/build.sh for i in frameworks/*.xcframework/; do cd frameworks && zip -9 -r "$(basename -- $i).zip" $(basename -- $i) & done; wait cd frameworks diff --git a/README.md b/README.md index 55d41d62..dbeb6474 100644 --- a/README.md +++ b/README.md @@ -1,64 +1,64 @@ -# Boost C++ for iOS and Mac OS X (Intel & Apple Silicon M1) & Catalyst - arm64 / x86_64 - -Supported version: 1.83.0 (use the appropriate tag to select the version) - -This repo provides a universal script for building static Boost C++ libraries for use in iOS and Mac OS X & Catalyst applications. -The latest supported Boost version is taken from: https://boostorg.jfrog.io/artifactory/main/release/1.83.0/source/boost_1_83_0.tar.bz2 - -## Building libraries -atomic, chrono, container, context, contract, coroutine, date_time, exception, fiber, filesystem, graph, iostreams, json, locale, log, math, nowide, program_options, random, regex, serialization, stacktrace, system, test, thread, timer, type_erasure, url, wave - -## Not building libraries -graph_parallel, mpi, python - -## Prerequisites - 1) Xcode must be installed because xcodebuild is used to create xcframeworks - 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: - ```sudo xcode-select --reset``` or ```sudo xcode-select -s /Applications/Xcode.app/Contents/Developer``` - 3) You should not have your own user-config.jam file in your home directory! - -## Building notes -1) Libraries 'locale' and 'regex' are being built with ICU backend. ICU build scripts are being taken from https://github.com/apotocki/icu4c-iosx and run with the help of 'pod' utility. -2) 'test' library is building for iOS with BOOST_TEST_NO_MAIN flag. - -## How to build? - - Manually -``` - # clone the repo - git clone -b 1.83.0 https://github.com/apotocki/boost-iosx - - # build libraries - cd boost-iosx - scripts/build.sh - - # have fun, the result artifacts will be located in 'frameworks' folder. - # Then you can add desirable xcframewors in your XCode project. The process is described, e.g., at https://www.simpleswiftguide.com/how-to-add-xcframework-to-xcode-project/ -``` - - Use cocoapods. Add the following lines into your project's Podfile: -``` - use_frameworks! - pod 'boost-iosx', '~> 1.83.0' - # or optionally more precisely e.g.: - # pod 'boost-iosx', :git => 'https://github.com/apotocki/boost-iosx', :tag => '1.83.0.0' -``` -If you want to use particular boost libraries, specify them as in the following example for log and program_options libraries: -``` - pod 'boost-iosx/log', '~> 1.83.0' - pod 'boost-iosx/program_options', '~> 1.83.0' - # note: Some libraries have dependencies on other Boost libraries. In that case, you should explicitly add all their dependencies to your Podfile. -``` -Then install new dependencies: -``` - pod install --verbose -``` - -## As an advertisement… -The Boost libraries built by this project are used in my iOS application on the App Store: - -[
PotoHEX
HEX File Viewer & Editor
]() - -This app is designed for viewing and editing files at the byte or character level. - -You can support my open-source development by trying the [App](https://apps.apple.com/us/app/potohex/id1620963302). - -Feedback is welcome! +# Boost C++ for iOS and Mac OS X (Intel & Apple Silicon M1) & Catalyst - arm64 / x86_64 + +Supported version: 1.84.0 (use the appropriate tag to select the version) + +This repo provides a universal script for building static Boost C++ libraries for use in iOS and Mac OS X & Catalyst applications. +The latest supported Boost version is taken from: https://boostorg.jfrog.io/artifactory/main/release/1.84.0/source/boost_1_84_0.tar.bz2 + +## Building libraries +atomic, chrono, cobalt, container, context, contract, coroutine, date_time, exception, fiber, filesystem, graph, iostreams, json, locale, log, math, nowide, program_options, random, regex, serialization, stacktrace, system, test, thread, timer, type_erasure, url, wave + +## Not building libraries +graph_parallel, mpi, python + +## Prerequisites + 1) Xcode must be installed because xcodebuild is used to create xcframeworks + 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: + ```sudo xcode-select --reset``` or ```sudo xcode-select -s /Applications/Xcode.app/Contents/Developer``` + 3) You should not have your own user-config.jam file in your home directory! + +## Building notes +1) Libraries 'locale' and 'regex' are being built with ICU backend. ICU build scripts are being taken from https://github.com/apotocki/icu4c-iosx and run with the help of 'pod' utility. +2) 'test' library is building for iOS with BOOST_TEST_NO_MAIN flag. + +## How to build? + - Manually +``` + # clone the repo + git clone -b 1.84.0 https://github.com/apotocki/boost-iosx + + # build libraries + cd boost-iosx + scripts/build.sh + + # have fun, the result artifacts will be located in 'frameworks' folder. + # Then you can add desirable xcframewors in your XCode project. The process is described, e.g., at https://www.simpleswiftguide.com/how-to-add-xcframework-to-xcode-project/ +``` + - Use cocoapods. Add the following lines into your project's Podfile: +``` + use_frameworks! + pod 'boost-iosx', '~> 1.84.0' + # or optionally more precisely e.g.: + # pod 'boost-iosx', :git => 'https://github.com/apotocki/boost-iosx', :tag => '1.84.0.0' +``` +If you want to use particular boost libraries, specify them as in the following example for log and program_options libraries: +``` + pod 'boost-iosx/log', '~> 1.84.0' + pod 'boost-iosx/program_options', '~> 1.84.0' + # note: Some libraries have dependencies on other Boost libraries. In that case, you should explicitly add all their dependencies to your Podfile. +``` +Then install new dependencies: +``` + pod install --verbose +``` + +## As an advertisement… +The Boost libraries built by this project are used in my iOS application on the App Store: + +[
PotoHEX
HEX File Viewer & Editor
]() + +This application is designed to view and edit files at the byte or character level; calculate different hashes, encode/decode, and compress/decompress desired byte regions. + +You can support my open-source development by trying the [App](https://apps.apple.com/us/app/potohex/id1620963302). + +Feedback is welcome! diff --git a/boost-iosx.podspec b/boost-iosx.podspec index 01f635bb..9dc7658e 100644 --- a/boost-iosx.podspec +++ b/boost-iosx.podspec @@ -1,169 +1,174 @@ -Pod::Spec.new do |s| - s.name = "boost-iosx" - s.version = "1.83.0.0" - s.summary = "Boost C++ libraries" - s.homepage = "https://github.com/apotocki/boost-iosx" - s.license = "Boost Software License" - s.author = { "Alexander Pototskiy" => "alex.a.potocki@gmail.com" } - s.social_media_url = "https://www.linkedin.com/in/alexander-pototskiy" - s.osx.deployment_target = "11.0" - s.ios.deployment_target = "13.4" - s.osx.pod_target_xcconfig = { 'ONLY_ACTIVE_ARCH' => 'YES' } - s.ios.pod_target_xcconfig = { 'ONLY_ACTIVE_ARCH' => 'YES' } - s.static_framework = true - s.prepare_command = "sh scripts/build.sh" - s.source = { :git => "https://github.com/apotocki/boost-iosx.git", :tag => "#{s.version}" } - - s.header_mappings_dir = "frameworks/Headers" - #s.public_header_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - - s.default_subspec = "all" - - s.subspec 'all' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_atomic.xcframework", "frameworks/boost_chrono.xcframework", "frameworks/boost_container.xcframework", "frameworks/boost_context.xcframework", "frameworks/boost_contract.xcframework", "frameworks/boost_coroutine.xcframework", "frameworks/boost_date_time.xcframework", "frameworks/boost_exception.xcframework", "frameworks/boost_fiber.xcframework", "frameworks/boost_filesystem.xcframework", "frameworks/boost_graph.xcframework", "frameworks/boost_iostreams.xcframework", "frameworks/boost_json.xcframework", "frameworks/boost_locale.xcframework", "frameworks/boost_log.xcframework", "frameworks/boost_log_setup.xcframework", "frameworks/boost_nowide.xcframework", "frameworks/boost_program_options.xcframework", "frameworks/boost_random.xcframework", "frameworks/boost_regex.xcframework", "frameworks/boost_serialization.xcframework", "frameworks/boost_stacktrace_basic.xcframework", "frameworks/boost_prg_exec_monitor.xcframework", "frameworks/boost_test_exec_monitor.xcframework", "frameworks/boost_unit_test_framework.xcframework", "frameworks/boost_thread.xcframework", "frameworks/boost_timer.xcframework", "frameworks/boost_type_erasure.xcframework", "frameworks/boost_system.xcframework", "frameworks/boost_url.xcframework", "frameworks/boost_wave.xcframework" - end - - s.subspec 'atomic' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_atomic.xcframework" - end - s.subspec 'chrono' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_chrono.xcframework" - end - s.subspec 'container' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_container.xcframework" - end - s.subspec 'context' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_context.xcframework" - end - s.subspec 'contract' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_contract.xcframework" - end - s.subspec 'coroutine' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_coroutine.xcframework" - end - s.subspec 'date_time' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_date_time.xcframework" - end - s.subspec 'exception' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_exception.xcframework" - end - s.subspec 'fiber' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_fiber.xcframework", "frameworks/boost_context.xcframework" - end - s.subspec 'filesystem' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_filesystem.xcframework" - end - s.subspec 'graph' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_graph.xcframework" - end - s.subspec 'iostreams' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_iostreams.xcframework" - end - s.subspec 'json' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_json.xcframework" - end - s.subspec 'locale' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_locale.xcframework" - end - s.subspec 'log' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_log.xcframework", "frameworks/boost_log_setup.xcframework" - end - s.subspec 'math_c99' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_math_c99.xcframework" - end - s.subspec 'math_c99l' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_math_c99l.xcframework" - end - s.subspec 'math_c99f' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_math_c99f.xcframework" - end - s.subspec 'math_tr1' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_math_tr1.xcframework" - end - s.subspec 'math_tr1l' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_math_tr1l.xcframework" - end - s.subspec 'math_tr1f' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_math_tr1f.xcframework" - end - s.subspec 'nowide' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_nowide.xcframework" - end - s.subspec 'program_options' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_program_options.xcframework" - end - s.subspec 'random' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_random.xcframework" - end - s.subspec 'regex' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_regex.xcframework" - end - s.subspec 'serialization' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_serialization.xcframework" - end - s.subspec 'wserialization' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_wserialization.xcframework" - end - s.subspec 'stacktrace_basic' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_stacktrace_basic.xcframework" - end - s.subspec 'stacktrace_noop' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_stacktrace_noop.xcframework" - end - s.subspec 'test' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_prg_exec_monitor.xcframework", "frameworks/boost_test_exec_monitor.xcframework", "frameworks/boost_unit_test_framework.xcframework" - end - s.subspec 'thread' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_thread.xcframework" - end - s.subspec 'timer' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_timer.xcframework" - end - s.subspec 'type_erasure' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_type_erasure.xcframework" - end - s.subspec 'url' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_url.xcframework" - end - s.subspec 'wave' do |ss| - ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" - ss.vendored_frameworks = "frameworks/boost_wave.xcframework" - end - #s.preserve_paths = "frameworks/**/*" - #s.dependency "icu4c-iosx" -end +Pod::Spec.new do |s| + s.name = "boost-iosx" + s.version = "1.84.0.0" + s.summary = "Boost C++ libraries" + s.homepage = "https://github.com/apotocki/boost-iosx" + s.license = "Boost Software License" + s.author = { "Alexander Pototskiy" => "alex.a.potocki@gmail.com" } + s.social_media_url = "https://www.linkedin.com/in/alexander-pototskiy" + s.osx.deployment_target = "11.0" + s.ios.deployment_target = "13.4" + s.osx.pod_target_xcconfig = { 'ONLY_ACTIVE_ARCH' => 'YES' } + s.ios.pod_target_xcconfig = { 'ONLY_ACTIVE_ARCH' => 'YES' } + s.static_framework = true + s.prepare_command = "sh scripts/build.sh" + s.source = { :git => "https://github.com/apotocki/boost-iosx.git", :tag => "#{s.version}" } + + s.header_mappings_dir = "frameworks/Headers" + #s.public_header_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + + s.default_subspec = "all" + + s.subspec 'all' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_atomic.xcframework", "frameworks/boost_chrono.xcframework", "frameworks/boost_cobalt.xcframework", "frameworks/boost_container.xcframework", "frameworks/boost_context.xcframework", "frameworks/boost_contract.xcframework", "frameworks/boost_coroutine.xcframework", "frameworks/boost_date_time.xcframework", "frameworks/boost_exception.xcframework", "frameworks/boost_fiber.xcframework", "frameworks/boost_filesystem.xcframework", "frameworks/boost_graph.xcframework", "frameworks/boost_iostreams.xcframework", "frameworks/boost_json.xcframework", "frameworks/boost_locale.xcframework", "frameworks/boost_log.xcframework", "frameworks/boost_log_setup.xcframework", "frameworks/boost_nowide.xcframework", "frameworks/boost_program_options.xcframework", "frameworks/boost_random.xcframework", "frameworks/boost_regex.xcframework", "frameworks/boost_serialization.xcframework", "frameworks/boost_stacktrace_basic.xcframework", "frameworks/boost_prg_exec_monitor.xcframework", "frameworks/boost_test_exec_monitor.xcframework", "frameworks/boost_unit_test_framework.xcframework", "frameworks/boost_thread.xcframework", "frameworks/boost_timer.xcframework", "frameworks/boost_type_erasure.xcframework", "frameworks/boost_system.xcframework", "frameworks/boost_url.xcframework", "frameworks/boost_wave.xcframework" + end + + s.subspec 'atomic' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_atomic.xcframework" + end + s.subspec 'chrono' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_chrono.xcframework" + end + s.subspec 'cobalt' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_cobalt.xcframework" + end + s.subspec 'container' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_container.xcframework" + end + s.subspec 'context' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_context.xcframework" + end + s.subspec 'contract' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_contract.xcframework" + end + s.subspec 'coroutine' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_coroutine.xcframework" + end + s.subspec 'date_time' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_date_time.xcframework" + end + s.subspec 'exception' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_exception.xcframework" + end + s.subspec 'fiber' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_fiber.xcframework", "frameworks/boost_context.xcframework" + end + s.subspec 'filesystem' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_filesystem.xcframework" + end + s.subspec 'graph' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_graph.xcframework" + end + s.subspec 'iostreams' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_iostreams.xcframework" + end + s.subspec 'json' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_json.xcframework" + end + s.subspec 'locale' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_locale.xcframework" + end + s.subspec 'log' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_log.xcframework", "frameworks/boost_log_setup.xcframework" + end + s.subspec 'math_c99' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_math_c99.xcframework" + end + s.subspec 'math_c99l' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_math_c99l.xcframework" + end + s.subspec 'math_c99f' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_math_c99f.xcframework" + end + s.subspec 'math_tr1' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_math_tr1.xcframework" + end + s.subspec 'math_tr1l' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_math_tr1l.xcframework" + end + s.subspec 'math_tr1f' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_math_tr1f.xcframework" + end + s.subspec 'nowide' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_nowide.xcframework" + end + s.subspec 'program_options' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_program_options.xcframework" + end + s.subspec 'random' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_random.xcframework" + end + s.subspec 'regex' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_regex.xcframework" + end + s.subspec 'serialization' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_serialization.xcframework" + end + s.subspec 'wserialization' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_wserialization.xcframework" + end + s.subspec 'stacktrace_basic' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_stacktrace_basic.xcframework" + end + s.subspec 'stacktrace_noop' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_stacktrace_noop.xcframework" + end + s.subspec 'test' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_prg_exec_monitor.xcframework", "frameworks/boost_test_exec_monitor.xcframework", "frameworks/boost_unit_test_framework.xcframework" + end + s.subspec 'thread' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_thread.xcframework" + end + s.subspec 'timer' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_timer.xcframework" + end + s.subspec 'type_erasure' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_type_erasure.xcframework" + end + s.subspec 'url' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_url.xcframework" + end + s.subspec 'wave' do |ss| + ss.source_files = "frameworks/Headers/**/*.{h,hpp,ipp}" + ss.vendored_frameworks = "frameworks/boost_wave.xcframework" + end + #s.preserve_paths = "frameworks/**/*" + #s.dependency "icu4c-iosx" +end + diff --git a/scripts/build.sh b/scripts/build.sh index a634afc6..e34efb46 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -3,7 +3,7 @@ set -e ################## SETUP BEGIN THREAD_COUNT=$(sysctl hw.ncpu | awk '{print $2}') XCODE_ROOT=$( xcode-select -print-path ) -BOOST_VER=1.83.0 +BOOST_VER=1.84.0 ################## SETUP END DEVSYSROOT=$XCODE_ROOT/Platforms/iPhoneOS.platform/Developer SIMSYSROOT=$XCODE_ROOT/Platforms/iPhoneSimulator.platform/Developer @@ -35,7 +35,7 @@ fi ############### ICU if true; then -#export ICU4C_RELEASE_LINK=https://github.com/apotocki/icu4c-iosx/releases/download/72.1.1 +#export ICU4C_RELEASE_LINK=https://github.com/apotocki/icu4c-iosx/releases/download/74.2.6 if [[ ! -d $SCRIPT_DIR/Pods/icu4c-iosx/product ]]; then if [[ ! -z "${ICU4C_RELEASE_LINK}" ]]; then if [[ -d $SCRIPT_DIR/Pods/icu4c-iosx ]]; then @@ -97,7 +97,7 @@ fi patch tools/build/src/tools/features/instruction-set-feature.jam $SCRIPT_DIR/instruction-set-feature.jam.patch -LIBS_TO_BUILD="--with-atomic --with-chrono --with-container --with-context --with-contract --with-coroutine --with-date_time --with-exception --with-fiber --with-filesystem --with-graph --with-iostreams --with-json --with-locale --with-log --with-math --with-nowide --with-program_options --with-random --with-regex --with-serialization --with-stacktrace --with-system --with-test --with-thread --with-timer --with-type_erasure --with-wave --with-url" +LIBS_TO_BUILD="--with-atomic --with-chrono --with-cobalt --with-container --with-context --with-contract --with-coroutine --with-date_time --with-exception --with-fiber --with-filesystem --with-graph --with-iostreams --with-json --with-locale --with-log --with-math --with-nowide --with-program_options --with-random --with-regex --with-serialization --with-stacktrace --with-system --with-test --with-thread --with-timer --with-type_erasure --with-wave --with-url" B2_BUILD_OPTIONS="-j$THREAD_COUNT address-model=64 release link=static runtime-link=shared define=BOOST_SPIRIT_THREADSAFE cxxflags=\"-std=c++20\"" @@ -266,6 +266,7 @@ build_xcframework() if true; then build_xcframework boost_atomic build_xcframework boost_chrono +build_xcframework boost_cobalt build_xcframework boost_container build_xcframework boost_context build_xcframework boost_contract