diff options
Diffstat (limited to 'app-eselect/eselect-gnat/files/gnat-common-1.3-r1.bash')
-rw-r--r-- | app-eselect/eselect-gnat/files/gnat-common-1.3-r1.bash | 222 |
1 files changed, 0 insertions, 222 deletions
diff --git a/app-eselect/eselect-gnat/files/gnat-common-1.3-r1.bash b/app-eselect/eselect-gnat/files/gnat-common-1.3-r1.bash deleted file mode 100644 index d65994515022..000000000000 --- a/app-eselect/eselect-gnat/files/gnat-common-1.3-r1.bash +++ /dev/null @@ -1,222 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# -# Original Author: George Shapovalov <george@gentoo.org> -# Purpose: Contains common vars/locations and functions for use by gnat.eclass, -# gnat.eselect and gnatbuild.eclass. -# -# NOTE!!! -# This code should just define vars (try to limit these!) and simple functions. -# No bash extensions!! -# That is, no portage or eclass constructs are allowed! -# - - - -# ---------------------------------- -# Globals - -# Environmantal stuff (for env update) -SPECSDIR="/usr/share/gnat/eselect" -ENVDIR="/etc/env.d" -MARKER="55gnat-" - -# User configurable settings -SETTINGSDIR="/etc/ada" -PRIMELIST="${SETTINGSDIR}/primary_compilers" - -## Lib install locations -## -## Gnat profile dependent files go under under ${LibTop}/${Gnat_Profile}/${PN} -## and common files go unde SpecsDir, DataDir -#PREFIX=/usr -## Replace %LIBDIR% below with $(get_libdir) in eclasses and ebuilds (top level Ok, inherit multilib) -## or $(profile2libdir ${profile}) in this code, eselect module or anywhere -## outside portage (as profile will be available only during actual execution, this only should -## be done inside corresponding functions). -#AdalibSpecsDir=${PREFIX}/include/ada -#AdalibDataDir=${PREFIX}/share/ada -#AdalibLibTop=${PREFIX}/%LIBDIR%/ada - - -# ------------------------------------ -# Helpers -# - -# get_all_profile_components splits gnat profile and returns pace separated list of its components: -# x86_64-pc-linux-gnu-gnat-gcc-4.1 -> x86_64-pc-linux-gnu gcc 4.1 -# args: -# $1 - the string to split -get_all_profile_components() { - local GnatSLOT=${1##*-} - local remainder=${1%-*} - local GnatPkg=${remainder##*-} - remainder=${remainder%-gnat-*} - echo "${remainder} ${GnatPkg} ${GnatSLOT}" -} - -# similar to above, returns only SLOT component: -# x86_64-pc-linux-gnu-gnat-gcc-4.1 -> 4.1 -# args: -# $1 - the string to extract the slot from -get_gnat_SLOT() { - echo "${1##*-}" -} - -# returns only Pkg component: -# x86_64-pc-linux-gnu-gnat-gcc-4.1 -> gcc -# args: -# $1 - the string to extract the slot from -get_gnat_Pkg() { - local remainder=${1%-*} - echo "${remainder##*-}" -} - -# returns only Arch component: -# x86_64-pc-linux-gnu-gnat-gcc-4.1 -> x86_64-pc-linux-gnu -# args: -# $1 - the string to extract the slot from -get_gnat_Arch() { - echo ${1%-gnat-*} -} - - - -## ------------------------------------------- -# gnat profile and lib detection functions - - -# create a list of all gnat env.d files -# for now use trivial implementation - store name of active profile in the -# env file name, so it gets called 55gnat-${ARCH}-${PN}-${SLOT} -get_env_list() { - for fn in ${ENVDIR}/${MARKER}*; do - echo $(basename ${fn}) - done -} - - - -# find all installed compilers and return a list -find_all_compilers() { - [[ ! -d ${SPECSDIR} ]] && exit - for fn in ${SPECSDIR}/*; do - [[ ! -d ${fn} ]] && echo $(basename ${fn}); - done -} - -# find installed primary compilers and return a list -find_primary_compilers() { - [[ ! -f ${PRIMELIST} ]] && exit - for fn in $(cat ${PRIMELIST}); do - [[ -f ${SPECSDIR}/${fn} ]] && echo ${fn}; - done -} - -# find installed libs and return a list -find_all_libs() { - [[ ! -d ${SPECSDIR} ]] && exit - for fn in ${SPECSDIR}/*; do - [[ -d ${fn} ]] && echo $(basename ${fn}); - done -} - -# find libs that have been built for a given profile -# Arguments: -# $1 - gnat profile for which to detect active libs -find_libs4profile() { - libs=( $(find_all_libs) ) - - for (( i = 0 ; i < ${#libs[@]} ; i = i + 1 )) ; do - [[ -f ${SPECSDIR}/${libs[$i]}/$1 ]] && echo "${libs[$i]}" - done -} - - - - -## ----------------------- -# main action - central part of do_set and helpers - - -# extracts values of the passed var definition from given spec file -# params: -# $1: spec file (as generated by gnabuild.eclass) -# $2: variable name -get_var_from_spec() { - local var=$(grep -e "^ *$2=" $1|cut -d= -f2) - echo ${var} -} - - -# Cycle through given libs and form a ':' separated list of settings for the given -# var. Returned string starts with ':' if there is any non-empty setting, -# otherwise returns empty string. Repeating settings are omitted, that is -# unique entry is added only first time it is encountered. No need to have some -# common dir listed many times in PATH for example. -# -# params: -# $1 - name of env var to process -# $2 - name of gnat profile -# $3.. - list of libs to check (to avoid its composition every time) -# - the list is expanded to list of args at the point of call -get_lib_var_settings() { - local envVar=$1 - local toset=$2 - #echo "get_lib_var_settings params:$@" >> /tmp/eselect-gnat.rep - if [[ "none" != ${3} ]]; then - local envString - local specLine - while [[ -n $3 ]]; do - specLine=$(get_var_from_spec ${SPECSDIR}/$3/${toset} ${envVar}) - #echo "$3:${specLine}." >> /tmp/eselect-gnat.rep - if [[ -n ${specLine} ]] && [[ ! ${envString} =~ ${specLine} ]]; then - envString="${envString}:${specLine}" - fi - shift - done - echo "${envString}" - fi -} - - - -# The action! -# Part common for do_set and do_update of gnat.eselect, also used in gnat.eclass -# to set environment during lib build and installation -# -# params: -# $1 - profile to set (toset param inside) -# $2 - envfile - -generate_envFile() { - local toset=$1 - local envfile=$2 - - local binpath="$(get_var_from_spec ${SPECSDIR}/${toset} binpath)" - local libexecpath="$(get_var_from_spec ${SPECSDIR}/${toset} libexecpath)" - local libs=( $(find_libs4profile ${toset}) ) - #echo "generate_envFile: ${libs[@]}" >> /tmp/eselect-gnat.rep - if (( 0 == ${#libs[@]} )); then - libs="none" - fi - - local MyPath="${binpath}:${libexecpath}$(get_lib_var_settings PATH ${toset} ${libs[@]})" - echo "PATH=${MyPath}" > "${envfile}" - echo "ROOTPATH=${MyPath}" >> "${envfile}" - echo "MANPATH=$(get_var_from_spec ${SPECSDIR}/${toset} manpath)$(get_lib_var_settings MANPATH ${toset} ${libs[@]})" >> "${envfile}" - echo "INFOPATH=$(get_var_from_spec ${SPECSDIR}/${toset} infopath)$(get_lib_var_settings INFOPATH ${toset} ${libs[@]})" >> "${envfile}" - # the next three use the common base - local libBase=$(get_var_from_spec ${SPECSDIR}/${toset} ldpath) - echo "LDPATH=${libBase}:${libBase}/adalib$(get_lib_var_settings LDPATH ${toset} ${libs[@]})" >> "${envfile}" - echo "ADA_INCLUDE_PATH=${libBase}/adainclude$(get_lib_var_settings ADA_INCLUDE_PATH ${toset} ${libs[@]})" >> "${envfile}" - echo "ADA_OBJECTS_PATH=${libBase}/adalib$(get_lib_var_settings ADA_OBJECTS_PATH ${toset} ${libs[@]})" >> "${envfile}" - # ADA_PROJECT_PATH may not be set in any of the installed packages, - # we should only create this line if cumulative var is non-empty - My_ProjectPath=$(get_lib_var_settings ADA_PROJECT_PATH ${toset} ${libs[@]}) - if [[ -n ${My_ProjectPath} ]]; then - echo "ADA_PROJECT_PATH=${My_ProjectPath}" >> "${envfile}" - fi -} - |