distributable:
  url: https://github.com/solana-labs/solana/archive/v{{version}}.tar.gz
  strip-components: 1

versions:
  github: solana-labs/solana

dependencies:
  protobuf.dev: ^21
  zlib.net: ^1.2
  openssl.org: ^1.1

build:
  dependencies:
    rust-lang.org: ^1.65
    rust-lang.org/cargo: '*'
    freedesktop.org/pkg-config: ^0.29
    linux:
      systemd.io: '*' # hidapi crate requires libudev
  script: |
    for x in \
      cli \
      bench-streamer \
      faucet \
      keygen \
      log-analyzer \
      net-shaper \
      stake-accounts \
      sys-tuner \
      tokens \
      watchtower
    do
      # sys-tuner removed in v1.16
      if test -d $x; then
        cargo install --root {{prefix}} --path $x
      fi
    done
  env:
    # TODO this should be fixed in brewkit
    linux/aarch64:
      PKG_CONFIG_PATH: /usr/lib/aarch64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH
    linux/x86-64:
      PKG_CONFIG_PATH: /usr/lib/x86_64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH

provides:
  - bin/solana
  - bin/solana-keygen
  - bin/solana-bench-streamer
  - bin/solana-faucet
  - bin/solana-keygen
  - bin/solana-log-analyzer
  - bin/solana-net-shaper
  - bin/solana-stake-accounts
  - bin/solana-tokens
  - bin/solana-watchtower

test: |
  solana-keygen new --no-bip39-passphrase --no-outfile
  solana-keygen --version | grep {{version}}
