📄 wx-config.in
字号:
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
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
# PIPEDREAM: 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
fi
fi
if [ $_numdelegates -gt 1 ]; then
[ -z "$WXDEBUG" ] || decho " must prune the list of eligible delegates"
best_delegate=$(find_best_delegate)
if [ -n "$best_delegate" ]; then
if [ -n "$WXDEBUG" ]; then
decho " found a suitable delegate: $best_delegate"
decho "--> $wxconfdir/$best_delegate $*"
fi
export WXCONFIG_DELEGATED=yes
$wxconfdir/$best_delegate $*
exit
fi
decho
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"
done
decho
exit 1
fi
if [ -n "$WXDEBUG" ]; then
decho " using the only suitable delegate"
decho "--> $wxconfdir/$(find_eligible_delegates $configmask) $*"
fi
export WXCONFIG_DELEGATED=yes
$wxconfdir/$(find_eligible_delegates $configmask) $*
exit
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.
# --------------------------------------------------------------
[ -z "$WXDEBUG" ] || decho " using this config"
# If the user supplied a prefix, and the in tree config did not
# delegate out to anything in that prefix, then reset the build
# tree prefix to provide the correct output for using this
# uninstalled wx build. Or put more simply:
prefix=${this_prefix-$prefix}
exec_prefix=${this_exec_prefix-$exec_prefix}
includedir="@includedir@"
libdir="@libdir@"
bindir="@bindir@"
# Trivial queries we can answer now.
[ -z "$output_option_prefix" ] || echo $prefix
[ -z "$output_option_exec_prefix" ] || echo $exec_prefix
[ -z "$output_option_release" ] || echo "@WX_RELEASE@"
[ -z "$output_option_version" ] || echo "@WX_VERSION@"
[ -z "$output_option_version_full" ] || echo "@WX_SUBVERSION@"
[ -z "$output_option_basename" ] || echo "@WX_LIBRARY_BASENAME_GUI@"
[ -z "$output_option_rezflags" ] || echo $(eval echo "@MACRESWXCONFIG@")
[ -z "$output_option_cc" ] || echo "@CC@"
[ -z "$output_option_cxx" ] || echo "@CXX@"
[ -z "$output_option_ld" ] || echo "@EXE_LINKER@"
[ -z "$flag_option_selected_config" ] || echo "$this_config"
# The rest are going to need a little more work.
# --------------------------------------------------------------
is_monolithic() { [ "x@MONOLITHIC@" = "x1" ]; }
is_static() { [ -n "$this_linkage" ]; }
is_installed() { [ -z "$this_prefix" ]; }
# Is the user after a support utility?
# If this is a cross build, we need to find and return a suitable
# native utility for the job, so we search:
#
# 1. local build dir (for native uninstalled builds only).
# 2. (optional) user supplied prefix.
# 3. configured install prefix.
# 4. environment $PATH.
#
# and if such a thing still cannot be found, exit signalling an error.
if [ -n "$input_option_utility" ]; then
# This is dumb, in tree binaries should be in a standard location
# like the libs, but work with what we've got for now.
is_cross || _util="$exec_prefix/utils/$input_option_utility/$input_option_utility"
if ! is_installed && [ -x "$_util" ]; then
is_static || _preload="eval LD_LIBRARY_PATH=$exec_prefix/lib"
echo $_preload $_util
exit
fi
IFS=':'
_user_prefix=${input_option_exec_prefix:-$input_option_prefix}
for _util in "${input_option_utility}-@WX_RELEASE@@WX_FLAVOUR@" \
"${input_option_utility}-@WX_RELEASE@" \
"${input_option_utility}"
do
for p in ${_user_prefix:+$_user_prefix/bin} $bindir $PATH; do
[ -z "$WXDEBUG" ] || decho " checking for: '$p/$_util'"
if [ -x "$p/$_util" ]; then
echo "$p/$_util"
exit
fi
done
done
exit 1
fi
# Still here? Then get the options together for building an app.
# ----------------------------------------------------------------
# Additional configuration for individual library components.
ldflags_gl="@LDFLAGS_GL@"
ldlibs_base="@WXCONFIG_EXTRALIBS@"
ldlibs_core="@EXTRALIBS_GUI@"
ldlibs_gl="@OPENGL_LIBS@"
ldlibs_html="@EXTRALIBS_HTML@"
ldlibs_xml="@EXTRALIBS_XML@"
ldlibs_odbc="@EXTRALIBS_ODBC@"
ldlibs_adv="@EXTRALIBS_SDL@"
# lib_flags_for _liblist
# This function returns a list of flags suitable to return with the
# output of --libs for all of the libraries in _liblist. You can
# add support for a new library by adding an entry for it in the
# psuedo-hashes above if it requires additional linker options.
lib_flags_for()
{
[ -z "$WXDEBUG" ] || decho " fetching lib flags for: '$*'"
_all_ldflags=''
_all_libs=''
_wxlibs=''
is_cross && _target="-${target}"
for lib; do
# We evidently can't trust people not to duplicate things in
# configure, or to keep them in any sort of sane order overall,
# so only add unique new fields here even if it takes us a while.
# In the case of libs, we bubble any duplicates to the end,
# because if multiple libs require it, static linking at least
# will require it to come after all of them. So long as local
# order is ok in configure then we should always be able to
# massage a correct result here like this.
#
# FIXME: ldlibs_core is totally bogus. Fix the duplication
# there independently of this. This covers for it, but we
# want to do this anyway because some libs may share common
# deps without a common ancestor in wx. This is not a licence
# for sloppy work elsewhere though and @GUI_TK_LIBRARY should
# be fixed.
for f in $(eval echo \"\$ldflags_$lib\"); do
match_field "$f" $_all_ldflags || _all_ldflags="$_all_ldflags $f"
done
if match_field "$lib" @CORE_BASE_LIBS@ ; then
_libname="@WX_LIBRARY_BASENAME_NOGUI@"
else
_libname="@WX_LIBRARY_BASENAME_GUI@"
fi
[ $lib = base ] || _libname="${_libname}_$lib"
_libname="${_libname}-@WX_RELEASE@$_target"
if is_static; then
_wxlibs="$_wxlibs ${libdir}/lib${_libname}.a"
for f in $(eval echo \"\$ldlibs_$lib\"); do
# Only propagate duplicate -libraries to their latest
# possible position. Do not eliminate any other
# duplicates that might occur. They should be fixed
# in configure long before they get here.
# This started as a workaround for Mac -framework,
# but it seems like a better policy in general, which
# will let the more heinous bugs in configure shake out.
# We should maybe filter *.a here too, but not unless
# we have to.
case "$f" in
-l*) _all_libs="$(remove_field $f $_all_libs) $f" ;;
*) _all_libs="$_all_libs $f" ;;
esac
done
else
_wxlibs="$_wxlibs -l${_libname}"
fi
done
if [ -n "$WXDEBUG" ]; then
decho " retrieved: ldflags = $_all_ldflags"
decho " wxlibs = $_wxlibs"
decho " alllibs = $_all_libs"
fi
echo $_all_ldflags $_wxlibs $_all_libs
}
# this is the strict subset of the above function which returns only the
# (static) libraries themselves: this is used for linkdeps output which should
# output the list of libraries the main program should depend on
#
# of course, this duplication is bad but I'll leave to somebody else the care
# of refactoring this as I don't see any way to do it - VZ.
# This (and the other cruft to support it) should be removed with
# reference to the FIXME above when configure stops piping us a slurry
# of options that need to be decomposed again for most practical uses - RL.
link_deps_for()
{
_wxlibs=''
is_cross && _target="-${target}"
for lib; do
if match_field "$lib" @CORE_BASE_LIBS@ ; then
_libname="@WX_LIBRARY_BASENAME_NOGUI@"
else
_libname="@WX_LIBRARY_BASENAME_GUI@"
fi
[ $lib = base ] || _libname="${_libname}_$lib"
_libname="${_libname}-@WX_RELEASE@$_target"
_wxlibs="$_wxlibs ${libdir}/lib${_libname}.a"
done
echo $_wxlibs
}
# Sanity check the list of libs the user provided us, if any.
# --------------------------------------------------------------
wx_libs=$(echo "$input_parameters" | tr ',' ' ')
[ -z "$WXDEBUG" ] || decho " user supplied libs: '$wx_libs'"
if is_monolithic; then
# Core libs are already built into the blob.
for i in std @CORE_GUI_LIBS@ @CORE_BASE_LIBS@; do
wx_libs=$(remove_field $i $wx_libs)
done
wx_libs="@WXCONFIG_LDFLAGS_GUI@ $(lib_flags_for $wx_libs)"
# We still need the core lib deps for a static build though
if is_static; then
link_deps="${libdir}/libwx_@TOOLCHAIN_NAME@.a"
wx_libs="$wx_libs $link_deps $ldlibs_core $ldlibs_base"
else
wx_libs="$wx_libs -lwx_@TOOLCHAIN_NAME@"
fi
using_gui=yes
else # MONOLITHIC = 0
# 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 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
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
for i in $wx_libs ; do
if match_field "$i" @CORE_GUI_LIBS@ ; then
_guildflags="@WXCONFIG_LDFLAGS_GUI@"
using_gui=yes
break
fi
match_field "$i" @CORE_BASE_LIBS@ || using_gui=yes
done
if is_static; then
link_deps=$(link_deps_for $wx_libs)
fi
wx_libs="$_guildflags $(lib_flags_for $wx_libs)"
fi
if [ -n "$WXDEBUG" ]; then
decho
decho " using libs: '$wx_libs'"
decho " using_gui = $using_gui"
decho
fi
# Endgame. Nothing left to discover now.
# --------------------------------------------------------------
[ "$using_gui" = "yes" ] || _gui_cppflags="-DwxUSE_GUI=0"
if is_installed; then
_include_cppflags="-I${includedir}/wx-@WX_RELEASE@@WX_FLAVOUR@"
else
_include_cppflags="-I${includedir} -I${prefix}/contrib/include"
fi
_cppflags=$(echo "-I${libdir}/wx/include/@TOOLCHAIN_FULLNAME@" $_include_cppflags "@WXDEBUG_DEFINE@" "@TOOLCHAIN_DEFS@" "@TOOLCHAIN_DLL_DEFS@" $_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
[ -z "$output_option_cflags" ] || echo $_cppflags "@CODE_GEN_FLAGS@"
[ -z "$output_option_cxxflags" ] || echo $_cppflags "@CODE_GEN_FLAGS@" "@CODE_GEN_FLAGS_CXX@"
[ -z "$output_option_gl_libs" ] || echo $(lib_flags_for gl)
[ -z "$output_option_linkdeps" ] || echo $link_deps
if [ -n "$output_option_libs" ]; then
is_cross &&
[ "x$libdir" = "x/usr/${target}/lib" ] ||
[ "x$libdir" = "x/usr/lib" ] ||
_ldflags="-L$libdir"
is_installed || [ -n "$flag_option_no_rpath" ] || _rpath="@WXCONFIG_RPATH@"
echo $_ldflags "@LDFLAGS@" $_rpath $wx_libs "@DMALLOC_LIBS@"
fi
# And so that's it, we're done. Have a nice build.
exit 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -