@@ -32,18 +32,53 @@ jobs:
3232 shell : bash
3333 run : |
3434 TOOLCHAIN=${{ github.workspace }}/zig-as-llvm
35+ ARCH="${ZIG_TARGET%%-*}"
36+ REST="${ZIG_TARGET#*-}"
37+ OS="${REST%%-*}"
38+
39+ case "$OS" in
40+ linux) CMAKE_SYSTEM_NAME="Linux" ;;
41+ windows) CMAKE_SYSTEM_NAME="Windows" ;;
42+ macos|maccatalyst) CMAKE_SYSTEM_NAME="Darwin" ;;
43+ freebsd) CMAKE_SYSTEM_NAME="FreeBSD" ;;
44+ netbsd) CMAKE_SYSTEM_NAME="NetBSD" ;;
45+ openbsd) CMAKE_SYSTEM_NAME="OpenBSD" ;;
46+ wasi) CMAKE_SYSTEM_NAME="WASI" ;;
47+ *) CMAKE_SYSTEM_NAME="Generic" ;;
48+ esac
49+ case "$ARCH" in
50+ x86_64) CMAKE_SYSTEM_PROCESSOR="x86_64" ;;
51+ x86) CMAKE_SYSTEM_PROCESSOR="i686" ;;
52+ aarch64|aarch64_be) CMAKE_SYSTEM_PROCESSOR="aarch64" ;;
53+ arm|armeb|thumb|thumbeb) CMAKE_SYSTEM_PROCESSOR="arm" ;;
54+ riscv32) CMAKE_SYSTEM_PROCESSOR="riscv32" ;;
55+ riscv64) CMAKE_SYSTEM_PROCESSOR="riscv64" ;;
56+ mips|mipsel) CMAKE_SYSTEM_PROCESSOR="mips" ;;
57+ mips64|mips64el) CMAKE_SYSTEM_PROCESSOR="mips64" ;;
58+ powerpc) CMAKE_SYSTEM_PROCESSOR="powerpc" ;;
59+ powerpc64|powerpc64le) CMAKE_SYSTEM_PROCESSOR="powerpc64" ;;
60+ s390x) CMAKE_SYSTEM_PROCESSOR="s390x" ;;
61+ sparc|sparc64) CMAKE_SYSTEM_PROCESSOR="sparc" ;;
62+ m68k) CMAKE_SYSTEM_PROCESSOR="m68k" ;;
63+ loongarch64) CMAKE_SYSTEM_PROCESSOR="loongarch64" ;;
64+ hexagon) CMAKE_SYSTEM_PROCESSOR="hexagon" ;;
65+ csky) CMAKE_SYSTEM_PROCESSOR="csky" ;;
66+ arc) CMAKE_SYSTEM_PROCESSOR="arc" ;;
67+ wasm32) CMAKE_SYSTEM_PROCESSOR="wasm32" ;;
68+ *) CMAKE_SYSTEM_PROCESSOR="$ARCH" ;;
69+ esac
3570 if echo 'int main(){}' | "${TOOLCHAIN}/bin/cc" -x c - -static -o /dev/null 2>/dev/null; then
3671 STATIC_FLAG="-static"
3772 fi
38- if [[ "$ZIG_TARGET" == *"-musl"* ]]; then
39- LARGEFILE_FLAG="-D_LARGEFILE64_SOURCE=1"
40- fi
4173 JOBS=$(nproc 2>/dev/null || sysctl -n hw.logicalcpu 2>/dev/null || echo "${NUMBER_OF_PROCESSORS:-4}")
4274 mkdir build
4375 cd build
4476 cmake .. -DCMAKE_BUILD_TYPE=MinSizeRel \
45- -DCMAKE_C_FLAGS="${STATIC_FLAG} ${LARGEFILE_FLAG}" \
46- -DCMAKE_CXX_FLAGS="${STATIC_FLAG} ${LARGEFILE_FLAG}" \
77+ -DCMAKE_SYSTEM_NAME="${CMAKE_SYSTEM_NAME}" \
78+ -DCMAKE_SYSTEM_PROCESSOR="${CMAKE_SYSTEM_PROCESSOR}" \
79+ -DCMAKE_CROSSCOMPILING=TRUE \
80+ -DCMAKE_C_FLAGS="${STATIC_FLAG} -D_LARGEFILE64_SOURCE=1" \
81+ -DCMAKE_CXX_FLAGS="${STATIC_FLAG} -D_LARGEFILE64_SOURCE=1" \
4782 -DCMAKE_EXE_LINKER_FLAGS="${STATIC_FLAG}" \
4883 -DCMAKE_C_COMPILER="${TOOLCHAIN}/bin/cc" \
4984 -DCMAKE_CXX_COMPILER="${TOOLCHAIN}/bin/c++" \
0 commit comments