]> git.saurik.com Git - wxWidgets.git/blobdiff - wx-config.in
When enabling events, use CommonModes instead of DefaultMode for the RunLoop. In...
[wxWidgets.git] / wx-config.in
index 7757bc1a7eef57c965b0d82d09eb326f5fcbe880..f0c204ac5a686f6c675936332dd37d8448783a64 100755 (executable)
@@ -44,13 +44,12 @@ usage()
    on your system.  It may be used to retrieve the information you require
    to build applications using these libraries.
 
-    If alternative builds of wxWidgets exist on the system, you can  use the
-  options: --prefix, --host, --toolkit,  --unicode, --debug, --universal and
-  --version, to select from them.  Use the --list option  to show all builds
-  which  match any  specified criteria.   The unicode, universal,  and debug
-  options take an optional yes or no argument, while host and version accept
-  posix extended regex.  eg. wx-config --unicode=n --debug --host=?.* --list
-  will show all ansi-debug libraries installed, including cross libraries.
+    If alternative builds of wxWidgets exist on the system, you can use the
+  options:  --prefix,  --host,  --toolkit,  --unicode,  --debug,  --static,
+  --version and --universal, to select from them.  Use the --list option to
+  show alternatives available which match specified criteria.   The unicode,
+  debug, and universal options  take an  optional yes or no  argument, while
+  host and version accept posix extended regex.
 
     Optional LIB arguments (comma or space separated) may be used to specify
   the wxWidgets libraries that  you wish  to use.  The magic "std" label may
@@ -154,11 +153,15 @@ remove_field()
     _remf_value="$1"
     _remf_list=''
     shift
-    for _remf_item; do
-        [ "x$_remf_item" = "x$_remf_value" ] ||                        \
-            _remf_list="${_remf_list:+$_remf_list }$_remf_item"
-    done
-    echo "$_remf_list"
+    if [ -n "$_remf_value" ]; then
+        for _remf_item; do
+            [ "x$_remf_item" = "x$_remf_value" ] ||                 \
+                _remf_list="${_remf_list:+$_remf_list }$_remf_item"
+        done
+        echo "$_remf_list"
+    else
+        echo $*
+    fi
 }
 
 # validate_arg _domain _set _name _value
@@ -311,7 +314,7 @@ get_mask()
 
 # Determine the base directories we require.
 prefix=${input_option_prefix-${this_prefix:-@prefix@}}
-exec_prefix=${input_option_exec_prefix-${input_option_prefix-@exec_prefix@}}
+exec_prefix=${input_option_exec_prefix-${input_option_prefix-${this_exec_prefix:-@exec_prefix@}}}
 wxconfdir="@libdir@/wx/config"
 
 installed_configs=$( cd "$wxconfdir" 2> /dev/null && ls | grep -v "^inplace-" )
@@ -371,87 +374,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 +416,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 +534,101 @@ find_best_delegate()
 }
 
 
+# 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
 
-# And finally some cereal to sprinkle it all on.
+    elif [ -n "$_best_delegate" ]; then
+
+        echo "  Specification best match: $_best_delegate"
+
+    elif [ -z "$_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
+
+    else
+        echo " Specification was ambiguous.  Use additional feature options"
+        echo " to choose between alternate matches."
+    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 +642,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,10 +662,13 @@ if ! user_mask_fits "$this_config" ; then
     if [ $_numdelegates -eq 0 ]; then
         cat 1>&2 <<-EOF
 
-         No config found to match: $configmask
-         in $wxconfdir
-         Please install the desired library build, or use --list
-         without any feature specifiers to see all available configs.
+         Warning: No config found to match: $config_spec
+                  in $wxconfdir
+         If you require this configuration, please install the desired
+         library build.  If this is part of an automated configuration
+         test and no other errors occur, you may safely ignore it.
+         You may use wx-config --list to see all configs available in
+         the default prefix.
 
        EOF
 
@@ -673,7 +699,8 @@ if ! user_mask_fits "$this_config" ; then
         fi
 
         decho
-        decho " Specification was ambiguous."
+        decho " *** Error: Specification is ambiguous"
+        decho "            as $config_spec"
         decho " Use additional feature options to choose between:"
         for i in $(find_eligible_delegates "$configmask"); do
             decho "  $i"
@@ -695,8 +722,6 @@ fi
 
 
 
-
-
 # If we are still here, then from now on we are responsible for
 # all the user's needs.  Time to rustle up some output for them.
 # --------------------------------------------------------------
@@ -708,7 +733,7 @@ fi
 # tree prefix to provide the correct output for using this
 # uninstalled wx build.  Or put more simply:
 prefix=${this_prefix-$prefix}
-exec_prefix=${this_prefix-$exec_prefix}
+exec_prefix=${this_exec_prefix-$exec_prefix}
 
 includedir="@includedir@"
 libdir="@libdir@"
@@ -884,7 +909,13 @@ fi
 [ -n "$this_linkage"   ] || _static_cppflags="@TOOLCHAIN_DLL_DEFS@"
 [ "$using_gui" = "yes" ] || _gui_cppflags="-DwxUSE_GUI=0"
 
-_cppflags=$(echo "-I${libdir}/wx/include/@TOOLCHAIN_FULLNAME@ -I${includedir}/wx-@WX_RELEASE@@WX_FLAVOUR@" "@WXDEBUG_DEFINE@" "@TOOLCHAIN_DEFS@" $_static_cppflags $_gui_cppflags "@WXCONFIG_INCLUDE@" "@WX_LARGEFILE_FLAGS@" "@GCC_PRAGMA_FLAGS@")  
+if [ -n "$this_prefix" ]; then
+    _include_cppflags="-I${includedir} -I${prefix}/contrib/include"
+else
+    _include_cppflags="-I${includedir}/wx-@WX_RELEASE@@WX_FLAVOUR@"
+fi
+
+_cppflags=$(echo "-I${libdir}/wx/include/@TOOLCHAIN_FULLNAME@" $_include_cppflags "@WXDEBUG_DEFINE@" "@TOOLCHAIN_DEFS@" $_static_cppflags $_gui_cppflags "@WXCONFIG_INCLUDE@" "@WX_LARGEFILE_FLAGS@" "@GCC_PRAGMA_FLAGS@")  
 
 # now without further ado, we can answer these too.
 [ -z "$output_option_cppflags" ] || echo $_cppflags