-
Notifications
You must be signed in to change notification settings - Fork 0
Build Overview
As mostly all other projects even Alias used the build scripts/steps/tools from it's predecessors. So there are more or less different approaches used throughout the different target systems. One could imagine that it is difficult to maintain. To keep the output of all these different build ways in sync took a lot of time, which could better be used at other things.
To solve this issue we decided to generalize the build in such a way, that it is as most generic as possible. It's of course impossible, to build with exactly the same tools on a/o for the different operating systems. But there is even another tool available, which can handle or better said "orchestrate" the final build steps in a generic way: CMake
The whole build is now based on CMake. CMake uses some
special files, called CMakeLists.txt
which define all required things
like build targets, dependencies, versions etc. So from a high level point
of view, the build as usual consists of two steps:
- Configure the build
- Perform the build
# cmake
# cmake build
These steps need to be parameterized according to the used operating system a/o target system. To make these parameterization as easy as possible, we developed helper scripts for different environments. These helper scripts perform the following tasks:
- Check requirements
- Download and build dependencies
- Build Alias wallet daemon and UI
The main ideas of the helper scripts are to make the build itself as easy
and as fast as possible. So the source archvies of the dependencies will be
downloaded only once and then used on subsequent builds. These downloads
will be stored on ~/Archives/...
. For further speed improvements each
dependency will be built only once on a dedicated folder inside the main
build folder. So during a subsequent build of the Alias wallet, the build
script will check if the required binaries are already build and just use
them.
Afterwards the main wallet build is parameterized in such a way, that these prebuild binaries are used and included onto the resulting binary. That means for all supported Linux flavours, that there are mostly no other dependencies at runtime anymore. So the resulting binary can be put onto a fresh and clean new system and it is working. "Mostly" in that sense means, that there are only two exceptions: Tor and Qt. So the only separate packages to install are Tor and if you're using the wallet with the graphical user interface, Qt. Tor is used "as-is" and static build of Qt is not supported.
Windows and Mac are slightly different regarding their build requirements, build behaviour and build output but this is handled by the scripts too.
For any further details, just have a look at the corresponding document according to your operating system:
After the build comes the installation. For this, see here: