version: 2

before:
  hooks:
    - go mod tidy
    - go get golang.org/x/tools/cmd/stringer@latest
    - go generate

builds:
  - id: linux-arm64
    main: ./
    goos:
      - linux
    goarch:
      - arm64
    env:
      - CGO_ENABLED=1
      - CC=aarch64-linux-gnu-gcc
      - CXX=aarch64-linux-gnu-g++
      - CGO_CFLAGS=--sysroot=/sysroot/linux_arm64
      - CGO_LDFLAGS=--sysroot=/sysroot/linux_arm64 -lresolv
      - PKG_CONFIG_SYSROOT_DIR=/sysroot/linux_arm64
      - PKG_CONFIG_PATH=/sysroot/linux_arm64/opt/vc/lib/pkgconfig:/sysroot/linux_arm64/usr/lib/aarch64-linux-gnu/pkgconfig:/sysroot/linux_arm64/usr/lib/pkgconfig:/sysroot/linux_arm64/usr/local/lib/pkgconfig
    flags:
      - -mod=readonly
    ldflags:
      - -s -w -X main.version={{.Version}}
  - id: linux-amd64
    main: ./
    goos:
      - linux
    goarch:
      - amd64
    env:
      - CGO_ENABLED=1
      - CC=x86_64-linux-gnu-gcc
      - CXX=x86_64-linux-gnu-g++
      - CGO_CFLAGS=--sysroot=/sysroot/linux_amd64
      - CGO_LDFLAGS=--sysroot=/sysroot/linux_amd64 -lresolv
      - PKG_CONFIG_SYSROOT_DIR=/sysroot/linux_amd64
      - PKG_CONFIG_PATH=/sysroot/linux_amd64/opt/vc/lib/pkgconfig:/sysroot/linux_amd64/usr/lib/x86_64-linux-gnu/pkgconfig:/sysroot/linux_amd64/usr/lib/pkgconfig:/sysroot/linux_amd64/usr/local/lib/pkgconfig
    flags:
      - -mod=readonly
    ldflags:
      - -s -w -X main.version={{.Version}}
  - id: windows-x64
    main: ./
    goos:
      - windows
    goarch:
      - amd64
    ldflags: -buildmode=exe
    env:
      - CGO_ENABLED=1
      - CC=x86_64-w64-mingw32-gcc
      - CXX=x86_64-w64-mingw32-g++

archives:
  - id: standard
    format: tar.gz
    builds:
      - linux-arm64
      - linux-amd64
    name_template: "{{ .ProjectName }}-{{ .Version }}.{{ .Os }}-{{ .Arch }}"
    wrap_in_directory: true
  - id: windows
    format: zip
    builds:
      - windows-x64
    name_template: "{{ .ProjectName }}-{{ .Version }}.{{ .Os }}-{{ .Arch }}"
    wrap_in_directory: false
    files:
      - LICENSE.txt
      - README.md
      - src: wintun/bin/{{ .Arch }}/wintun.dll
        dst: wintun.dll
      - src: wintun/LICENSE.txt
        dst: wintun-LICENSE.txt


checksum:
    name_template: "checksums.txt"