wowlet/docs/BUILDING.md
2021-08-29 10:02:45 -04:00

3.2 KiB

Buildbot builds

The docker build bins can be found here: https://build.wownero.org/files/

Docker static builds

Static builds via Docker are done in 3 steps:

  1. Cloning this repository (+submodules)
  2. Creating a base Docker image
  3. Using the base image to compile a build

Linux (reproducible)

The docker image for reproducible Linux static builds uses Ubuntu 16.04 and compiles the required libraries statically so that the resulting wowlet binary is static. For more information, check the Dockerfile: Dockerfile.

1. Clone

git clone --branch master --recursive https://git.wownero.com/wowlet/wowlet.git
cd wowlet

Replace master with the desired version tag (e.g. beta-4) to build the release binary.

2. Base image

docker build --tag wowlet:linux --build-arg THREADS=6 .

Building the base image takes a while. You only need to build the base image once.

3. Build

Standalone binary
docker run --rm -it -v $PWD:/wowlet -w /wowlet wowlet:linux sh -c 'make release-static -j6'

If you're re-running a build make sure to rm -rf build/ first.

The resulting binary can be found in build/bin/wowlet.

AppImage

First create the standalone binary using the Docker command in the previous step.

docker run --rm -it -v $PWD:/wowlet -w /wowlet wowlet:linux contrib/build-appimage.sh

Windows (reproducible)

1. Clone

git clone --branch master --recursive https://git.wownero.com/wowlet/wowlet.git
cd wowlet

Replace master with the desired version tag (e.g. beta-4) to build the release binary.

2. Base image

docker build -f Dockerfile.windows --tag wowlet:win --build-arg THREADS=6 .

Building the base image takes a while. You only need to build the base image once.

3. Build

docker run --rm -it -v $PWD:/wowlet -w /wowlet wowlet:win sh -c 'make windows root=/depends target=x86_64-w64-mingw32 tag=win-x64 -j6'

If you're re-running a build make sure to rm -rf build/ first.

The resulting binary can be found in build/x86_64-w64-mingw32/release/bin/wowlet.exe.

macOS

For MacOS it's easiest to leverage brew to install the required dependencies.

HOMEBREW_OPTFLAGS="-march=core2" HOMEBREW_OPTIMIZATION_LEVEL="O0" \
    brew install boost zmq openssl libpgm miniupnpc libsodium expat libunwind-headers protobuf libgcrypt qrencode ccache cmake pkgconfig git

Clone the repository.

git clone --recursive https://git.wownero.com/wowlet/wowlet.git

Download Qt5.15.1 from here: https://download.qt.io/archive/qt/5.15/5.15.1/single/ and build Qt 5.15.1:

Qt build on Mac OS:

cd ~/Downloads/qt-everywhere-src-5.15.1
./configure -prefix $PWD/qtbase -release -nomake examples -nomake tests -skip qtwebchannel -skip qtpurchasing -skip webengine -skip qtwebview
make -j 4

Build WOWlet:

CMAKE_PREFIX_PATH=/Users/$username/Downloads/qt-everywhere-src-5.15.1/qtbase/ make mac-release

Install and start tor service for ticker/forums:

brew install tor
brew services start tor

The resulting Mac OS application can be found build/bin/wowlet.app and will not have Tor embedded.