# Copyright 2022-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: zig.eclass # @MAINTAINER: # Alfred Wingate # @AUTHOR: # Alfred Wingate # @SUPPORTED_EAPIS: 8 # @BLURB: common ebuild function for zig-based packages # @DESCRIPTION: # This eclass contains the default phase functions for packages which # use zig compilers build system case ${EAPI} in 8) ;; *) die "${ECLASS}: EAPI ${EAPI} unsupported." esac if [[ ! ${_ZIG_ECLASS} ]]; then _ZIG_ECLASS=1 # @ECLASS_VARIABLE: ZIG_MAX_VERSION # @DEFAULT_UNSET # @PRE_INHERIT # @DESCRIPTION: # Highest supported zig version for the package. # @ECLASS_VARIABLE: ZIG_MIN_VERSION # @DEFAULT_UNSET # @PRE_INHERIT # @DESCRIPTION: # Lowest supported zig version for the package. if [[ -n ${ZIG_MAX_VERSION} ]]; then _zig_max_version="${ZIG_MAX_VERSION:0:-1}$(( ${ZIG_MAX_VERSION:(-1)} + 1))" fi if [[ -z ${ZIG_MAX_VERSION} ]] && [[ -z ${ZIG_MIN_VERSION} ]]; then BDEPEND=" || ( dev-lang/zig-bin dev-lang/zig ) " elif [[ ${ZIG_MAX_VERSION} == ${ZIG_MIN_VERSION} ]]; then BDEPEND=" || ( dev-lang/zig-bin:${ZIG_MAX_VERSION} dev-lang/zig:${ZIG_MAX_VERSION} ) " elif [[ -n ${ZIG_MAX_VERSION} ]] && [[ -n ${ZIG_MIN_VERSION} ]]; then BDEPEND=" || ( =dev-lang/zig-bin-${ZIG_MIN_VERSION} =dev-lang/zig-${ZIG_MAX_VERSION} ) " elif [[ -n ${ZIG_MAX_VERSION} ]] && [[ -z ${ZIG_MIN_VERSION} ]]; then BDEPEND=" || ( /dev/null if [[ -d bin ]]; then dobin bin/* fi if [[ -d lib ]]; then pushd lib > /dev/null [[ -f *.so ]] && dolib.so $(find . -name "*.so") [[ -f *.a ]] && dolib.a $(find . -name "*.a") popd > /dev/null fi if [[ -d share ]]; then insinto /usr doins -r share fi popd > /dev/null } # @FUNCTION: zig_src_test # @DESCRIPTION: # This is the zig_src_test function. zig_src_test() { debug-print-function ${FUNCNAME} "$@" ezig test --verbose } fi EXPORT_FUNCTIONS pkg_setup src_compile src_install src_test