From d105ba0a9864cb38393386b0c9d1430e63f8f268 Mon Sep 17 00:00:00 2001 From: "Alex Xu (Hello71)" Date: Sun, 23 Jan 2022 09:45:11 -0500 Subject: dev-lang/zig: import, llvm_targets support --- dev-lang/zig/Manifest | 1 + dev-lang/zig/metadata.xml | 8 ++++ dev-lang/zig/zig-0.9.0.ebuild | 101 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 110 insertions(+) create mode 100644 dev-lang/zig/Manifest create mode 100644 dev-lang/zig/metadata.xml create mode 100644 dev-lang/zig/zig-0.9.0.ebuild diff --git a/dev-lang/zig/Manifest b/dev-lang/zig/Manifest new file mode 100644 index 0000000..b55846f --- /dev/null +++ b/dev-lang/zig/Manifest @@ -0,0 +1 @@ +DIST zig-0.9.0.tar.gz 21994175 BLAKE2B aadef89d5fddc3e802965125625e62140ac37bdac40b29ab8b7652056589c037cbed5d4e46889f335b3c296fb4ae2a7cafd5d064a02d728a8325ad515cdc8c7a SHA512 fef36221e818364b45cf65de210b0a9d535c411a510371a3ab4dfd6f4621c0a16dba786169f115a006966875102acc742abee19a74d83e2bc999ea5b8304b879 diff --git a/dev-lang/zig/metadata.xml b/dev-lang/zig/metadata.xml new file mode 100644 index 0000000..9a74b67 --- /dev/null +++ b/dev-lang/zig/metadata.xml @@ -0,0 +1,8 @@ + + + + + + ziglang/zig + + diff --git a/dev-lang/zig/zig-0.9.0.ebuild b/dev-lang/zig/zig-0.9.0.ebuild new file mode 100644 index 0000000..76f45f3 --- /dev/null +++ b/dev-lang/zig/zig-0.9.0.ebuild @@ -0,0 +1,101 @@ +# Copyright 2019-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +LLVM_MAX_SLOT=13 +inherit cmake llvm + +DESCRIPTION="A robust, optimal, and maintainable programming language" +HOMEPAGE="https://ziglang.org/" +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://github.com/ziglang/zig.git" + inherit git-r3 +else + SRC_URI="https://github.com/ziglang/zig/archive/${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64" +fi + +LICENSE="MIT" +SLOT="0" +RESTRICT="!test? ( test )" + +BUILD_DIR="${S}/build" + +# According to zig's author, zig builds that do not support all targets are not +# supported by the upstream project. +ALL_LLVM_TARGETS=( + AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430 NVPTX + PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore +) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) +LLVM_TARGET_USEDEPS="${ALL_LLVM_TARGETS[@]/%/(-)?}" + +IUSE="test ${ALL_LLVM_TARGETS[*]}" + +RDEPEND=" + sys-devel/clang:${LLVM_MAX_SLOT} + >=sys-devel/lld-${LLVM_MAX_SLOT} + .*/.$a => return error.@\"Zig compiled without LLVM $llvm_target\",/" + ) + done + mysedargs+=( + -e "/^fn initializeLLVMTarget(/,/^}/ { + /\.$a => {/,/},$/ { + s/=>.*/=> unreachable,/ + /=>/!d + } + }" + ) + fi + done + sed -i "${mysedargs[@]}" src/codegen/llvm.zig || die + + local mycmakeargs=( + -DZIG_USE_CCACHE=OFF + -DZIG_PREFER_CLANG_CPP_DYLIB=ON + ) + + cmake_src_configure +} + +src_test() { + cd "${BUILD_DIR}" || die + ./zig build test || die +} -- cgit v1.2.3-70-g09d2