From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 9DBE615800A for ; Fri, 11 Aug 2023 03:49:16 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 70F212BC053; Fri, 11 Aug 2023 03:48:28 +0000 (UTC) Received: from out-69.mta0.migadu.com (out-69.mta0.migadu.com [91.218.175.69]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 3236A2BC050 for ; Fri, 11 Aug 2023 03:48:27 +0000 (UTC) X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=catcream.org; s=key1; t=1691725706; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=JgyJS2pCW59s7CVZ+etmQHq1tIuTb7+SnEL38YLTo5s=; b=WWtTJuz8oZZx4srArGcmm2OSy8jjdreFLN9GH2/7vNTT4DMuc9yOGW9fb0C/ccuBcgzH26 RIVw1+s1rHJH6FwvmmFFHASfPOlSRjWqs9a5vw75JUhl5agyflkHmcXV/kT8trWR5n88lB iXittnjNOLOzgcwvK9fiGVGlh+uR2ATGPmi3fLOVOBXHW9qqmR/DJk4C+9tNveDA2XxPpA ZIgWkqNN9h8ULiNqpjMyr7lE9xHIflmQsjWCJC1bM497vNB3cKqXejOeUN/jukV981ht0f roJfUsUBk5bnm47Y2bZmwXYOKjIWzCmRiEf6i7q3WJsWneFE4D1yx9XZMPo+pA== From: Alfred Persson Forsberg To: gentoo-dev@lists.gentoo.org Cc: sam@gentoo.org, llvm@gentoo.org, toolchain@gentoo.org, cross@gentoo.org, Alfred Persson Forsberg Subject: [gentoo-dev] [PATCH 1/4] cross.eclass: new eclass Date: Fri, 11 Aug 2023 05:48:20 +0200 Message-ID: <20230811034823.34301-3-cat@catcream.org> In-Reply-To: <20230811034823.34301-1-cat@catcream.org> References: <20230811034823.34301-1-cat@catcream.org> Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Migadu-Flow: FLOW_OUT X-Archives-Salt: 24a75e94-ec36-4096-af0f-91c7623c1095 X-Archives-Hash: 8bc9b4ca5d977fbe10e9ae1116c2025c Signed-off-by: Alfred Persson Forsberg --- eclass/cross.eclass | 83 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 eclass/cross.eclass diff --git a/eclass/cross.eclass b/eclass/cross.eclass new file mode 100644 index 000000000000..a7a75aac8e43 --- /dev/null +++ b/eclass/cross.eclass @@ -0,0 +1,83 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# @ECLASS: cross.eclass +# @MAINTAINER: +# cat@catcream.org +# @AUTHOR: +# Alfred Persson Forsberg (21 Jul 2023) +# @SUPPORTED_EAPIS: 7 8 +# @BLURB: Convenience wrappers for packages used by the Crossdev tool. + +inherit toolchain-funcs + +case ${EAPI} in + 7|8) ;; + *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; +esac + +if [[ -z ${_CROSS_ECLASS} ]]; then +_CROSS_ECLASS=1 + +# @ECLASS_VARIABLE: _CROSS_CATEGORY_PREFIX +# @INTERNAL +_CROSS_CATEGORY_PREFIX="" + +# @ECLASS_VARIABLE: _IS_CROSSPKG_LLVM +# @INTERNAL +_IS_CROSSPKG_LLVM=0 +if [[ ${CATEGORY} == cross_llvm-* ]] ; then + _IS_CROSSPKG_LLVM=1 + _CROSS_CATEGORY_PREFIX="cross_llvm-" +fi + +# @ECLASS_VARIABLE: _IS_CROSSPKG_GCC +# @INTERNAL +_IS_CROSSPKG_GCC=0 +if [[ ${CATEGORY} == cross-* ]] ; then + _IS_CROSSPKG_GCC=1 + _CROSS_CATEGORY_PREFIX="cross-" +fi + +# @ECLASS_VARIABLE: _IS_CROSSPKG +# @INTERNAL +[[ ${_IS_CROSSPKG_LLVM} == 1 || ${_IS_CROSSPKG_GCC} == 1 ]] && _IS_CROSSPKG=1 + +# Default CBUILD and CTARGET to CHOST if unset. +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + # cross-aarch64-gentoo-linux-musl -> aarch64-gentoo-linux-musl + [[ ${_IS_CROSSPKG_GCC} == 1 ]] && export CTARGET=${CATEGORY#cross-} + [[ ${_IS_CROSSPKG_LLVM} == 1 ]] && export CTARGET=${CATEGORY#cross_llvm-} +fi + +# @FUNCTION: is_crosscompile +# @RETURN: +# Shell true if we're targeting an architecture other than host +is_crosscompile() { + [[ ${CHOST} != ${CTARGET} ]] +} + +# @FUNCTION: is_crosspkg +# @RETURN: +# Shell true if package belongs to any crossdev category +is_crosspkg() { + [[ ${_IS_CROSSPKG} == 1 ]] +} + +# @FUNCTION: is_crosspkg_gcc +# @RETURN: +# Shell true if package belongs to GCC (standard) crossdev category +is_crosspkg_gcc() { + [[ ${_IS_CROSSPKG_GCC} == 1 ]] +} + +# @FUNCTION: is_crosspkg_llvm +# @RETURN: +# Shell true if package belongs to LLVM crossdev category. +is_crosspkg_llvm() { + [[ ${_IS_CROSSPKG_LLVM} == 1 ]] +} + +fi -- 2.41.0