Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
107 commits
Select commit Hold shift + click to select a range
af4a59e
fix(scripts): make sed commands portable for GNU and BSD variants
Mar 16, 2026
2cbb5aa
fix(scripts): use 'flutter pub run' instead of 'dart run' for launche…
Mar 16, 2026
81f427d
feat(nix): introduce flake-based dev shell for guaranteed reproducibi…
Mar 16, 2026
e6be04e
feat(makefile): build management
Mar 16, 2026
010eadd
fixing flake
Mar 16, 2026
5f9a8ce
submodules fix and macOs specific nix fixes
Mar 16, 2026
4454920
adding changes for successful macOs run
Mar 16, 2026
6ce520a
fixing part in last build step (dropping flags)
Mar 16, 2026
1d48641
adding linux parts
Mar 16, 2026
7759828
removing overrides
Mar 16, 2026
f204511
adding better clean
Mar 16, 2026
e62c261
macos makefile fixes
Mar 16, 2026
6ba1741
up
Mar 16, 2026
5c43045
nixos fixes
Mar 16, 2026
b2a90e7
Makefile fixes
Mar 16, 2026
90c08b8
makefile fixes
Mar 16, 2026
9768ea5
makefile fixes
Mar 16, 2026
e1a9c78
makefile fixes
Mar 16, 2026
62db43c
successful macOS build
Mar 17, 2026
52ce806
fixing env bash calls for nixos
sneurlax May 12, 2026
ed122ef
macOS build split into phases
Mar 17, 2026
ebb3774
NEW_APP_ID_SNAKE changed from com.cypherstack.stack_duo to com.cypher…
Mar 17, 2026
795a993
adding direnv and macOS build tools install helper script
Mar 17, 2026
a0c85bd
Replaced exit 1 with echo 'Bypassed by Nix' in missing-toolchain bran…
Mar 17, 2026
3bf60c0
fixing current repo path for APP_PROJECT_ROOT_DIR
Mar 17, 2026
fa14da7
scripts now compute project root from their own location
Mar 17, 2026
380874e
adding pubspec.yaml creation to macos-configure
Mar 17, 2026
0ca3fb1
git submodule update --init --recursive for macos-configure
Mar 17, 2026
6abc46c
fixing xelis_dart_sdk version bug
Mar 17, 2026
a3b3022
fixing wrong formatting of xelis_dart_sdk yaml
Mar 17, 2026
ea00542
fix(macos): bootstrap missing local build files in macos-configure
Mar 17, 2026
8e6f953
fix(macos): run prebuild.sh from scripts directory
Mar 17, 2026
58ac7e1
asset prep
Mar 17, 2026
322fafa
fix(macos): correct Pods xcconfig include paths for Flutter macOS con…
Mar 17, 2026
92dc48d
fix(macos): use Debug/Release xcconfigs for Runner target to restore …
Mar 17, 2026
b1f2ac8
macos: rebuild native crypto plugins during build-macos
Mar 17, 2026
b1a423f
macos: unify build path and add fresh-clone CI smoke build
Mar 17, 2026
1f6d937
macos: fix scripts/macos/build_all.sh path resolution when run from r…
Mar 17, 2026
5eb0959
macos: stop forcing stable rust toolchain for native plugin build
Mar 17, 2026
8e963a5
macos: fix tor_ffi build by ensuring rust x86_64-apple-darwin target …
Mar 17, 2026
ef4e682
macos: patch flutter_libepiccash build script at runtime from main repo
Mar 17, 2026
f905423
fix(macos): prevent empty Runner module name and stabilize xcconfig i…
Mar 17, 2026
28cc199
build(macos): harden sed usage and patch libmwc script via superproject
Mar 17, 2026
387601c
build(macos): enforce reproducible arm64 pod architecture settings
Mar 17, 2026
810e6cb
fixing introduced error in multiline sed
Mar 17, 2026
b638731
build(macos): harden sed rewrites for frostdart and enforce reproduci…
Mar 17, 2026
a044b61
build(macos): patch frostdart sed invocation during native build
Mar 17, 2026
14240e2
build(macos): use flutter pub for coinlib build step in nix env
Mar 17, 2026
7895630
build(macos): make CocoaPods/plugin resolution reproducible in nix shell
Mar 17, 2026
d875fed
build(macos): harden reproducible nix setup and coinlib toolchain req…
Mar 17, 2026
69b96ae
build(macos): improve reproducibility and drop unused rust 1.81.0
Mar 17, 2026
1eedefa
build(macos): force darwin-arm64 app build for reproducible Apple Sil…
Mar 17, 2026
36ebfa6
Adding distinct arm build only
Mar 17, 2026
9d6ce68
build(macos): force arm64 via env vars instead of unsupported flutter…
Mar 17, 2026
ac25798
build(macos): force Apple libtool in epiccash patch under nix
Mar 17, 2026
d6823c3
build(macos): force Apple clang/binutils and SDKROOT in native nix bu…
Mar 17, 2026
0ade1c9
build(macos): clear make jobserver flags for libmwc openssl build in nix
Mar 17, 2026
ac59ca8
initial version of nixos build tools
Mar 17, 2026
460463c
update of nixos build tools
Mar 17, 2026
bb93e51
build(macos): serialize epiccash cargo build to avoid openssl jobserv…
Mar 17, 2026
64d4262
build(macos): sanitize cargo env to prevent openssl/lmdb race failure…
Mar 17, 2026
d10230e
build(macos): validate epiccash combined archive and fallback on failure
Mar 17, 2026
0bfb888
build(macos): replace cargo lipo with cargo build for stable nix arm6…
Mar 17, 2026
2b3ed09
build(macos): stabilize epiccash cargo target dir and retry on transi…
Mar 17, 2026
e4b05e9
build(macos): restore automatic cargo parallelism while keeping nix e…
Mar 17, 2026
41455bb
build-linux: normalize linux shebangs for nixos
Mar 17, 2026
f2f79d3
build-linux: skip coinlib build when no container runtime
Mar 17, 2026
d807217
linux: generate local libsecret pkg-config metadata
Mar 17, 2026
e872655
build-linux: export local libsecret pkg-config for flutter
Mar 17, 2026
4159e4b
makefile: fix build-linux recipe separator regression
Mar 17, 2026
7f43e1a
build-linux: preflight libsecret pkg-config resolution
Mar 17, 2026
468b601
build-linux: disable pkg-config uninstalled resolution
Mar 18, 2026
172803f
check-reqs: require meson and ninja for linux builds
Mar 18, 2026
3650d18
nix: add opencv and sysprof packages to linux dev shell
Mar 18, 2026
aebfb7c
build-linux: run prebuild bootstrap before config
Mar 18, 2026
a448a92
build-linux: recreate external_api_keys template before flutter
Mar 18, 2026
0d36a9a
build-linux: force deterministic pkg-config libdir on nix
Mar 18, 2026
522f32c
linux: ignore deprecated literal operator warning as error
Mar 18, 2026
ad79a1e
linux: force local CMake install prefix for bundle builds
Mar 18, 2026
6e99dc7
linux: stage secp256k1 shared lib at CMake install path
Mar 18, 2026
6eb9856
linux: restore executable bit on secp256k1 builder
Mar 18, 2026
4e1a476
macos: add bootstrap target and install meson
Mar 18, 2026
a77eff0
macos: replace pbxproj UUID patching with xcconfig overrides
Mar 19, 2026
a219534
makefile: fallback to current dart/flutter when env path is stale
Mar 19, 2026
428fd61
macos build: split bootstrap from host-agnostic build path
Mar 19, 2026
124ae40
build(macos): harden make targets and unify req checks
Mar 19, 2026
3e0bc9f
docs(build): split nix vs non-nix flow and clarify bootstrap roles
Mar 19, 2026
86d2cf4
macos: auto-enable desktop support in local build home
Mar 19, 2026
aa19dab
build(macos): use .build-home and reassert desktop metadata before fi…
Mar 19, 2026
d47dcee
changing rust version requs
Mar 19, 2026
b027d40
build(macos): use Rust 1.94.0 for final pod/flutter compile
Mar 19, 2026
f5f3ae5
build(rust): align flake and macOS bootstrap to Rust 1.94.0
Mar 19, 2026
5b2b8e6
build(macos): ensure local stable rust toolchain is updated before fl…
Mar 19, 2026
a893a56
build(macos): switch defaults to stable and initialize local rustup f…
Mar 19, 2026
538ea15
build: run coinlib via flutter dart to honor Flutter SDK constraints
Mar 20, 2026
568d135
updating .gitignore: toolchain/state dirs
May 11, 2026
94ee769
adding rust default stable, drop 1.89.0
May 11, 2026
2c529c4
adding information on building: macos, nixos, linux
May 11, 2026
b4f7565
gitignore: ignore generated CodexOverrides.xcconfig and flutter-creat…
May 11, 2026
6b72f09
build(macos): remove flutter-create boilerplate test after platform r…
May 11, 2026
0f17367
flake(nix): pin Rust to stable + 1.85.1 and ensure clang symlinks
May 11, 2026
94e10ec
add MWC FFI integration smoke test and make test-mwc target
May 11, 2026
59975f2
add MWC FFI integration smoke test and make test-mwc target (2)
May 11, 2026
dba97dc
fix(macos): bundle GNU rsync in flake to fix release_unpack_macos
sneurlax May 12, 2026
cac32a1
build(macos): commit CodexOverrides.xcconfig include lines
sneurlax May 12, 2026
bbf41dc
build(nix): pin nixpkgs rev for reproducible toolchain
sneurlax May 12, 2026
ca05bf1
Merge remote-tracking branch 'origin/staging' into feat/make
sneurlax May 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .envrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
use flake
23 changes: 23 additions & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -81,3 +81,26 @@ jobs:
with:
token: ${{secrets.CODECOV_TOKEN}}
file: coverage/lcov.info

macos-fresh-build:
runs-on: macos-14
steps:
- name: Prepare repository
uses: actions/checkout@v4
with:
submodules: recursive

- name: Install Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: '3.38.1'
channel: 'stable'

- name: Setup Rust
uses: dtolnay/rust-toolchain@stable

- name: Install macOS build dependencies
run: ./scripts/install_macos_build_tools.sh

- name: Fresh clone smoke build (macOS)
run: make build-macos VERSION=0.0.1 BUILD_NUM=1
13 changes: 13 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,21 @@ Microsoft.Windows*
/build/
android/app/.cxx

# Nix / direnv / project-local toolchain state
.direnv/
.build-home/
.cargo-home/
.rustup-home/
.nix-bin/
.tmp/
.cache/

# Web related
lib/generated_plugin_registrant.dart

# Flutter create boilerplate that gets regenerated on `flutter create --platforms=macos .`
test/widget_test.dart

# testing data
test/services/coins/bitcoin/bitcoin_wallet_test_parameters.dart
test/services/coins/firo/firo_wallet_test_parameters.dart
Expand Down Expand Up @@ -91,6 +103,7 @@ pubspec.yaml
/linux/my_application.cc

/macos/Runner/Configs/AppInfo.xcconfig
/macos/Runner/Configs/CodexOverrides.xcconfig
/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
/macos/Runner.xcodeproj/project.pbxproj
/macos/Runner/Assets.xcassets/AppIcon.appiconset/*.png
Expand Down
14 changes: 7 additions & 7 deletions .metadata
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
# This file should be version controlled.
# This file should be version controlled and should not be manually edited.

version:
revision: f92f44110e87bad5ff168335c36da6f6053036e6
channel: stable
revision: "ff37bef603469fb030f2b72995ab929ccfc227f0"
channel: "stable"

project_type: app

# Tracks metadata for the flutter migrate command
migration:
platforms:
- platform: root
create_revision: f92f44110e87bad5ff168335c36da6f6053036e6
base_revision: f92f44110e87bad5ff168335c36da6f6053036e6
create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
- platform: macos
create_revision: f92f44110e87bad5ff168335c36da6f6053036e6
base_revision: f92f44110e87bad5ff168335c36da6f6053036e6
create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0

# User provided section

Expand Down
448 changes: 448 additions & 0 deletions Makefile

Large diffs are not rendered by default.

21 changes: 21 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,24 @@ Highlights include:
## Building

You can look at the [build instructions](docs/building.md) for more details.

### macOS with Nix or direnv (preferred)

Use one shared toolchain path for both `nix develop` and `direnv`.

1. Enable direnv for this repo (optional convenience):
- `.envrc` uses `use flake`
- run `direnv allow`
2. Enter the flake environment (if not using direnv):
- `nix develop`
3. Run build:
- `make build-macos`

### macOS without Nix (Homebrew host setup)

Use this only when you are not building through Nix/flake.

1. Install host tools:
- `make bootstrap-macos`
2. Run build:
- `make build-macos`
32 changes: 25 additions & 7 deletions docs/building.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,23 @@

Here you will find instructions on how to install the necessary tools for building and running the app.

## Nix / direnv (recommended for macOS and Linux)

A `flake.nix` and `.envrc` provide a reproducible development environment on macOS (Determinate Nix on macOS Tahoe ARM tested), NixOS, and other Linux distributions.

```
# enter the dev shell
nix develop # or: direnv allow

# build
make build-macos # on macOS
make build-linux # on Linux
```

The Makefile is the single entry point for all builds. Two Rust toolchains are provisioned by the flake: `stable` (default, used for frostdart / coinlib / secp256k1 / etc.) and `1.85.1` (pinned for `flutter_libepiccash` and `flutter_libmwc`). The bootstrap scripts `scripts/install_macos_build_tools.sh` and `scripts/install_nixos_build_tools.sh` install equivalent host toolchains for non-Nix setups.

The legacy per-platform instructions below remain valid for developers who do not want to use Nix.

## Prerequisites

- The only OS supported for building Android and Linux desktop is Ubuntu 24.04. Windows builds require using Ubuntu 24.04 on WSL2. macOS builds for itself and iOS. Advanced users may also be able to build on other Debian-based distributions like Linux Mint.
Expand Down Expand Up @@ -51,8 +68,8 @@ Install [Rust](https://www.rust-lang.org/tools/install) via [rustup.rs](https://
```
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.bashrc
rustup install 1.89.0 1.85.1 1.81.0
rustup default 1.89.0
rustup toolchain install stable 1.85.1
rustup default stable
cargo install cargo-ndk
```

Expand Down Expand Up @@ -198,12 +215,12 @@ brew install brotli cairo coreutils gdbm gettext glib gmp libevent libidn2 libng
```
<!-- TODO: determine which of the above list are not needed at all. -->

Download and install [Rust](https://www.rust-lang.org/tools/install). [Rustup](https://rustup.rs/) is recommended for Rust setup. Use `rustc` to confirm successful installation. Install toolchains 1.81.0, 1.85.1, and 1.89.0 as well as `cbindgen` and `cargo-lipo` too. You will also have to add the platform target(s) `aarch64-apple-ios` and/or `aarch64-apple-darwin`. You can use the command(s):
Download and install [Rust](https://www.rust-lang.org/tools/install). [Rustup](https://rustup.rs/) is recommended for Rust setup. Use `rustc` to confirm successful installation. Install the `stable` toolchain and the `1.85.1` toolchain (pinned for libepiccash/libmwc), as well as `cbindgen` and `cargo-lipo`. You will also have to add the platform target(s) `aarch64-apple-ios` and/or `aarch64-apple-darwin`. You can use the command(s):
```
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.bashrc
rustup install 1.89.0 1.85.1 1.81.0
rustup default 1.89.0
rustup toolchain install stable 1.85.1
rustup default stable
cargo install cargo-ndk
cargo install cbindgen cargo-lipo
rustup target add aarch64-apple-ios aarch64-apple-darwin
Expand Down Expand Up @@ -283,10 +300,11 @@ Install Flutter 3.38.5 on your Windows host (not in WSL2) by [following their gu
### Rust
Install [Rust](https://www.rust-lang.org/tools/install) on the Windows host (not in WSL2). Download the installer from [rustup.rs](https://rustup.rs), make sure it works on the commandline (you may need to open a new terminal), and install the following versions:
```
rustup install 1.89.0 1.85.1 1.81.0
rustup default 1.89.0
rustup toolchain install stable 1.85.1
rustup default stable
cargo install cargo-ndk
```
Note: the frostdart Windows build scripts additionally require Rust `1.71.0-x86_64-pc-windows-msvc` (and the `gnu` variant for cross-compiles). Install with `rustup toolchain install 1.71.0-x86_64-pc-windows-msvc` if you build on or for Windows.

### Windows SDK and Developer Mode
Install the Windows SDK: https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/ You may need to install the [Windows 10 SDK](https://developer.microsoft.com/en-us/windows/downloads/sdk-archive/), which can be installed [by Visual Studio](https://stackoverflow.com/a/73923899) (`Tools > Get Tools and Features... > Modify > Individual Components > Windows 10 SDK`).
Expand Down
61 changes: 61 additions & 0 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

157 changes: 157 additions & 0 deletions flake.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
{
description = "Stack Wallet Build Environment";

inputs = {
# Pinned to a specific nixpkgs rev for reproducible Flutter/Rust toolchain
# versions. Update via `nix flake lock --update-input nixpkgs` and re-test
# `make build-macos` and `make build-linux` before bumping.
nixpkgs.url = "github:NixOS/nixpkgs/5b2c2d84341b2afb5647081c1386a80d7a8d8605";
flake-utils.url = "github:numtide/flake-utils";
};

outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs { inherit system; };
lib = pkgs.lib;

commonPackages = with pkgs; [
flutter
dart
go
rustup
cmake
meson
ninja
pkg-config
gnumake
gnused
rsync
(python3.withPackages (ps: with ps; [
pip toml tomli jinja2 markdown markupsafe pygments typogrify
]))
];

linuxPackages = lib.optionals pkgs.stdenv.isLinux (with pkgs; [
gtk3 glib openssl xz clang libgcrypt gobject-introspection
llvmPackages.libclang
llvmPackages.clang
protobuf
opencv
sysprof
libsysprof-capture
]);

macPackages = lib.optionals pkgs.stdenv.isDarwin (with pkgs; [
cocoapods
libiconv
autoconf
automake
libtool
]);

in
{
devShells.default = pkgs.mkShell {
buildInputs = commonPackages ++ linuxPackages ++ macPackages;

shellHook = ''
echo "==================================================="
echo "Stack Wallet Dev-Environment activated!"
echo "Target System: ${system}"
echo "==================================================="

export APP_PROJECT_ROOT_DIR=$(pwd)
export PATH="$HOME/.cargo/bin:$PATH"

# ==========================================
# RUST TOOLCHAIN AUTOMATION
# ==========================================
if ! rustup toolchain list | grep -q "stable" || ! rustup toolchain list | grep -q "1.85.1"; then
echo "Initializing Rust toolchains (this happens only once)..."
rustup toolchain install --no-self-update stable 1.85.1
fi

rustup default stable

if [[ "${system}" == *"darwin"* ]]; then
rustup target add aarch64-apple-darwin aarch64-apple-ios --toolchain stable
rustup target add aarch64-apple-darwin --toolchain 1.85.1
fi

if ! command -v cbindgen >/dev/null 2>&1 || ! command -v cargo-lipo >/dev/null 2>&1; then
echo "Installing required Cargo tools..."
cargo install cargo-ndk cbindgen cargo-lipo
fi

# ==========================================
# LINUX (NixOS) SPECIFICS
# ==========================================
${lib.optionalString pkgs.stdenv.isLinux ''
# echo "🐧 Linux detected: Patching shebangs for NixOS..."
# patchShebangs scripts/ crypto_plugins/ > /dev/null 2>&1 || true
export LIBCLANG_PATH="${pkgs.llvmPackages.libclang.lib}/lib"
export BINDGEN_EXTRA_CLANG_ARGS="-isystem ${pkgs.llvmPackages.libclang.lib}/lib/clang/${pkgs.llvmPackages.clang.version}/include"
export PROTOC="${pkgs.protobuf}/bin/protoc"
''}

# ==========================================
# MACOS XCODE SANDBOX ESCAPE
# ==========================================
${lib.optionalString pkgs.stdenv.isDarwin ''
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
export SDKROOT=$(xcrun --sdk macosx --show-sdk-path)
export MACOSX_DEPLOYMENT_TARGET="11.0"

# --- NIX C++ COMPILER OVERRIDE ---
export CC=/usr/bin/clang
export CXX=/usr/bin/clang++
export AR=/usr/bin/ar
export AS=/usr/bin/as
export NM=/usr/bin/nm
export RANLIB=/usr/bin/ranlib
export STRIP=/usr/bin/strip

export BINDGEN_EXTRA_CLANG_ARGS="-isysroot $SDKROOT"

mkdir -p .nix-bin
ln -sf /usr/bin/clang .nix-bin/cc
ln -sf /usr/bin/clang++ .nix-bin/c++
ln -sf /usr/bin/xcodebuild .nix-bin/xcodebuild
ln -sf /usr/bin/clang .nix-bin/clang
ln -sf /usr/bin/clang++ .nix-bin/clang++

# SMART LIPO & XCRUN WRAPPER
rm -f .nix-bin/lipo .nix-bin/xcrun

echo '#!/bin/bash' > .nix-bin/lipo
echo 'for arg in "$@"; do' >> .nix-bin/lipo
echo ' if [[ "$arg" == *"FlutterMacOS.framework"* ]]; then' >> .nix-bin/lipo
echo ' chmod -R u+w "$(dirname "$arg")" 2>/dev/null || true' >> .nix-bin/lipo
echo ' fi' >> .nix-bin/lipo
echo 'done' >> .nix-bin/lipo
echo 'exec /usr/bin/lipo "$@"' >> .nix-bin/lipo
chmod +x .nix-bin/lipo

echo '#!/bin/bash' > .nix-bin/xcrun
echo 'if [ "$1" = "-f" ] && [ "$2" = "lipo" ]; then' >> .nix-bin/xcrun
echo ' echo "'$PWD'/.nix-bin/lipo"' >> .nix-bin/xcrun
echo ' exit 0' >> .nix-bin/xcrun
echo 'fi' >> .nix-bin/xcrun
echo "" >> .nix-bin/xcrun
echo '# Keep xcrun tool invocations pinned to macOS deployment context.' >> .nix-bin/xcrun
echo 'unset IPHONEOS_DEPLOYMENT_TARGET TVOS_DEPLOYMENT_TARGET WATCHOS_DEPLOYMENT_TARGET' >> .nix-bin/xcrun
echo 'unset XROS_DEPLOYMENT_TARGET XR_DEPLOYMENT_TARGET VISIONOS_DEPLOYMENT_TARGET DRIVERKIT_DEPLOYMENT_TARGET' >> .nix-bin/xcrun
echo 'export MACOSX_DEPLOYMENT_TARGET="''${MACOSX_DEPLOYMENT_TARGET:-11.0}"' >> .nix-bin/xcrun
echo 'export SDKROOT="''${SDKROOT:-$(/usr/bin/xcrun --sdk macosx --show-sdk-path)}"' >> .nix-bin/xcrun
echo 'exec /usr/bin/xcrun "$@"' >> .nix-bin/xcrun
chmod +x .nix-bin/xcrun

export PATH="$PWD/.nix-bin:$PATH"
''}

'';
};
}
);
}
Loading
Loading