CakeWallet/docs/builds/WINDOWS.md
Seth For Privacy 1cb8651ffc
Improve build docs and optimize Dockerfile for Android and Linux builds (#2016)
* Update build docs and migrate Android builds to Docker

* Update NDK and move steps directly into Dockerfile

* Fix NDK installation via script and Dockerfile

* Migrate to @MrCyjaneK's existing Dockerfile (with optimizations)

* Add .dockerignore and migrate Dockerfile to root of project

* Revert .gitignore changes

* Update Android and Linux builds and resolve Linux build issue

* Fix git repo for Linux and Android build instructions

* Set branch to latest release in build docs

* Ensure `flutter clean` is run before building

* Fix Linux completion example

* Don't build Zano for Linux

* Apply suggestions from code review

Co-authored-by: cyan <cyjan@mrcyjanek.net>

* Explicitly add automake package to Dockerfile

* Improve logging on Android and Linux builds via Docker

* Improve Dockerfile comments and ordering

* Fix issues in macOS and iOS builds docs (thanks @MrCyjaneK)

* Update docs/builds/IOS.md [skip ci]

* Update docs/builds/IOS.md [skip ci]

* Update docs/builds/MACOS.md [skip ci]

* Update docs/builds/IOS.md [skip ci]

* Fix and improve iOS and macOS build docs

* Windows build doc improvements

Co-authored-by: cyan <cyjan@mrcyjanek.net>

* add missing dependency to Dockerfile

* Update Windows build docs

* More fixes and optimizations to the Windows build docs

* Add git config to Windows build doc

* Fix shell location/commands in Windows build doc

* Fix WSL commands in Windows build doc

* Apply suggestions from code review

Co-authored-by: cyan <cyjan@mrcyjanek.net>

---------

Co-authored-by: cyan <cyjan@mrcyjanek.net>
2025-03-09 23:10:12 +02:00

3.6 KiB

Building Cake Wallet for Windows

Requirements and Setup

The following are the system requirements to build Cake Wallet for your Windows PC.

Windows 10 or later (64-bit), x86-64 based
Flutter 3.24.4

1. Installing Flutter

Install Flutter, specifically version 3.24.4 by following the official docs.

In order for Flutter to function, you'll also need to enable Developer Mode:

Start Menu > search for "Run" > type ms-settings:developers, and turn on Developer Mode.

NOTE: as 3.24.4 is not the latest version, you'll need to download it from https://docs.flutter.dev/release/archive instead of the link in the docs above.

2. Install Development Tools

Install Git for Windows and Visual Studio 2022:

  1. Follow the Development Tools installation instructions
    1. NOTE: Be sure to install the Desktop Development with C++ workload in Visual Studio as outlined in the docs.
  2. Add git to your path by going to Start Menu > search "environment" > Environment Variables > double-click Path > Add C:\Program Files\Git\bin\ on a new line.

Lastly, you'll need to install Nuget separately:

  1. Download the exe from https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
  2. Create a new directory, C:\Program Files\Nuget\
  3. Move or copy the nuget.exe binary you just downloaded into the newly created directory above.
  4. Add nuget to your path by going to Start Menu > search "environment" > Environment Variables > double-click Path > Add C:\Program Files\Nuget\ on a new line.

3. Installing WSL (Windows Subsystem for Linux)

For building Monero dependencies, it is required to install Windows WSL and required packages for WSL (Ubuntu).

  1. Open a Powershell window by going to the Start Menu and searching for "Powershell"
  2. Install WSL with the command wsl --install
  3. Install the necessary Ubuntu dependencies
wsl --install
wsl sudo apt update
wsl sudo apt install -y autoconf build-essential ccache cmake curl gcc gcc-mingw-w64-x86-64 git g++ g++-mingw-w64-x86-64 gperf lbzip2 libtool make pkg-config pigz

4. Installing Rust

Install Rust and other Rust-related dependencies using rustup.rs by running the following command:

wsl curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

5. Acquiring the Cake Wallet source code

Download the latest release tag of Cake Wallet and enter the source code directory:

git clone https://github.com/cake-tech/cake_wallet.git --branch main
cd cake_wallet

NOTE: Replace main with the latest release tag available at https://github.com/cake-tech/cake_wallet/releases/latest.

6. Build Monero, monero_c, and dependencies

To use Monero in Cake Wallet, you must build the Monero_C wrapper which will be used by monero.dart package.

Run the following in a WSL terminal window (set the Git username and email as desired):

wsl
git config --global user.email "builds@cakewallet.com"
git config --global user.name "builds"
./build_all.sh

7. Configure and build Cake Wallet application

To configure the application, run the following:

exit
.\cakewallet.bat

After running the script above, you should get Cake Wallet.zip in the project's root directory which will contain CakeWallet.exe and other needed files for running the application. Now you can extract files from Cake Wallet.zip archive and run the application.