diff --git a/.github/workflows/ccpp.yml b/.github/workflows/ccpp.yml index 4cda93ae..1823878a 100644 --- a/.github/workflows/ccpp.yml +++ b/.github/workflows/ccpp.yml @@ -70,7 +70,9 @@ jobs: uses: actions/upload-artifact@v4 with: name: ${{ github.event.repository.name }}.${{ github.sha }}.fluxengine.${{ runner.arch }}.pkg - path: fluxengine/FluxEngine.pkg + path: | + fluxengine/FluxEngine.pkg + fluxengine/FluxEngine.app.zip build-windows: runs-on: windows-latest diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d234f4de..8b7a53bb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -99,6 +99,7 @@ jobs: run: | gmake mv FluxEngine.pkg FluxEngine-${{ runner.arch }}.pkg + mv FluxEngine.app.zip FluxEngine-${{ runner.arch }}.app.zip - name: tag uses: EndBug/latest-tag@latest @@ -115,6 +116,7 @@ jobs: tag: dev assets: | FluxEngine-${{ runner.arch }}.pkg + FluxEngine-${{ runner.arch }}.app.zip fail-if-no-assets: false - name: release @@ -123,6 +125,7 @@ jobs: name: Development build ${{ env.RELEASE_DATE }} files: | FluxEngine-${{ runner.arch }}.pkg + FluxEngine-${{ runner.arch }}.app.zip tag_name: dev env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/build.py b/build.py index de13a623..71f5274d 100644 --- a/build.py +++ b/build.py @@ -10,6 +10,7 @@ import re # Hack for building on Fedora/WSL; executables get the .exe extension, # build the build system detects it as Linux. import build.toolchain + toolchain.Toolchain.EXE = "$(EXT)" package(name="protobuf_lib", package="protobuf") @@ -108,6 +109,13 @@ export( "brother240tool$(EXT)": "tools+brother240tool", "upgrade-flux-file$(EXT)": "tools+upgrade-flux-file", } - | ({"FluxEngine.pkg": "src/gui+fluxengine_pkg"} if config.osx else {}), + | ( + { + "FluxEngine.pkg": "src/gui+fluxengine_pkg", + "FluxEngine.app.zip": "src/gui+fluxengine_app_zip", + } + if config.osx + else {} + ), deps=["tests", "src/formats+docs", "scripts+mkdocindex"] + corpustests, ) diff --git a/src/gui/build.py b/src/gui/build.py index f1cdd65c..a5c6edd2 100644 --- a/src/gui/build.py +++ b/src/gui/build.py @@ -57,13 +57,13 @@ cxxprogram( if config.osx: simplerule( - name="fluxengine_pkg", + name="fluxengine_app_zip", ins=[ ".+gui", "extras+fluxengine_icns", "extras+fluxengine_template", ], - outs=["=FluxEngine.pkg"], + outs=["=FluxEngine.app.zip"], commands=[ "rm -rf $[outs[0]]", "unzip -q $[ins[2]]", # creates FluxEngine.app @@ -79,7 +79,20 @@ if config.osx: "cp $$(brew --prefix abseil)/LICENSE FluxEngine.app/Contents/libs/abseil.txt", "cp $$(brew --prefix libtiff)/LICENSE.md FluxEngine.app/Contents/libs/libtiff.txt", "cp $$(brew --prefix zstd)/LICENSE FluxEngine.app/Contents/libs/zstd.txt", - "pkgbuild --quiet --install-location /Applications --component FluxEngine.app $[outs[0]]", + "zip -rq $[outs[0]] FluxEngine.app", ], label="MKAPP", ) + + simplerule( + name="fluxengine_pkg", + ins=[ + ".+fluxengine_app_zip", + ], + outs=["=FluxEngine.pkg"], + commands=[ + "unzip -q $[ins[0]]", + "pkgbuild --quiet --install-location /Applications --component FluxEngine.app $[outs[0]]", + ], + label="MKPKG", + )