Skip to content

Commit

Permalink
README updates
Browse files Browse the repository at this point in the history
went through installation process and found multiple optimizations including better ordering and more complete notes in multiple places
  • Loading branch information
sneurlax committed Sep 11, 2024
1 parent 2a2c42f commit f6fe01f
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 22 deletions.
38 changes: 19 additions & 19 deletions docs/building.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,10 @@ Install basic dependencies
sudo apt-get install libssl-dev curl unzip automake build-essential file pkg-config git python libtool libtinfo5 cmake libgit2-dev clang libncurses5-dev libncursesw5-dev zlib1g-dev llvm python3-distutils g++ gcc gperf libopencv-dev
```

Install [Rust](https://www.rust-lang.org/tools/install) with command:
Install [Rust](https://www.rust-lang.org/tools/install) via [rustup.rs](https://rustup.rs), the required Rust toolchains, and `cargo-ndk 2.12.7` with command:
```
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.bashrc
source ~/.bashrc
rustup install 1.67.1 1.71.0 1.72.0 1.73.0
rustup default 1.67.1
cargo install cargo-ndk --version 2.12.7 --locked
Expand All @@ -77,6 +77,7 @@ sudo apt-get install clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev
pip3 install --upgrade meson==0.64.1 markdown==3.4.1 markupsafe==2.1.1 jinja2==3.1.2 pygments==2.13.0 toml==0.10.2 typogrify==2.0.7 tomli==2.0.1
```

### Clone the repository and initialize submodules
After installing the prerequisites listed above, download the code and init the submodules
```
git clone https://github.com/cypherstack/stack_wallet.git
Expand All @@ -92,17 +93,15 @@ cd scripts/linux
cd ../..
```

### Build coinlib
Coinlib's native secp256k1 library must be built prior to running Stack Wallet. It can be built from within the root `stack_wallet` folder on a...
- Linux host for Linux targets: `dart run coinlib:build_linux`, or
### Build secp256k1
Coinlib requires a secp256k1 library to be built prior to running Stack Wallet. It can be built from within the root `stack_wallet` folder on a...
- Linux host for Linux targets: `dart run coinlib:build_linux` (requires [Docker](https://docs.docker.com/engine/install/ubuntu/) or [`podman`](https://podman.io/docs/installation))
- Linux host for Windows targets: `dart run coinlib:build_windows_crosscompile`
- Windows host: `dart run coinlib:build_windows`
- WSL2 host: `dart run coinlib:build_wsl`
- macOS host: `dart run coinlib:build_macos`

To build coinlib on Linux, you will need `docker` (see [installation instructions](https://docs.docker.com/engine/install/ubuntu/)) or [`podman`](https://podman.io/docs/installation) (`sudo apt-get -y install podman`)

For Windows targets, you can use a `secp256k1.dll` produced by any of the three middle options if the first attempt doesn't succeed.
or by using `scripts/linux/build_secp256k1.sh` or `scripts/windows/build_secp256k1.bat`.

### Run prebuild script

Expand All @@ -117,7 +116,7 @@ or manually by creating the files referenced in that script with the specified c

### Build plugins
#### Build script: `build_app.sh`
The `build_app.sh` script is use to build applications Stack Wallet. View the script's help message with `./build_app.sh -h` for more information on its usage.
The `build_app.sh` script is used to build the Stack Wallet and its family of applications. View the script's help message with `./build_app.sh -h` for more information on its usage.

Options:

Expand All @@ -144,7 +143,7 @@ cd scripts
cd scripts
./build_app.sh -a stack_wallet -p linux
```

<!--
##### Remove system packages (may be needed for building flutter_libmonero)
[`flutter_libmonero`](https://github.com/cypherstack/flutter_libmonero) may have issues building due to conflicts with system packages: if so, follow this section.
Expand All @@ -156,13 +155,19 @@ for example to find which pre-installed packages you may need to remove with `su
```
sudo apt-get remove '^libboost.*-dev.*'
```
<!-- TODO: configure compiler to prefer built over system libraries. Should already use them? -->
TODO: configure compiler to prefer built over system libraries. Should already use them? -->

#### Building plugins and configure for Windows
Install dependencies like MXE:
```
cd scripts
cd scripts/windows
./deps.sh
./build_app.sh -a stack_wallet -p windows
```

and use `scripts/build_app.sh` to build plugins:
```
cd ..
./build_app.sh -a stack_wallet -p windows -v 2.1.0 -b 210
```

### Running
Expand Down Expand Up @@ -272,16 +277,11 @@ Install the following libraries:
sudo apt-get install libgtk2.0-dev
```

You will also need to install MXE on the WSL2 Ubuntu 20.04 host and can do so by running `stack_wallet/scripts/windows/deps.sh`:
```
./stack_wallet/scripts/windows/deps.sh
```

The WSL2 host may optionally be navigated to the `stack_wallet` repository on the Windows host in order to build the plugins in-place and skip the next section in which you copy the `dll`s from WSL2 to Windows. Then build windows `dll` libraries by running the following script on the WSL2 Ubuntu 20.04 host:

- `stack_wallet/scripts/windows/build_all.sh`

Copy the resulting `dll`s to their respective positions on the Windows host:
If the DLLs were built on the WSL filesystem instead of on Windows, copy the resulting `dll`s to their respective positions on the Windows host:

- `stack_wallet/crypto_plugins/flutter_libepiccash/scripts/windows/build/libepic_cash_wallet.dll`
- `stack_wallet/crypto_plugins/flutter_liblelantus/scripts/windows/build/libmobileliblelantus.dll`
Expand Down
6 changes: 3 additions & 3 deletions scripts/windows/deps.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#!/bin/bash

(cd ../../crypto_plugins/flutter_libepiccash/scripts/windows && ./deps.sh )
(cd ../../crypto_plugins/flutter_liblelantus/scripts/windows && ./mxedeps.sh )
# (cd ../../crypto_plugins/flutter_libmonero/scripts/windows && ./monerodeps.sh && ./mxedeps.sh) &
cd ../../crypto_plugins/flutter_libepiccash/scripts/windows && ./deps.sh
cd ../../crypto_plugins/flutter_liblelantus/scripts/windows && ./mxedeps.sh
# cd ../../crypto_plugins/flutter_libmonero/scripts/windows && ./monerodeps.sh && ./mxedeps.sh

wait
echo "Done building"

0 comments on commit f6fe01f

Please sign in to comment.