Delay --list a little longer so we can indicate the best match
out of the general blob. Format the output a little less ambiguously. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29429 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
190
wx-config.in
190
wx-config.in
@@ -371,87 +371,8 @@ fi
|
||||
|
||||
|
||||
|
||||
# The only action we can perform authoritatively prior to delegation
|
||||
# is to list all the possible delegates.
|
||||
# --------------------------------------------------------------
|
||||
|
||||
# find_eligible_delegates _mask
|
||||
# Outputs all the config files installed which match the
|
||||
# (extended regex) _mask passed as an argument.
|
||||
find_eligible_delegates() { echo "$installed_configs" | grep -E "$1" 2> /dev/null; }
|
||||
|
||||
# user_mask_fits _config
|
||||
# Returns true if the string _config satisfies the user specified mask.
|
||||
user_mask_fits() { echo "$1" | grep -E "$configmask" > /dev/null 2>&1; }
|
||||
|
||||
|
||||
# Next chance for another satisfied customer then
|
||||
#
|
||||
# If we want to get really polished here we can do plural checking,
|
||||
# but we should probably leave that until the day we gettextise it.
|
||||
# If we have cpu cycles to spare for glitz, we could run the
|
||||
# find_best_delegate function over the list and mark the one that
|
||||
# would be used by default if no further disambiguation was to occur.
|
||||
# FIXME: This is probably useful to do in any case, but lets not
|
||||
# tangle them up until things settle down again.
|
||||
if [ -n "$output_option_list" ]; then
|
||||
|
||||
_delegates="$(find_eligible_delegates $configmask)"
|
||||
|
||||
if user_mask_fits "$this_config" ; then
|
||||
|
||||
echo
|
||||
echo " This config ($this_config) will be used for output."
|
||||
|
||||
if match_field "$this_config" $_delegates ; then
|
||||
_delegates=$(remove_field $this_config $_delegates)
|
||||
else
|
||||
echo " though it is not installed in:"
|
||||
echo " $wxconfdir"
|
||||
fi
|
||||
|
||||
if [ -n "$_delegates" ]; then
|
||||
echo
|
||||
echo " You can select from the following alternates by explicitly"
|
||||
echo " specifying additional features to wx-config:"
|
||||
fi
|
||||
|
||||
elif [ -z "$_delegates" ]; then
|
||||
|
||||
cat <<-EOF
|
||||
|
||||
No config found to match:
|
||||
$configmask
|
||||
in $wxconfdir
|
||||
|
||||
This config is: $this_config
|
||||
|
||||
Please install the desired library build, or use --list
|
||||
without any feature specifiers to see the available configs
|
||||
for this host. wx-config --list --host=?.* will list all
|
||||
installed configs including cross builds for other hosts.
|
||||
|
||||
EOF
|
||||
exit 1
|
||||
|
||||
else
|
||||
echo
|
||||
echo " The following installed configurations match your specification:"
|
||||
fi
|
||||
|
||||
echo
|
||||
for i in $_delegates; do echo " $i"; done
|
||||
[ -z "$_delegates" ] || echo
|
||||
|
||||
exit
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# From here, we now need to figure out a delegation target.
|
||||
# --------------------------------------------------------------
|
||||
# From here on, we'll need to be able to figure out a delegation target.
|
||||
# -----------------------------------------------------------------------
|
||||
|
||||
# The rules for delegation are:
|
||||
#
|
||||
@@ -492,6 +413,15 @@ fi
|
||||
# But first, more sugar to keep what follows clear and legible.
|
||||
# --------------------------------------------------------------
|
||||
|
||||
# find_eligible_delegates _mask
|
||||
# Outputs all the config files installed which match the
|
||||
# (extended regex) _mask passed as an argument.
|
||||
find_eligible_delegates() { echo "$installed_configs" | grep -E "$1" 2> /dev/null; }
|
||||
|
||||
# user_mask_fits _config
|
||||
# Returns true if the string _config satisfies the user specified mask.
|
||||
user_mask_fits() { echo "$1" | grep -E "$configmask" > /dev/null 2>&1; }
|
||||
|
||||
# count_fields _word
|
||||
# Returns the number of IFS split fields in _word
|
||||
count_fields() { return $#; }
|
||||
@@ -601,11 +531,99 @@ find_best_delegate()
|
||||
}
|
||||
|
||||
|
||||
|
||||
# And finally some cereal to sprinkle it all on.
|
||||
# The only action we can perform authoritatively prior to delegation
|
||||
# is to list all the possible delegates.
|
||||
# --------------------------------------------------------------
|
||||
|
||||
config_spec="$0 $*"
|
||||
[ -z "$WXDEBUG" ] || config_spec=$configmask
|
||||
|
||||
# Next chance for another satisfied customer then
|
||||
#
|
||||
# If we want to get really polished here we can do plural checking,
|
||||
# but we should probably leave that until the day we gettextise it.
|
||||
if [ -n "$output_option_list" ]; then
|
||||
|
||||
_remains_in_prefix=$installed_configs
|
||||
_delegates=$(find_eligible_delegates $configmask)
|
||||
_best_delegate=$(find_best_delegate)
|
||||
|
||||
if [ "x$WXDEBUG" = "xverbose" ]; then
|
||||
echo " all = $_remains_in_prefix"
|
||||
echo " matching = $_delegates"
|
||||
echo " best = $_best_delegate"
|
||||
echo " this = $this_config"
|
||||
fi
|
||||
|
||||
for d in $_delegates; do
|
||||
_remains_in_prefix=$(remove_field $d $_remains_in_prefix)
|
||||
done
|
||||
|
||||
echo
|
||||
echo " Default config is $this_config"
|
||||
echo
|
||||
|
||||
if user_mask_fits "$this_config" ; then
|
||||
|
||||
echo " Default config ${this_exec_prefix+in $this_exec_prefix }will be used for output"
|
||||
|
||||
if match_field "$this_config" $_delegates ; then
|
||||
_delegates=$(remove_field $this_config $_delegates)
|
||||
else
|
||||
echo " though it is not installed in: $prefix"
|
||||
if [ -n "$_best_delegate" ] && [ "x$_best_delegate" != "x$this_config" ]; then
|
||||
echo
|
||||
echo " Best alternate in $prefix:"
|
||||
echo " $_best_delegate"
|
||||
fi
|
||||
fi
|
||||
|
||||
elif [ -n "$_best_delegate" ]; then
|
||||
|
||||
echo " Specification best match: $_best_delegate"
|
||||
|
||||
elif [ -n "_delegates" ]; then
|
||||
|
||||
cat <<-EOF
|
||||
No config found to match: $config_spec
|
||||
in $wxconfdir
|
||||
|
||||
Please install the desired library build, or specify a different
|
||||
prefix where it may be found. If the library is not installed
|
||||
you may call its wx-config directly by specifying its full path.
|
||||
|
||||
EOF
|
||||
exit 1
|
||||
|
||||
fi
|
||||
|
||||
_delegates=$(remove_field $_best_delegate $_delegates)
|
||||
|
||||
if [ -n "$_delegates" ]; then
|
||||
echo
|
||||
echo " Alternate matches:"
|
||||
for d in $_delegates; do
|
||||
echo " $d"
|
||||
done
|
||||
fi
|
||||
if [ -n "$_remains_in_prefix" ]; then
|
||||
echo
|
||||
echo " Also available in $prefix:"
|
||||
for d in $_remains_in_prefix; do
|
||||
echo " $d"
|
||||
done
|
||||
fi
|
||||
|
||||
echo
|
||||
exit
|
||||
fi
|
||||
|
||||
|
||||
|
||||
# ... so if that wasn't what they wanted, then we need to know for
|
||||
# certain, can this config satisfy the user specification?
|
||||
# --------------------------------------------------------------
|
||||
|
||||
# No more messing around, can this config satisfy the user specification?
|
||||
if ! user_mask_fits "$this_config" ; then
|
||||
|
||||
# No? Then lets see if it knows anybody who can.
|
||||
@@ -619,7 +637,7 @@ if ! user_mask_fits "$this_config" ; then
|
||||
decho
|
||||
decho " to: $0"
|
||||
decho " ($this_config) cannot satisfy:"
|
||||
decho " $configmask"
|
||||
decho " $config_spec"
|
||||
decho " Someone has been terribly careless."
|
||||
decho
|
||||
exit 1
|
||||
@@ -639,7 +657,7 @@ if ! user_mask_fits "$this_config" ; then
|
||||
if [ $_numdelegates -eq 0 ]; then
|
||||
cat 1>&2 <<-EOF
|
||||
|
||||
No config found to match: $configmask
|
||||
No config found to match: $config_spec
|
||||
in $wxconfdir
|
||||
Please install the desired library build, or use --list
|
||||
without any feature specifiers to see all available configs.
|
||||
|
Reference in New Issue
Block a user