The GUI client is an Electron (http://electron.atom.io/) app.
It cross compiles for osx, linux and windows 64 bit systems.
gox (go cross compiler), node and npm.
To install gox:
go get github.com/gz-c/gox
Node and npm installation is system dependent.
sudo apt-get install npm
sudo apt-get install nodejs-legacy
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
node -v
npm -v
Recompile the wallet frontend. See Wallet GUI Development README for instructions.
sudo npm install --global electron-builder
sudo npm install --global electron-download
Use brew to install required packages.
To build app for Windows on macOS:
brew install wine --without-x11
brew install mono
To build app for Linux on macOS:
brew install gnu-tar graphicsmagick xz
Set the CSC_IDENTITY_AUTO_DISCOVERY
environment variable to false if you don't want to do code signing,
otherwise, you can create a certificate in login.keychain for testing purpose.
Create new certificate:
Keychain Access -> Certificate Assistant -> Create a Certificate...
Set certificate name and select Code Signing
as Certificate Type
.
Once you generated the certificate, you can use it by setting your environment variable:
export CSC_NAME="Certificate Name"
Now, when you run electron-builder, it will choose the name and sign the app with the certificate.
To build app in distributable format for Linux:
sudo apt-get install --no-install-recommends -y icnsutils graphicsmagick xz-utils
To build app for Windows on Linux:
- Install Wine (1.8+ is required):
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ubuntu-wine/ppa -y
sudo apt-get update
sudo apt-get install --no-install-recommends -y wine1.8
- Install Mono (4.2+ is required):
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update
sudo apt-get install --no-install-recommends -y mono-devel ca-certificates-mono
To build app in 32 bit from a machine with 64 bit:
sudo apt-get install --no-install-recommends -y gcc-multilib g++-multilib
./build.sh
Final results are placed in the release/
folder.