Go to file
Dirk Zimmermann 61155c3691 Merge branch 'engine3/master' 2023-03-03 14:51:49 +01:00
CommonPEPDependencies PEMA-192 Less debug logging 2023-01-23 12:21:59 +01:00
_config E3-3 Use pEpEngineSequoiaBackend v1.0.0 2023-03-01 13:50:40 +01:00
buildcode E3-3 No need to fiddle with the toolchain 2023-03-01 17:34:20 +01:00
.gitignore PEMA-40 Put lib name into the build script (parallelize) 2022-11-11 10:02:43 +01:00
README.md PEMA-192 Typo 2023-01-23 12:22:12 +01:00
build-asn1executable.sh Use https for cloning asn1c 2022-03-22 17:44:00 +01:00
build-fat-bins.sh uses default shell everywhere now 2021-07-22 13:56:49 +02:00
build-fat-libs.sh uses default shell everywhere now 2021-07-22 13:56:49 +02:00
build-ios_dependency.template PEMA-192 Remove empty line 2023-01-19 16:26:28 +01:00
build-macOSAdapter.sh uses default shell everywhere now 2021-07-22 13:56:49 +02:00
build-macos_dependency.template PEMA-40 Preemptively create directories 2022-11-14 15:13:11 +01:00
build-pEpEngine-iOS.sh PEMA-40 Fix comment 2022-11-15 10:20:00 +01:00
build-pEpEngine-macOS.sh Merge branch 'IOS-2945' 2022-05-11 15:05:51 +02:00
clean_all_iOS.sh seperates cleanup targets (iOS & macOS) 2021-07-19 15:57:49 +02:00
clean_all_macOS.sh seperates cleanup targets (iOS & macOS) 2021-07-19 15:57:49 +02:00
clean_pEp_macOS.sh IOS-2882 betters naming of clean targets to not whipe things which you do not want to 2021-07-23 10:41:21 +02:00
clean_repos_in_parent_dir.sh fixes: repos in parent dir not cleaned 2021-07-20 12:17:59 +02:00
generate_and_run_ios_dependency_build_script.sh PEMA-40 As iOS, so macOS 2022-11-14 15:05:37 +01:00
generate_and_run_mac_dependency_build_script.sh PEMA-40 As iOS, so macOS 2022-11-14 15:05:37 +01:00
get-config-ios-deployment-target.sh IOS-2882 gpm iOS working 2021-07-22 16:30:12 +02:00
get-config-macos-deployment-target-M1.sh initial commit 2021-07-15 16:13:07 +02:00
get-config-macos-deployment-target-x86_64.sh initial commit 2021-07-15 16:13:07 +02:00
get-config-prefix.sh initial commit 2021-07-15 16:13:07 +02:00
get-pEp-version.sh initial commit 2021-07-15 16:13:07 +02:00

README.md

common-dependency-build-helpers-4-apple-hardware

Contains one macOS build script for each dependency and an Xcode project with convenience build aggregates (using the build scripts).

Prerequisites

Package managers

MacPorts for installing dependencies:

Install MacPorts for your version of OS X/macOS.

Dependencies of prerequisites

You need a working python3 environment and all dependencies:

sudo port install git

sudo port install asn1c

sudo port install python38
sudo port install py38-lxml
sudo port select --set python3 python38

sudo port install gmake
sudo port install autoconf
sudo port install libtool
sudo port install automake

sudo port install wget

sudo port install gsed

sudo port install capnproto

xcode-select --install

Install Rust

curl https://sh.rustup.rs -sSf | sh

add this to ~/.profile (create if it doesn't exist):

source $HOME/.cargo/env
export PATH="$HOME/.cargo/bin:$PATH"

Restart your Console!

sudo port install pkgconfig
rustup target add x86_64-apple-darwin
rustup target add aarch64-apple-darwin
rustup target add x86_64-apple-ios
rustup target add aarch64-apple-ios
rustup update

Dependencies

git clone https://gitea.pep.foundation/buff/mac-os-build-scripts-common-dependencies.git

Build

We recomend to not use the shell scripts directly but to use Xcode (because its a working, tested onliner and using the scripts directly is undocumented and untested).

Using Xcode UI

open CommonPEPDependencies/CommonPEPDependencies.xcodeproj.

Build the scheme fitting your needs (e.g. "build-pEpMIME-dependencies_macOS" if you need the dependencies for building pEpMIME).

Using terminal

xcodebuild -project "CommonPEPDependencies/CommonPEPDependencies.xcodeproj" -scheme "$NAME_OF_SCHEME_FITING_YOUR_NEEDS" -configuration [RELEASE|DEBUG]

Output Dir

You can configure the PREFIX to save build arttefacts and headers in CommonPEPDependencies/config.plist, setting the value for key "CommonPEPDependencies_PREFIX". It is relative to CommonPEPDependencies/CommonPEPDependencies.xcodeproj.

The default output dir is CommonPEPDependencies/build.

See: #Configs section for details re configuring it

Configs

config.plist

There is a CommonPEPDependencies/config.plist config file which you can configure the following in:

CommonPEPDependencies_PREFIX

Defines the PREFIX directory to save build arttefacts and headers in. It is relative to CommonPEPDependencies/CommonPEPDependencies.xcodeproj.

pEp_versions.plist

There is a /_config/pEp_versions.plist where you can configure the version used for pEp dependencies.

For 3rd party dependencies, the version used is hardcoded in the corresponding .code file (e.g. buildcode/iconv.code) as it is assumed to use the same 3rd party lib version for all pEp projects (if that assumtion is wrong, please do not chagne the .codefile but ping the maintainer to the version to /_config/pEp_versions.plist ).

Known Issue

Building sequoia this error is logged:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/objdump:1:1: 'conftest.o': Invalid/Unsupported object file format

It i yet unknown why that is the case, it seems to not do any harm and it does not return an none zero exit code.