X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bd63020652eca0834f37a3da7d08c05ec07331d1..f5008769d6ba48ecb78c287715bec5533c2eb32a:/wx-config.in?ds=inline diff --git a/wx-config.in b/wx-config.in index d72a5f4c35..170e528dc4 100755 --- a/wx-config.in +++ b/wx-config.in @@ -46,15 +46,16 @@ usage() wx-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--release] [--version-full] [--list] [--selected-config] [--host=HOST] [--toolkit=TOOLKIT] [--universal[=yes|no]] [--unicode[=yes|no]] [--debug[=yes|no]] - [--static[=yes|no]] [--version[=VERSION]] [--basename] [--cc] - [--cppflags] [--cflags] [--cxxflags] [--rescomp] [--cxx] - [--linkdeps] [--ld] [--utility=UTIL] + [--static[=yes|no]] [--version[=VERSION]] [--basename] + [--cc] [--cxx] [--cppflags [base]] [--cxxflags [base]] [--cflags] + [--rescomp] [--linkdeps] [--ld] [--utility=UTIL] [--libs [LIBS...]] [--optional-libs [LIBS...]] wx-config returns information about the wxWidgets libraries available on your system. It may be used to retrieve the information required to build - applications using these libraries using --cppflags, --cflags, --cxxflags - and --libs options. + applications using these libraries using --cppflags, --cxxflags, --cflags, + 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 --prefix, --host, --toolkit, --unicode, --debug, --static, --universal and @@ -72,7 +73,8 @@ usage() list below. The --optional-libs parameter should be followed by a list of libs that should be linked to, but only if they are available. - Available libraries in this build are : @BUILT_WX_LIBS@ + Available libraries in this build are: + @BUILT_WX_LIBS@ EOF @@ -265,6 +267,15 @@ for arg do 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` if validate_arg wxconfig flag "$_name" yes || @@ -276,15 +287,22 @@ for arg do *) # We validate the parameters later ... - if [ "$_name" = "libs" ] - then + + if [ "$_name" = "cxxflags" ] || [ "$_name" = "cppflags" ] || [ "$_name" = "cflags" ]; then + cxx_parameters="${cxx_parameters:+$cxx_parameters }$arg" + elif [ "$_name" = "libs" ]; then libs_parameters="${libs_parameters:+$libs_parameters }$arg" - elif [ "$_name" = "optional_libs" ] - then + elif [ "$_name" = "optional_libs" ]; then optional_libs_parameters="${optional_libs_parameters:+$optional_libs_parameters }$arg" else - # These are unattached args and signify an error - input_parameters="${input_parameters:+$input_parameters }$arg" + # normally anything here are unattached arguments and signify an + # error but for compatibility with the 2.8 wx-config and, + # especially, configure scripts generated using 2.8 wxwin.m4 and + # hence doing `wx-config --version base,std`, we ignore anything + # following this option, just as 2.8 version used to do + if [ "$_name" != "version" ]; then + input_parameters="${input_parameters:+$input_parameters }$arg" + fi fi continue ;; @@ -300,13 +318,7 @@ done check_yesno_option universal widgetset univ check_yesno_option unicode chartype unicode ansi check_yesno_option debug debugtype debug release -check_yesno_option static linkage '-static' - -# Display error for unknown input parameters -if [ $input_parameters ]; then - echo "Extra unknown input parameters : $input_parameters" - exit 1 -fi +check_yesno_option static linkage static # Dump everything we just read in debug mode. if [ -n "$WXDEBUG" ]; then @@ -331,6 +343,7 @@ if [ -n "$WXDEBUG" ]; then for o in $output_options; do decho " $o = `eval echo \"\\\$output_option_$o\"`" done + decho " query options = $query_options" fi @@ -342,13 +355,13 @@ fi # -------------------------------------------------------------- # 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 # this will return a mask derived from the command line options that were used. get_mask() { [ $# -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. @@ -366,20 +379,21 @@ is_cross && target="@host_alias@" # Define a pseudo-hash to contain the specification of this wx-config # instance and its associated library. -this_host="${target:+${target}-}" +this_host="${target:+${target}}" this_toolkit="@TOOLKIT_DIR@@TOOLKIT_VERSION@" this_widgetset="@WIDGET_SET@" this_chartype="@WX_CHARTYPE@" this_debugtype="@WX_DEBUGTYPE@" this_flavour="@WX_FLAVOUR@" this_version="@WX_RELEASE@" -this_linkage=`[ "x@SHARED@" = "x1" ] || echo '-static'` +this_linkage=`[ "x@SHARED@" = "x1" ] || echo 'static'` this_config=`get_mask this` + # Extract the user specification from the options parsed. 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_widgetset=${input_option_widgetset-'(univ)?'} m_chartype=${input_option_chartype:-'(unicode|ansi)'} @@ -387,7 +401,7 @@ m_debugtype=${input_option_debugtype:-'(debug|release)'} m_flavour=${input_option_flavour:+-$input_option_flavour} m_flavour=${m_flavour:-${input_option_flavour-'(-[^-]+)?'}} m_version=${input_option_version:-'[0-9]+\.[0-9]+'} -m_linkage=${input_option_linkage-'(-static)?'} +m_linkage=${input_option_linkage-'?(static)?'} configmask="^`get_mask`$" @@ -798,7 +812,8 @@ if not user_mask_fits "$this_config" ; then decho "--> $prefix/bin/$_last_chance $_legacy_args" fi - export WXCONFIG_DELEGATED=yes + WXCONFIG_DELEGATED=yes + export WXCONFIG_DELEGATED $prefix/bin/$_last_chance $_legacy_args exit @@ -837,7 +852,8 @@ EOF decho "--> $wxconfdir/$best_delegate $*" fi - export WXCONFIG_DELEGATED=yes + WXCONFIG_DELEGATED=yes + export WXCONFIG_DELEGATED $wxconfdir/$best_delegate $* exit fi @@ -859,7 +875,8 @@ EOF decho "--> $wxconfdir/`find_eligible_delegates $configmask` $*" fi - export WXCONFIG_DELEGATED=yes + WXCONFIG_DELEGATED=yes + export WXCONFIG_DELEGATED $wxconfdir/`find_eligible_delegates $configmask` $* exit fi @@ -892,9 +909,12 @@ bindir="@bindir@" [ -z "$output_option_basename" ] || echo "@WX_LIBRARY_BASENAME_GUI@" [ -z "$output_option_cc" ] || echo "@CC@" [ -z "$output_option_cxx" ] || echo "@CXX@" -[ -z "$output_option_ld" ] || echo "@EXE_LINKER@" +[ -z "$output_option_ld" ] || echo "@CXX@ -o" [ -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) if [ -n "$output_option_rezflags" ]; then @@ -969,7 +989,6 @@ ldlibs_core="@EXTRALIBS_GUI@" ldlibs_gl="@OPENGL_LIBS@" ldlibs_html="@EXTRALIBS_HTML@" ldlibs_xml="@EXTRALIBS_XML@" -ldlibs_odbc="@EXTRALIBS_ODBC@" ldlibs_adv="@EXTRALIBS_SDL@" ldlibs_stc="@EXTRALIBS_STC@" @@ -1101,6 +1120,9 @@ done [ -z "$WXDEBUG" ] || decho " user supplied libs: '$wx_libs'" +# Assume we are using the GUI, unless --libs was specified with no GUI libs +using_gui=yes + if is_monolithic; then # Only add additional info if --libs was specified and not just --optional-libs @@ -1119,8 +1141,6 @@ if is_monolithic; then else wx_libs="$wx_libs -lwx_@TOOLCHAIN_NAME@" fi - - using_gui=yes fi else # MONOLITHIC = 0 @@ -1143,15 +1163,17 @@ else # MONOLITHIC = 0 fi fi - using_gui=no - for i in $wx_libs ; do - if match_field "$i" @STD_GUI_LIBS@ ; then - _guildflags="@WXCONFIG_LDFLAGS_GUI@" - using_gui=yes - break - fi - match_field "$i" @STD_BASE_LIBS@ || using_gui=yes - done + if [ -n "$output_option_libs" ]; then + using_gui=no + for i in $wx_libs ; do + if match_field "$i" @STD_GUI_LIBS@; then + _guildflags="@WXCONFIG_LDFLAGS_GUI@" + using_gui=yes + break + fi + match_field "$i" @STD_BASE_LIBS@ || using_gui=yes + done + fi if is_static; then link_deps=`link_deps_for $wx_libs` @@ -1160,6 +1182,12 @@ else # MONOLITHIC = 0 fi +# If they explicitly set "--cxx(pp)flags base" then they don't want the GUI +if [ "$cxx_parameters" = "base" ]; then + using_gui=no +fi + + if [ -n "$WXDEBUG" ]; then decho decho " using libs: '$wx_libs'" @@ -1176,7 +1204,7 @@ fi if is_installed; then _include_cppflags="-I${includedir}/wx-@WX_RELEASE@@WX_FLAVOUR@" else - _include_cppflags="-I${includedir} -I${prefix}/contrib/include" + _include_cppflags="-I${includedir}" fi _cppflags=`echo "-I${libdir}/wx/include/@TOOLCHAIN_FULLNAME@" $_include_cppflags "@WXCONFIG_CPPFLAGS@" $_gui_cppflags` @@ -1253,7 +1281,6 @@ if [ -n "$output_option_rescomp" ]; then "@WXCONFIG_RESFLAGS@" else echo "@RESCOMP@ --include-dir ${includedir}" \ - "--include-dir ${prefix}/contrib/include" \ "@WXCONFIG_RESFLAGS@" fi ;;