⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wx-config.in

📁 A*算法 A*算法 A*算法 A*算法A*算法A*算法
💻 IN
📖 第 1 页 / 共 3 页
字号:
                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 + -