diff options
| author | ruki <[email protected]> | 2025-01-13 16:05:27 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-01-13 16:05:27 +0800 |
| commit | 7e7fdd8f5808894680caa54a12d7eb2fbddd6a00 (patch) | |
| tree | 48c763d6e5bc08e11c2d2d4e82a1184afbc9de9e | |
| parent | aa5cdd8fbcaa499b9266455545b7777b446c7812 (diff) | |
| parent | fdefc50f0c67505d7649dffc2730e3aa874560b2 (diff) | |
Merge pull request #6069 from xmake-io/zig
improve cross for zig
| -rw-r--r-- | .github/workflows/linux.yml | 25 | ||||
| -rw-r--r-- | xmake/toolchains/zig/xmake.lua | 37 |
2 files changed, 44 insertions, 18 deletions
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index d4f1eeb12..5368a7061 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -33,12 +33,26 @@ jobs: sudo apt install -y ruby ruby-dev rubygems build-essential llvm libc++-dev sudo apt install -y libgl1-mesa-dev libglu1-mesa-dev clang --version + xrepo install -y zig - name: Tests run: | xmake lua -v -D tests/run.lua xrepo --version + - name: Artifact + run: | + cd core + xrepo env -b zig xmake f --embed=y --toolchain=zig --cross=x86_64-linux-gnu.2.29 -c + xmake + mkdir ../artifacts + cp build/xmake ../artifacts/xmake-bundle + cd .. + - uses: actions/upload-artifact@v4 + with: + name: xmake-bundle.linux.x86_64 + path: artifacts/xmake-bundle + - name: Publish if: github.event.action == 'published' env: @@ -57,3 +71,14 @@ jobs: scripts/makeppa bionic # 18.04 scripts/makeppa xenial # 16.04 scripts/makeppa trusty # 14.04 + + - name: Publish bundle binary + if: github.event.action == 'published' + uses: actions/[email protected] + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ github.event.release.upload_url }} + asset_path: artifacts/xmake-bundle + asset_name: xmake-bundle-${{ steps.tagName.outputs.tag }}.linux.x86_64 + asset_content_type: application/zip diff --git a/xmake/toolchains/zig/xmake.lua b/xmake/toolchains/zig/xmake.lua index 701bf2e78..b88449fb8 100644 --- a/xmake/toolchains/zig/xmake.lua +++ b/xmake/toolchains/zig/xmake.lua @@ -124,25 +124,26 @@ toolchain("zig") end -- init target - local target - if toolchain:is_plat("cross") then - -- xmake f -p cross --toolchain=zig --cross=mips64el-linux-gnuabi64 - target = toolchain:cross() - elseif toolchain:is_plat("macosx") then - --@see https://github.com/ziglang/zig/issues/14226 - target = arch .. "-macos-none" - elseif toolchain:is_plat("linux") then - if arch == "arm" then - target = "arm-linux-gnueabi" - elseif arch == "mips64" or arch == "mips64el" then - target = arch .. "-linux-gnuabi64" - else - target = arch .. "-linux-gnu" + local target = toolchain:cross() + if target == nil then + if toolchain:is_plat("cross") then + -- xmake f -p cross --toolchain=zig --cross=mips64el-linux-gnuabi64 + elseif toolchain:is_plat("macosx") then + --@see https://github.com/ziglang/zig/issues/14226 + target = arch .. "-macos-none" + elseif toolchain:is_plat("linux") then + if arch == "arm" then + target = "arm-linux-gnueabi" + elseif arch == "mips64" or arch == "mips64el" then + target = arch .. "-linux-gnuabi64" + else + target = arch .. "-linux-gnu" + end + elseif toolchain:is_plat("windows") then + target = arch .. "-windows-msvc" + elseif toolchain:is_plat("mingw") then + target = arch .. "-windows-gnu" end - elseif toolchain:is_plat("windows") then - target = arch .. "-windows-msvc" - elseif toolchain:is_plat("mingw") then - target = arch .. "-windows-gnu" end if target then toolchain:add("asflags", "-target", target) |
