added new wx-config --query-xxx options and use them in (Unix) bakefile presets instead of parsing --selected-config output to fix the use of presets when cross-compiling

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61026 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2009-06-12 17:26:11 +00:00
parent 92ffc98a08
commit e5405b6b21
2 changed files with 29 additions and 13 deletions

View File

@@ -78,7 +78,7 @@ Format-specific notes:
</option> </option>
<set var="WX_PORT_DEFAULT" overwrite="0"> <set var="WX_PORT_DEFAULT" overwrite="0">
$(DOLLAR)(shell $(WX_CONFIG) --selected-config | cut -d '-' -f 1) $(DOLLAR)(shell $(WX_CONFIG) --query-toolkit)
</set> </set>
<option name="WX_PORT"> <option name="WX_PORT">
<values>gtk1,gtk2,msw,x11,motif,mgl,mac,dfb</values> <values>gtk1,gtk2,msw,x11,motif,mgl,mac,dfb</values>
@@ -89,7 +89,7 @@ Format-specific notes:
</option> </option>
<set var="WX_SHARED_DEFAULT" overwrite="0"> <set var="WX_SHARED_DEFAULT" overwrite="0">
$(DOLLAR)(shell if test -z `$(WX_CONFIG) --selected-config | cut -d '-' -f 5`; then echo 1; else echo 0; fi) $(DOLLAR)(shell if test -z `$(WX_CONFIG) --query-linkage`; then echo 1; else echo 0; fi)
</set> </set>
<option name="WX_SHARED"> <option name="WX_SHARED">
<values>0,1</values> <values>0,1</values>
@@ -101,7 +101,7 @@ Format-specific notes:
</option> </option>
<set var="WX_UNICODE_DEFAULT" overwrite="0"> <set var="WX_UNICODE_DEFAULT" overwrite="0">
$(DOLLAR)(shell $(WX_CONFIG) --selected-config | cut -d '-' -f 2 | sed 's/unicode/1/;s/ansi/0/') $(DOLLAR)(shell $(WX_CONFIG) --query-chartype | sed 's/unicode/1/;s/ansi/0/')
</set> </set>
<option name="WX_UNICODE"> <option name="WX_UNICODE">
<values>0,1</values> <values>0,1</values>
@@ -113,7 +113,7 @@ Format-specific notes:
</option> </option>
<set var="WX_DEBUG_DEFAULT" overwrite="0"> <set var="WX_DEBUG_DEFAULT" overwrite="0">
$(DOLLAR)(shell $(WX_CONFIG) --selected-config | cut -d '-' -f 3 | sed 's/debug/1/;s/release/0/') $(DOLLAR)(shell $(WX_CONFIG) --query-debugtype | sed 's/debug/1/;s/release/0/')
</set> </set>
<option name="WX_DEBUG"> <option name="WX_DEBUG">
<values>0,1</values> <values>0,1</values>
@@ -125,7 +125,7 @@ Format-specific notes:
</option> </option>
<set var="WX_VERSION_DEFAULT" overwrite="0"> <set var="WX_VERSION_DEFAULT" overwrite="0">
$(DOLLAR)(shell $(WX_CONFIG) --selected-config | sed -e 's/.*-\([0-9]*\)\.\([0-9]*\)$$/\1\2/') $(DOLLAR)(shell $(WX_CONFIG) --query-version | sed -e 's/\([0-9]*\)\.\([0-9]*\)/\1\2/')
</set> </set>
<option name="WX_VERSION"> <option name="WX_VERSION">
<default-value>$(WX_VERSION_DEFAULT)</default-value> <default-value>$(WX_VERSION_DEFAULT)</default-value>
@@ -176,6 +176,7 @@ Format-specific notes:
$(WX_CONFIG_PORT_FLAG) $(WX_CONFIG_VERSION_FLAG) $(WX_CONFIG_PORT_FLAG) $(WX_CONFIG_VERSION_FLAG)
</set> </set>
<set var="DEFAULT_CXX">`$(DOLLAR)(WX_CONFIG) --cxx`</set>
<set var="WX_CFLAGS">`$(DOLLAR)(WX_CONFIG) --cflags $(WX_CONFIG_FLAGS)`</set> <set var="WX_CFLAGS">`$(DOLLAR)(WX_CONFIG) --cflags $(WX_CONFIG_FLAGS)`</set>
<set var="WX_CXXFLAGS">`$(DOLLAR)(WX_CONFIG) --cxxflags $(WX_CONFIG_FLAGS)`</set> <set var="WX_CXXFLAGS">`$(DOLLAR)(WX_CONFIG) --cxxflags $(WX_CONFIG_FLAGS)`</set>
<set var="WX_CPPFLAGS">`$(DOLLAR)(WX_CONFIG) --cppflags $(WX_CONFIG_FLAGS)`</set> <set var="WX_CPPFLAGS">`$(DOLLAR)(WX_CONFIG) --cppflags $(WX_CONFIG_FLAGS)`</set>

View File

@@ -54,7 +54,8 @@ usage()
wx-config returns information about the wxWidgets libraries available on wx-config returns information about the wxWidgets libraries available on
your system. It may be used to retrieve the information required to build your system. It may be used to retrieve the information required to build
applications using these libraries using --cppflags, --cxxflags, --cflags, applications using these libraries using --cppflags, --cxxflags, --cflags,
and --libs options. and --libs options. And you may query the properties of this configuration
using --query-{host,toolkit,widgetset,chartype,debugtype,version,linkage}.
If multiple builds of wxWidgets are available, you can use the options If multiple builds of wxWidgets are available, you can use the options
--prefix, --host, --toolkit, --unicode, --debug, --static, --universal and --prefix, --host, --toolkit, --unicode, --debug, --static, --universal and
@@ -266,6 +267,15 @@ for arg do
fi fi
;; ;;
--query-*)
_name=`echo $arg | sed 's/^--query-//'`
if match_field "$_name" $wxconfig_schema
then
query_options="${query_options:+$query_options }$_name"
continue
fi
;;
--*) --*)
_name=`option_name $arg` _name=`option_name $arg`
if validate_arg wxconfig flag "$_name" yes || if validate_arg wxconfig flag "$_name" yes ||
@@ -308,7 +318,7 @@ done
check_yesno_option universal widgetset univ check_yesno_option universal widgetset univ
check_yesno_option unicode chartype unicode ansi check_yesno_option unicode chartype unicode ansi
check_yesno_option debug debugtype debug release check_yesno_option debug debugtype debug release
check_yesno_option static linkage '-static' check_yesno_option static linkage static
# Dump everything we just read in debug mode. # Dump everything we just read in debug mode.
if [ -n "$WXDEBUG" ]; then if [ -n "$WXDEBUG" ]; then
@@ -333,6 +343,7 @@ if [ -n "$WXDEBUG" ]; then
for o in $output_options; do for o in $output_options; do
decho " $o = `eval echo \"\\\$output_option_$o\"`" decho " $o = `eval echo \"\\\$output_option_$o\"`"
done done
decho " query options = $query_options"
fi fi
@@ -344,13 +355,13 @@ fi
# -------------------------------------------------------------- # --------------------------------------------------------------
# get_mask [ _hash ] # get_mask [ _hash ]
# Construct a config filename mask from a psuedo-hash of component variables. # Construct a config filename mask from a pseudo-hash of component variables.
# The optional argument is the prefix of the hash to use. If not specified # The optional argument is the prefix of the hash to use. If not specified
# this will return a mask derived from the command line options that were used. # this will return a mask derived from the command line options that were used.
get_mask() get_mask()
{ {
[ $# -gt 0 ] || set m [ $# -gt 0 ] || set m
eval echo "\${$1_host}\${$1_toolkit}\${$1_widgetset}-\${$1_chartype}-\${$1_debugtype}\${$1_linkage}-\${$1_version}\${$1_flavour}" eval echo "\${$1_host:+\$$1_host-}\${$1_toolkit}\${$1_widgetset}-\${$1_chartype}-\${$1_debugtype}\${$1_linkage:+-\$$1_linkage}-\${$1_version}\${$1_flavour}"
} }
# Returns true if this script is for a cross compiled config. # Returns true if this script is for a cross compiled config.
@@ -368,20 +379,21 @@ is_cross && target="@host_alias@"
# Define a pseudo-hash to contain the specification of this wx-config # Define a pseudo-hash to contain the specification of this wx-config
# instance and its associated library. # instance and its associated library.
this_host="${target:+${target}-}" this_host="${target:+${target}}"
this_toolkit="@TOOLKIT_DIR@@TOOLKIT_VERSION@" this_toolkit="@TOOLKIT_DIR@@TOOLKIT_VERSION@"
this_widgetset="@WIDGET_SET@" this_widgetset="@WIDGET_SET@"
this_chartype="@WX_CHARTYPE@" this_chartype="@WX_CHARTYPE@"
this_debugtype="@WX_DEBUGTYPE@" this_debugtype="@WX_DEBUGTYPE@"
this_flavour="@WX_FLAVOUR@" this_flavour="@WX_FLAVOUR@"
this_version="@WX_RELEASE@" this_version="@WX_RELEASE@"
this_linkage=`[ "x@SHARED@" = "x1" ] || echo '-static'` this_linkage=`[ "x@SHARED@" = "x1" ] || echo 'static'`
this_config=`get_mask this` this_config=`get_mask this`
# Extract the user specification from the options parsed. # Extract the user specification from the options parsed.
m_host=${input_option_host:+"${input_option_host}-?"} m_host=${input_option_host:+"${input_option_host}-?"}
m_host=${m_host:-${input_option_host-$this_host}} m_host=${m_host:-$this_host}
m_toolkit=${input_option_toolkit:-'[^-]+'} m_toolkit=${input_option_toolkit:-'[^-]+'}
m_widgetset=${input_option_widgetset-'(univ)?'} m_widgetset=${input_option_widgetset-'(univ)?'}
m_chartype=${input_option_chartype:-'(unicode|ansi)'} m_chartype=${input_option_chartype:-'(unicode|ansi)'}
@@ -389,7 +401,7 @@ m_debugtype=${input_option_debugtype:-'(debug|release)'}
m_flavour=${input_option_flavour:+-$input_option_flavour} m_flavour=${input_option_flavour:+-$input_option_flavour}
m_flavour=${m_flavour:-${input_option_flavour-'(-[^-]+)?'}} m_flavour=${m_flavour:-${input_option_flavour-'(-[^-]+)?'}}
m_version=${input_option_version:-'[0-9]+\.[0-9]+'} m_version=${input_option_version:-'[0-9]+\.[0-9]+'}
m_linkage=${input_option_linkage-'(-static)?'} m_linkage=${input_option_linkage-'?(static)?'}
configmask="^`get_mask`$" configmask="^`get_mask`$"
@@ -900,6 +912,9 @@ bindir="@bindir@"
[ -z "$output_option_ld" ] || echo "@CXX@ -o" [ -z "$output_option_ld" ] || echo "@CXX@ -o"
[ -z "$flag_option_selected_config" ] || echo "$this_config" [ -z "$flag_option_selected_config" ] || echo "$this_config"
for q in $query_options; do
eval echo "\$this_$q"
done
# --rezflags is deprecated and disabled (2005/11/29) # --rezflags is deprecated and disabled (2005/11/29)
if [ -n "$output_option_rezflags" ]; then if [ -n "$output_option_rezflags" ]; then