From 49a405e9da20efe4e8eae9ec92b1af8ae9811431 Mon Sep 17 00:00:00 2001 From: Sergey Timoshin Date: Fri, 23 Jan 2026 01:08:24 +0000 Subject: [PATCH] chore: add program build dep to cli --- cli/justfile | 28 +++++++++++++++++++++++-- cli/package.json | 5 ++--- cli/scripts/copyLocalProgramBinaries.sh | 16 -------------- 3 files changed, 28 insertions(+), 21 deletions(-) delete mode 100755 cli/scripts/copyLocalProgramBinaries.sh diff --git a/cli/justfile b/cli/justfile index 27cb2e2fa6..d3e6582adf 100644 --- a/cli/justfile +++ b/cli/justfile @@ -1,15 +1,39 @@ # Light Protocol - CLI +root_dir := `git rev-parse --show-toplevel` +bin_dir := root_dir / "cli/bin" +deploy_dir := root_dir / "target/deploy" + default: @just --list -# Build JS dependencies first, then CLI -build: build-js-deps +# Build everything: programs, JS deps, then CLI +build: build-programs build-js-deps copy-programs + pnpm build + +# Build only JS (skip programs, assumes binaries exist) +build-js: build-js-deps copy-programs pnpm build build-js-deps: cd ../js/stateless.js && pnpm build cd ../js/compressed-token && pnpm build +# Build Solana programs +build-programs: + cd ../programs/system && cargo build-sbf + cd ../programs/account-compression && cargo build-sbf --features 'test, migrate-state' + cd ../programs/registry && cargo build-sbf + cd ../programs/compressed-token/program && cargo build-sbf + +# Copy program binaries to cli/bin +copy-programs: + mkdir -p {{ bin_dir }} + cp {{ deploy_dir }}/account_compression.so {{ bin_dir }}/ + cp {{ deploy_dir }}/light_system_program_pinocchio.so {{ bin_dir }}/ + cp {{ deploy_dir }}/light_compressed_token.so {{ bin_dir }}/ + cp {{ deploy_dir }}/light_registry.so {{ bin_dir }}/ + cp {{ root_dir }}/third-party/solana-program-library/spl_noop.so {{ bin_dir }}/ + test: pnpm test diff --git a/cli/package.json b/cli/package.json index 769dd49ad3..88c9ec237d 100644 --- a/cli/package.json +++ b/cli/package.json @@ -91,11 +91,10 @@ "topicSeparator": "" }, "scripts": { - "add-bins": "./scripts/copyLocalProgramBinaries.sh", "postinstall": "[ -d ./bin ] && find ./bin -type f -exec chmod +x {} + || echo 'No bin directory found, skipping chmod'", "sync-prover-version": "./scripts/syncProverVersion.sh", - "build": "shx rm -rf dist && pnpm sync-prover-version && pnpm tsc -p tsconfig.json && pnpm tsc -p tsconfig.test.json && pnpm add-bins", - "build-release": "shx rm -rf dist && pnpm sync-prover-version && pnpm tsc -p tsconfig.json && pnpm tsc -p tsconfig.test.json && pnpm add-bins", + "build": "shx rm -rf dist && pnpm sync-prover-version && pnpm tsc -p tsconfig.json && pnpm tsc -p tsconfig.test.json", + "build-release": "shx rm -rf dist && pnpm sync-prover-version && pnpm tsc -p tsconfig.json && pnpm tsc -p tsconfig.test.json", "format": "pnpm prettier --write \"src/**/*.{ts,js}\" \"test/**/*.{ts,js}\" -w", "format:check": "pnpm prettier \"src/**/*{ts,js}\" \"test/**/*.{ts,js}\" --check", "lint": "eslint .", diff --git a/cli/scripts/copyLocalProgramBinaries.sh b/cli/scripts/copyLocalProgramBinaries.sh deleted file mode 100755 index deddd04e8a..0000000000 --- a/cli/scripts/copyLocalProgramBinaries.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env sh - -set -eux - -root_dir=$(git rev-parse --show-toplevel) -out_dir="$root_dir/cli/bin" -if [ ! -e "$out_dir" ]; then - mkdir -p "$out_dir" -fi - -keys="account_compression light_system_program_pinocchio light_compressed_token light_registry" -for key in $keys -do - cp "$root_dir/target/deploy/$key.so" "$out_dir"/"$key".so -done -cp "$root_dir"/third-party/solana-program-library/spl_noop.so "$out_dir"/spl_noop.so