diff options
-rw-r--r-- | eclass/boinc.eclass | 220 |
1 files changed, 0 insertions, 220 deletions
diff --git a/eclass/boinc.eclass b/eclass/boinc.eclass deleted file mode 100644 index 56d972b66..000000000 --- a/eclass/boinc.eclass +++ /dev/null @@ -1,220 +0,0 @@ -# Copyright 2021-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# @ECLASS: boinc.eclass -# @MAINTAINER: -# Anna Vyalkova <cyber+gentoo@sysrq.in> -# @SUPPORTED_EAPIS: 8 -# @BLURB: An eclass to build BOINC applications and libraries. -# @DESCRIPTION: -# This eclass provides helper functions to build BOINC applications and libraries. - -case ${EAPI} in - 8) ;; - *) die "${ECLASS}: EAPI ${EAPI} unsupported." -esac - -# @ECLASS_VARIABLE: BOINC_SUBMODULE -# @PRE_INHERIT -# @DEFAULT_UNSET -# @DESCRIPTION: -# Set this variable to a subdirectory relative to BOINC source repository, -# if software cannot be built outside it (for example, if some required -# headers are missing in sci-misc/boinc). -# -# If unset, no functions will be exported. - -# @ECLASS_VARIABLE: BOINC_S -# @DEFAULT_UNSET -# @DESCRIPTION: -# If defined this variable determines the source directory name after -# unpacking. This defaults to package name and version. Note that this -# variable supports a wildcard mechanism to help with github tarballs -# that contain the commit hash as part of the directory name. - -if [[ ! ${_BOINC_ECLASS} ]]; then - -inherit autotools edo toolchain-funcs - -fi - -if [[ ${BOINC_SUBMODULE} ]]; then - EXPORT_FUNCTIONS src_unpack src_prepare src_configure -fi - -if [[ ! ${_BOINC_ECLASS} ]]; then - -# @FUNCTION: get_boinc_src -# @USAGE: <SRC_URI|S> <release> [client|server|vboxwrapper|wrapper] -# @RETURN: SRC_URI snippet or temporary build directory for given BOINC release -get_boinc_src() { - debug-print-function ${FUNCNAME} "${@}"] - - local query_var=${1} - local RELEASE_PATCH=${2} - local RELEASE_MINOR=$(ver_cut 1-2 ${RELEASE_PATCH}) - local RELEASE_TYPE=${3:-client} - - local TAG - case ${RELEASE_TYPE} in - client|server) - TAG="${RELEASE_TYPE}_release/${RELEASE_MINOR}/${RELEASE_PATCH}" ;; - vboxwrapper|wrapper) - TAG="${RELEASE_TYPE}/${RELEASE_PATCH}" ;; - *) - die "${FUNCNAME}: unknown release type '${RELEASE_TYPE}'" - esac - - local _SRC_URI="https://github.com/BOINC/boinc/archive/refs/tags/${TAG}.tar.gz" - _SRC_URI+=" -> boinc-${RELEASE_TYPE}-${RELEASE_PATCH}.tar.gz" - - local _S="${WORKDIR}/boinc-${TAG////-}" - - case ${query_var} in - SRC_URI) echo "${_SRC_URI}" ;; - S) echo "${_S}" ;; - *) die "${FUNCNAME}: unknown variable to query (${query_var})" - esac - -} - -# @ECLASS_VARIABLE: BOINC_BUILD_DIR -# @OUTPUT_VARIABLE -# @DESCRIPTION: -# Temporary build directory, where BOINC sources are located. - -# @FUNCTION: boinc_require_source -# @USAGE: [boinc version] [client|server|vboxwrapper|wrapper] -# @DESCRIPTION: -# Set up SRC_URI and S for building application within BOINC source tree. -# -# This function must be called in global scope, after BOINC_SUBMODULE -# and SRC_URI have been declared. Take care not to overwrite the variables -# set by it. -# -# If no BOINC version is given, this function assumes it equal to client -# release $PV. -boinc_require_source() { - debug-print-function ${FUNCNAME} "${@}"] - - local boinc_version=${1:-${PV}} - SRC_URI+=" $(get_boinc_src SRC_URI ${boinc_version} ${2})" - - readonly BOINC_BUILD_DIR="$(get_boinc_src S ${boinc_version} ${2})" - S="${BOINC_BUILD_DIR}/${BOINC_SUBMODULE}" -} - -# @FUNCTION: boinc_enable_autotools -# @USAGE: [econf args...] -# @DESCRIPTION: -# Configure BOINC source tree using autotools. -# -# If no arguments are given, econf will be called with -# '--enable-static --enable-pkg-devel --disable-fcgi' flags. -# -# This function must be called in global scope. -boinc_enable_autotools() { - debug-print-function ${FUNCNAME} "${@}"] - - _BOINC_RUN_AUTOTOOLS=1 - _BOINC_ECONF_ARGS=${@:---enable-static --enable-pkg-devel --disable-fcgi} -} - -# @FUNCTION: boinc_override_config -# @USAGE: <config.h> -# @DESCRIPTION: -# Some applications do not need autotools to build but -# use a few HAVE_* defines. - -# If you want to save ~40 seconds and really know what -# to do, pass prepared config.h to this function. -# -# This function must be called in global scope. -boinc_override_config() { - debug-print-function ${FUNCNAME} "${@}"] - - _BOINC_CONFIG_OVERRIDE="${1}" -} - -# @FUNCTION: boinc_builddir_check -# @USAGE: -# @DESCRIPTION: -# Make sure BOINC_BUILD_DIR has a value. -boinc_builddir_check() { - debug-print-function ${FUNCNAME} "${@}"] - - if [[ ! ${BOINC_BUILD_DIR} ]]; then - eerror "BOINC_BUILD_DIR is not set." - die "Did you forget to call boinc_require_source?" - fi - - mkdir -p ${BOINC_BUILD_DIR} || die -} - -boinc_src_unpack() { - debug-print-function ${FUNCNAME} "${@}"] - - default_src_unpack - boinc_builddir_check - - [[ -d ${S} ]] && \ - return - - # Special case, for the always-lovely GitHub fetches. With this, - # we allow the star glob to just expand to whatever directory it's - # called. - if [[ "${BOINC_S:=${P}}" = *"*"* ]]; then - pushd "${WORKDIR}" >/dev/null || die - local shopt_save=$(shopt -p nullglob) - shopt -s nullglob - - # use an array to trigger filename expansion - BOINC_S=( ${BOINC_S} ) - if [[ ${#BOINC_S[@]} -gt 1 ]]; then - die "BOINC_S did expand to multiple paths: ${BOINC_S[*]}" - fi - - ${shopt_save} - popd >/dev/null || die - fi - - mkdir -p "$(dirname "${S}")" || die - mv "${WORKDIR}/${BOINC_S}" "${S}" || die -} - -boinc_src_prepare() { - debug-print-function ${FUNCNAME} "${@}"] - - boinc_builddir_check - default_src_prepare - - if [[ ${_BOINC_RUN_AUTOTOOLS} ]]; then - pushd "${BOINC_BUILD_DIR}" >/dev/null || die - eautoreconf - popd >/dev/null || die - fi -} - -boinc_src_configure() { - debug-print-function ${FUNCNAME} "${@}"] - - boinc_builddir_check - pushd "${BOINC_BUILD_DIR}" >/dev/null || die - - edo bash ./generate_svn_version.sh - - if [[ ${_BOINC_RUN_AUTOTOOLS} ]]; then - econf ${_BOINC_ECONF_ARGS} - else - tc-export AR CC CPP CXX LD OBJDUMP RANLIB - fi - - if [[ ${_BOINC_CONFIG_OVERRIDE} ]]; then - cp "${_BOINC_CONFIG_OVERRIDE}" config.h || die - fi - - popd >/dev/null || die -} - -_BOINC_ECLASS=1 -fi |