From cd6e452ff09ec3aae593f5663f8d9f9d9aff1ee9 Mon Sep 17 00:00:00 2001 From: Hosh Sadiq Date: Tue, 13 Aug 2024 12:25:59 +0100 Subject: [PATCH] Cross build --- .goreleaser.grcross.yaml | 60 ------------------------------- .goreleaser.yaml | 68 ++++++++++++++++++++--------------- .goreleaser.zig.yaml | 73 -------------------------------------- scripts/gr-cross-runner.sh | 12 +------ scripts/zig-runner.sh | 25 ------------- 5 files changed, 41 insertions(+), 197 deletions(-) delete mode 100644 .goreleaser.grcross.yaml delete mode 100644 .goreleaser.zig.yaml delete mode 100755 scripts/zig-runner.sh diff --git a/.goreleaser.grcross.yaml b/.goreleaser.grcross.yaml deleted file mode 100644 index 90ec5488..00000000 --- a/.goreleaser.grcross.yaml +++ /dev/null @@ -1,60 +0,0 @@ -env: - - CGO_ENABLED=1 -builds: - - &default_config - id: ldcli-linux_amd64 - binary: ldcli - goos: - - linux - goarch: - - amd64 - ldflags: - - -s - - -w - env: - - CC=x86_64-linux-gnu-gcc - - CXX=x86_64-linux-gnu-g++ - - <<: *default_config - id: ldcli-linux_arm64 - goarch: - - arm64 - env: - - CC=aarch64-linux-gnu-gcc - - CXX=aarch64-linux-gnu-gcc - - <<: *default_config - id: ldcli-linux_armhf - goarm: - - "7" - goarch: - - arm - env: - - CC=arm-linux-gnueabihf-gcc - - CXX=arm-linux-gnueabihf-g++ - - <<: *default_config - id: ldcli-darwin_amd64 - goarch: - - amd64 - env: - - CC=o64-clang - - CXX=o64-clang++ - - <<: *default_config - id: ldcli-darwin_arm64 - goarch: - - arm64 - env: - - CC=oa64-clang - - CXX=oa64-clang++ - - <<: *default_config - id: ldcli-windows_amd64 - goarch: - - amd64 - env: - - CC=x86_64-w64-mingw32-gcc - - CXX=x86_64-w64-mingw32-g++ - - <<: *default_config - id: ldcli-windows_arm64 - goarch: - - arm64 - env: - - CC=/llvm-mingw/bin/aarch64-w64-mingw32-gcc - - CXX=/llvm-mingw/bin/aarch64-w64-mingw32-g++ diff --git a/.goreleaser.yaml b/.goreleaser.yaml index d4ab872f..a7b7135d 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -1,64 +1,76 @@ -before: - hooks: - - sudo apt-get install libc6-dev-i386 musl-tools musl-dev +version: 2 + builds: - id: ldcli binary: ldcli goos: + - darwin - linux - # WIP - darwin - # WIP - windows + - windows goarch: - - 386 + - "386" - amd64 - arm64 ldflags: - -s - -w - - -linkmode external - - -extldflags -static + + ignore: + - goos: linux + goarch: "386" + - goos: darwin + goarch: "386" + env: - - CGO_ENABLED=1 - >- - {{- if eq .Os "darwin" }}CC={{- end }} - {{- if eq .Os "windows" }}CC={{- end }} - {{- if eq .Os "linux" }} - {{- if eq .Arch "386"}}CC=musl-gcc{{- end }} - {{- if eq .Arch "amd64"}}CC=musl-gcc{{- end }} - {{- if eq .Arch "arm64"}}CC=aarch64-linux-musl-gcc{{- end }} - {{- end }} + TOOLCHAIN_BASE= + {{- if eq .Os "darwin" -}} + o + {{- if eq .Arch "arm64" -}}a{{- end -}} + 64-clang + {{- else -}} + {{- if eq .Os "windows" -}}/llvm-mingw/bin/{{- end -}} + {{- if eq .Arch "386" -}}i686{{- end -}} + {{- if eq .Arch "arm64" -}}aarch64{{- end -}} + {{- if eq .Arch "amd64" -}}x86_64{{- end -}} + - + {{- if eq .Os "windows" -}}w64-mingw32{{- end -}} + {{- if eq .Os "linux" -}}linux-gnu{{- end -}} + {{- end -}} + - CC={{ .Env.TOOLCHAIN_BASE }}{{ if ne .Os "darwin" }}-gcc{{ end }} + - CXX={{ .Env.TOOLCHAIN_BASE }}{{ if eq .Os "darwin" }}++{{ else }}-g++{{ end }} dockers: # AMD64 - image_templates: - - "launchdarkly/ldcli:{{ .Version }}-amd64" - - "launchdarkly/ldcli:v{{ .Major }}-amd64" - - "launchdarkly/ldcli:latest-amd64" + - "launchdarkly/ldcli:{{ .Version }}-amd64" + - "launchdarkly/ldcli:v{{ .Major }}-amd64" + - "launchdarkly/ldcli:latest-amd64" goos: linux goarch: amd64 dockerfile: Dockerfile.goreleaser skip_push: false build_flag_templates: - - "--pull" - - "--platform=linux/amd64" + - "--pull" + - "--platform=linux/amd64" # ARM64v8 - image_templates: - - "launchdarkly/ldcli:{{ .Version }}-arm64v8" - - "launchdarkly/ldcli:v{{ .Major }}-arm64v8" - - "launchdarkly/ldcli:latest-arm64v8" + - "launchdarkly/ldcli:{{ .Version }}-arm64v8" + - "launchdarkly/ldcli:v{{ .Major }}-arm64v8" + - "launchdarkly/ldcli:latest-arm64v8" goos: linux goarch: arm64 dockerfile: Dockerfile.goreleaser skip_push: false build_flag_templates: - - "--pull" - - "--platform=linux/arm64/v8" + - "--pull" + - "--platform=linux/arm64/v8" docker_manifests: - name_template: "launchdarkly/ldcli:{{ .Version}}" skip_push: false image_templates: - - "launchdarkly/ldcli:{{ .Version }}-amd64" - - "launchdarkly/ldcli:{{ .Version }}-arm64v8" + - "launchdarkly/ldcli:{{ .Version }}-amd64" + - "launchdarkly/ldcli:{{ .Version }}-arm64v8" - name_template: "launchdarkly/ldcli:v{{ .Major }}" skip_push: false diff --git a/.goreleaser.zig.yaml b/.goreleaser.zig.yaml deleted file mode 100644 index c5d6065f..00000000 --- a/.goreleaser.zig.yaml +++ /dev/null @@ -1,73 +0,0 @@ -env: - - CGO_ENABLED=1 -builds: - - &default_config - id: ldcli-linux_amd64 - binary: ldcli - goos: - - linux - goarch: - - amd64 - ldflags: - - -s - - -w - - -extldflags=-static - flags: - - -trimpath - tags: - - osusergo - - netgo - - sqlite_omit_load_extension - env: - - CC=zig cc -target x86_64-linux-musl - - CXX=zig c++ -target x86_64-linux-musl - - <<: *default_config - id: ldcli-linux_arm64 - goarch: - - arm64 - env: - - CC=zig cc -target aarch64-linux-musl - - CXX=zig c++ -target aarch64-linux-musl - - <<: *default_config - id: ldcli-linux_armhf - goarm: - - "7" - goarch: - - arm - env: - - CC=zig cc -target arm-linux-musl - - CXX=zig c++ -target arm-linux-musl - - <<: *default_config - id: ldcli-darwin_amd64 - goarch: - - amd64 - flags: - - -trimpath - - -buildmode=pie - env: - - CC=zig cc -target x86_64-macos-none - - CXX=zig c++ -target x86_64-macos-none - - <<: *default_config - id: ldcli-darwin_arm64 - goarch: - - arm64 - flags: - - -trimpath - - -buildmode=pie - env: - - CC=zig cc -target aarch64-macos-none - - CXX=zig c++ -target aarch64-macos-none - - <<: *default_config - id: ldcli-windows_amd64 - goarch: - - amd64 - env: - - CC=zig cc -target x86_64-windows-gnu - - CXX=zig c++ -target x86_64-windows-gnu - - <<: *default_config - id: ldcli-windows_arm64 - goarch: - - arm64 - env: - - CC=zig cc -target aarch64-windows-gnu - - CXX=zig c++ -target aarch64-windows-gnu diff --git a/scripts/gr-cross-runner.sh b/scripts/gr-cross-runner.sh index 439709e0..271798df 100755 --- a/scripts/gr-cross-runner.sh +++ b/scripts/gr-cross-runner.sh @@ -1,14 +1,4 @@ #!/usr/bin/env bash set -eu - -# based on https://github.com/goreleaser/goreleaser-cross -docker image inspect grcross-xbuilder &>/dev/null || docker build -t grcross-xbuilder -f - . </dev/null || docker build -t zig-xbuilder -f - . <