summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2025-01-13 16:05:27 +0800
committerGitHub <[email protected]>2025-01-13 16:05:27 +0800
commit7e7fdd8f5808894680caa54a12d7eb2fbddd6a00 (patch)
tree48c763d6e5bc08e11c2d2d4e82a1184afbc9de9e
parentaa5cdd8fbcaa499b9266455545b7777b446c7812 (diff)
parentfdefc50f0c67505d7649dffc2730e3aa874560b2 (diff)
Merge pull request #6069 from xmake-io/zig
improve cross for zig
-rw-r--r--.github/workflows/linux.yml25
-rw-r--r--xmake/toolchains/zig/xmake.lua37
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)