diff options
Diffstat (limited to 'eclass/crystal-utils.eclass')
-rw-r--r-- | eclass/crystal-utils.eclass | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/eclass/crystal-utils.eclass b/eclass/crystal-utils.eclass index cb67682a6..8f8df3cc3 100644 --- a/eclass/crystal-utils.eclass +++ b/eclass/crystal-utils.eclass @@ -61,7 +61,19 @@ _crystal_get_debug_opt() { # @DESCRIPTION: # Set Crystal environment variables to match user settings. # +# Passes arguments to Crystal by reading from an optionally pre-defined local +# mycrystalargs bash array. +# # Must be run or ecrystal/eshards will fail. +# +# @CODE +# src_configure() { +# local mycrystalargs=( +# -Dfoo +# ) +# crystal_configure +# } +# @CODE crystal_configure() { debug-print-function ${FUNCNAME} "${@}" @@ -69,6 +81,12 @@ crystal_configure() { export CRYSTAL_CACHE_DIR="${T}/crystal" export SHARDS_CACHE_PATH="${T}/shards" + [[ -z ${mycrystalargs} ]] && local -a mycrystalargs=() + local mycrystalargstype=$(declare -p mycrystalargs 2>&-) + if [[ "${mycrystalargstype}" != "declare -a mycrystalargs="* ]]; then + die "mycrystalargs must be declared as array" + fi + local args=( --link-flags="\"${LDFLAGS}\"" --release @@ -78,6 +96,7 @@ crystal_configure() { $(is-flagq -mcpu && echo "--mcpu=$(get-flag mcpu)") $(is-flagq -mcmodel && echo "--mcmodel=$(get-flag mcmodel)") # TODO: --mattr + "${mycrystalargs[@]}" ) export CRYSTAL_OPTS="${args[@]}" |