Page MenuHomePhabricator

[GITIAN] Migrate OSX Gitian builds to CMake and Ninja
ClosedPublic

Authored by Fabien on Nov 7 2019, 15:44.

Details

Summary

Replace autotools by CMake for the OSX Gitian builds, and use
Ninja as a generator.

Note 1:
The test_bitcoin binary is no longer part of the Gitian output.

Note 2: There are some more dependencies required.
This is because CMake is run for the native platform in order to build a
couple helper binaries for secp256k1 and univalue. CMake is run from the
project root and check for all the dependencies despite only a compiler
is required. This is a minor inconvenience which can be reworked later.

Test Plan

Run the OSX Gitian build twice.
Check the hashes are identical between the builds.
Run the binaries and installers (DMG).

Diff Detail

Repository
rABC Bitcoin ABC
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

Fabien created this revision.Nov 7 2019, 15:44
Herald added a reviewer: Restricted Project. · View Herald TranscriptNov 7 2019, 15:44
deadalnix requested changes to this revision.Nov 10 2019, 12:58

Depending on system libs will cause the build to not be reproducible. You need to be using depends libs.

This revision now requires changes to proceed.Nov 10 2019, 12:58
Fabien updated this revision to Diff 14049.Nov 11 2019, 12:15

Reduce the amount of dependencies required by rebasing on top of D4425.
Disable ccache for the build.

Fabien planned changes to this revision.Nov 12 2019, 19:49
Fabien updated this revision to Diff 14103.Nov 13 2019, 14:42

Rebase on top of D4438.

Fabien planned changes to this revision.Nov 18 2019, 08:45
Fabien updated this revision to Diff 14177.Nov 18 2019, 14:35

Address comments from D4356 (they are applicable to this diff as well).

Fabien updated this revision to Diff 14182.Nov 18 2019, 17:09

Remove CMAKE_EXTRA_OPTIONS.
I first planned to make it the rule but after D4461 it will become the
exception (only used on windows).

deadalnix accepted this revision.Nov 19 2019, 23:39
This revision is now accepted and ready to land.Nov 19 2019, 23:39
This revision was automatically updated to reflect the committed changes.