Replaces the previous Travis-CI job for OSX. The MacOS runner on Github Actions has a newer perl version installed which forced me to increase version numbers of dependencies in order to get it working.
Deployment is not finished yet.
This needs commit ebc507e082 as a prerequisite.
Co-authored-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>
CAUTION #1: I don't have arm64 macintosh hardware so this has been tested only on an x86_64 system.
CAUTION #2: This was developed on MacOS 11.0 beta 3 and Xcode 12.0 beta 2, not final release builds
CAUTION #3: At this time OpenSSL does not yet provide a way to build for MacOS with arm64 architecture, so I implemented a temporary workaround, which may or may not work properly on arm64 Macs.
- use libc++ instead of libstdc++
- eliminate 32-bit builds (Xcode 10 with Mac OS X SDK 10.14 builds only 64-bit binaries)
- buildWxMac.sh was previously updated for Xcode 10 compatibility by commit 282ea8c324
By default stdout is printed on screen. For CI builds this is cluttering the log.
Note: /dev/stdout is not POSIX but is available on MacOS and popular Linux distributions.
This allows to build BOINC on a Mac CI system as well as on a developers computer. See script headers for documentation.
The short version is:
* run ./3rdParty/buildMacDependencies.sh to compile all dependency libraries into 3rdParty/buildCache/mac (can be configured with --cache_dir)
* run ./mac_build/buildMacBOINC-CI.sh to compile all BOINC components using the build cache (--cache_dir can be used here too)
There are options for building debug versions but they are not very well tested. Currently you can't selectively build single targets using this.
Note: OpenSSL-1.0.2g eliminates support for SSLv2, but cURL expects that support, so using their default builds causes link errors in the client. I work around this by having the build script patch curl-7.47.1/lib/curl_config.h to remove SSLv2 from cURL. An alternate solution would be to pass the enable-ssl2 argument to configure when building OpenSSL-1.0.2g,