version: '3' vars: APP_NAME: "{{.ProjectName}}" tasks: pre-build: summary: Pre-build hooks post-build: summary: Post-build hooks install-frontend-deps: summary: Install frontend dependencies dir: frontend sources: - package.json - package-lock.json generates: - node_modules/* preconditions: - sh: npm version msg: "Looks like npm isn't installed. Npm is part of the Node installer: https://nodejs.org/en/download/" cmds: - npm install build-frontend: summary: Build the frontend project dir: frontend deps: - install-frontend-deps cmds: - npm run build build: summary: Builds the application cmds: - task: pre-build - task: build-frontend - go build -gcflags=all="-N -l" -o build/bin/{{ "{{.APP_NAME}}" }} main.go - task: post-build env: CGO_CFLAGS: "-mmacosx-version-min=10.13" CGO_LDFLAGS: "-mmacosx-version-min=10.13" generate-icons: summary: Generates Windows `.ico` and Mac `.icns` files from an image dir: build cmds: # Generates both .ico and .icns files - wails generate icons -input appicon.png build-app-prod-darwin: summary: Creates a production build of the application cmds: - task: pre-build - task: build-frontend - GOOS=darwin GOARCH={{ "{{.ARCH}}" }} go build -tags production -ldflags="-w -s" -o build/bin/{{ "{{.APP_NAME}}" }} - task: post-build env: CGO_CFLAGS: "-mmacosx-version-min=10.13" CGO_LDFLAGS: "-mmacosx-version-min=10.13" vars: ARCH: $GOARCH create-app-bundle: summary: Builds a `.app` bundle cmds: - mkdir -p {{ "{{.APP_NAME}}" }}.app/Contents/{MacOS,Resources} - cp build/icons.icns {{ "{{.APP_NAME}}" }}.app/Contents/Resources - cp build/bin/{{ "{{.APP_NAME}}" }} {{ "{{.APP_NAME}}" }}.app/Contents/MacOS - cp build/Info.plist {{ "{{.APP_NAME}}" }}.app/Contents package-darwin-arm64: summary: Packages a production build of the application into a `.app` bundle platform: darwin deps: - task: build-app-prod-darwin vars: ARCH: arm64 - generate-icons cmds: - task: create-app-bundle