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
}
+# Legacy wx-config helpers.
+# -------------------------
+
+# get_legacy_mask
+# Returns a mask in the format used by wx2.4.
+get_legacy_mask()
+{
+ [ $# -gt 0 ] || set m
+ eval [ "x\${$1_chartype}" != "xunicode" ] || _unicode_flag=u
+ eval [ "x\${$1_debugtype}" != "xdebug" ] || _debug_flag=d
+ eval echo "wx\${$1_toolkit}${_unicode_flag}${_debug_flag}-\${$1_version}\${$1_host}-config"
+}
+
+# find_legacy_configs
+# Returns a list of configs installed by wx2.4 releases.
+find_legacy_configs()
+{
+ cd "$prefix/bin" 2> /dev/null && \
+ ls wx*-2.4-config | grep -v ^wxbase; \
+ ls wx*-2.4-config | grep ^wxbase
+}
+
+# find_best_legacy_config
+# Returns the best legacy config for a given specification.
+# This assumes no matching new style config has been found.
+find_best_legacy_config()
+{
+ _legacy_configs=$(find_legacy_configs)
+ if [ -n "$_legacy_configs" ]; then
+ _legacy_mask=$(get_legacy_mask)
+ for d in $_legacy_configs; do
+ if echo $d | grep -E $_legacy_mask > /dev/null 2>&1 ; then
+ echo "$d"
+ return
+ fi
+ done
+ fi
+ false
+}
+
+
+
# The only action we can perform authoritatively prior to delegation
# is to list all the possible delegates.
# --------------------------------------------------------------
_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"
+ decho
+ decho " all = $_remains_in_prefix"
+ decho " matching = $_delegates"
+ decho " best = $_best_delegate"
+ decho " this = $this_config"
fi
for d in $_delegates; do
elif [ -z "$_delegates" ]; then
- cat <<-EOF
+ _last_chance=$(find_best_legacy_config)
+ if [ -n "$_last_chance" ]; then
+
+ echo " Specification matches legacy config: $_last_chance"
+
+ else
+
+ cat <<-EOF
No config found to match: $config_spec
in $wxconfdir
EOF
+ fi
+
else
echo " Specification was ambiguous. Use additional feature options"
echo " to choose between alternate matches."
done
fi
+ _legacy_configs=$(find_legacy_configs)
+ if [ -n "$_legacy_configs" ]; then
+ echo
+ echo " Legacy configs available in $prefix:"
+ for d in $_legacy_configs; do
+ echo " ${d%-config}"
+ done
+ fi
+
echo
exit
fi
fi
if [ $_numdelegates -eq 0 ]; then
- cat 1>&2 <<-EOF
+
+ _last_chance=$(find_best_legacy_config)
+ if [ -n "$_last_chance" ]; then
+
+ for arg; do
+ case "$arg" in
+ --prefix*|--exec-prefix*| \
+ --version|--release|--basename| \
+ --static|--libs|--gl_libs| \
+ --cppflags|--cflags|--cxxflags| \
+ --cc|--cxx|--ld| \
+ --rezflags|--inplace)
+ _legacy_args="$_legacy_args $arg"
+ ;;
+
+ --static|--static=y*|--static=Y*)
+ _legacy_args="$_legacy_args --static"
+ ;;
+ esac
+ done
+
+ if [ -n "$WXDEBUG" ]; then
+ decho " found a suitable legacy delegate: $_last_chance"
+ decho "--> $prefix/bin/$_last_chance $_legacy_args"
+ fi
+
+ export WXCONFIG_DELEGATED=yes
+ $prefix/bin/$_last_chance $_legacy_args
+ exit
+
+ else
+
+ cat 1>&2 <<-EOF
Warning: No config found to match: $config_spec
in $wxconfdir
EOF
- # PIPEDREAM: This will probably give Vadim an aneurysm if I
- # mention it out of context, but from here we are actually
- # just a teensy step from simply building the missing config
- # for the user on the fly if this is an in tree wx-config.
+ # PIPEDREAM: This will probably give Vadim an aneurysm if I
+ # mention it out of context, but from here we are actually
+ # just a teensy step from simply building the missing config
+ # for the user on the fly if this is an in tree wx-config.
- exit 1
+ exit 1
+ fi
fi
if [ $_numdelegates -gt 1 ]; then
else # MONOLITHIC = 0
- # Import everything by default, and base if it was omitted.
+ # Import everything by default, expand std if specified, or add base if omitted.
if [ -z "$wx_libs" ]; then
wx_libs="@CORE_GUI_LIBS@ @CORE_BASE_LIBS@"
- elif ! match_field base $wx_libs ; then
- wx_libs="$wx_libs base"
- fi
-
- # Expand the magic library 'std' to the default set.
- # Only add those not already specified to future-proof
- # against changes to std which would otherwise break
- # people's builds.
- if match_field std $wx_libs; then
+ elif match_field std $wx_libs; then
+ # Bubble any libs that were already specified to the end
+ # of the list and ensure static linking order is retained.
wx_libs=$(remove_field std $wx_libs)
for i in @CORE_GUI_LIBS@ @CORE_BASE_LIBS@; do
- match_field "$i" $wx_libs || wx_libs="$wx_libs $i"
+ wx_libs="$(remove_field $i $wx_libs) $i"
done
+ elif ! match_field base $wx_libs ; then
+ wx_libs="$wx_libs base"
fi
using_gui=no