]> git.saurik.com Git - wxWidgets.git/blobdiff - wx-config.in
further separating implementation
[wxWidgets.git] / wx-config.in
index cbe025c4212a8cc67163599f0999babf28769d1a..0123a724cd9a27146aee3ea7c0d0d692e6a28ecc 100755 (executable)
@@ -14,7 +14,7 @@ is_monolithic="@MONOLITHIC@"
 cross_compiling="@cross_compiling@"
 target="@host_alias@"
 static_flag="@STATIC_FLAG@"
-
+inplace_flag="no"
 
 # Misc configuration variables:
 
@@ -48,6 +48,7 @@ TOOLCHAIN_DEFS="@TOOLCHAIN_DEFS@"
 TOOLCHAIN_DLL_DEFS="@TOOLCHAIN_DLL_DEFS@"
 WXCONFIG_INCLUDE="@WXCONFIG_INCLUDE@"
 WX_LARGEFILE_FLAGS="@WX_LARGEFILE_FLAGS@"
+GCC_PRAGMA_FLAGS="@GCC_PRAGMA_FLAGS@"
 CODE_GEN_FLAGS="@CODE_GEN_FLAGS@"
 CODE_GEN_FLAGS_CXX="@CODE_GEN_FLAGS_CXX@"
 LDFLAGS_EXE="@LDFLAGS_EXE@"
@@ -167,6 +168,7 @@ Usage: wx-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--release]
                  [--basename] [--static] [--libs[=LIBS]] [--gl-libs]
                  [--cppflags] [--cflags] [--cxxflags] [--ldflags] [--rezflags]
                  [--cc] [--cxx] [--ld]
+                 [--inplace]
 
 wx-config returns configuration information about the installed
 version of wxWidgets. It may be used to query its version and
@@ -185,14 +187,20 @@ this:
 Note that any other options supplied must come *after* the prefix
 specification for it to take effect.
 
---static must come before --libs and --gl-libs.
+--static must come before --cppflags, --cflags, --cxxflags,
+--libs and --gl-libs.
 
 --libs can take optional argument that contains comma-separated list of
 wxWidgets libraries to link against. This list can include both core
-and contrib libraries.
+and contrib libraries. Special value "std" stands for all libraries linked
+in by default.
 
 --gl-libs option is deprecated, used --libs=gl instead.
 
+The --inplace flag allows wx-config to be used from the wxWindows
+build directory and output flags to use the uninstalled version of
+the headers and libs in the build directory.
+
 EOF
 
     exit $1
@@ -230,10 +238,17 @@ cppflags()
 
     includes="-I${libdir}/wx/include/${TOOLCHAIN_NAME}$includes"
 
+    # in inplace case we need to also add path to contrib headers -- do it
+    # unconditionally as they might be used and we have no way of knowing if
+    # they really are
+    if test $inplace_flag = yes ; then
+        includes="$includes -I${prefix}/contrib/include"
+    fi
+
     if test $static_flag = yes ; then
-        echo $includes ${WXDEBUG_DEFINE} ${TOOLCHAIN_DEFS} ${WXCONFIG_INCLUDE} ${WX_LARGEFILE_FLAGS}
+        echo $includes ${WXDEBUG_DEFINE} ${TOOLCHAIN_DEFS} ${WXCONFIG_INCLUDE} ${WX_LARGEFILE_FLAGS} ${GCC_PRAGMA_FLAGS}
     else
-        echo $includes ${WXDEBUG_DEFINE} ${TOOLCHAIN_DEFS} ${TOOLCHAIN_DLL_DEFS} ${WXCONFIG_INCLUDE} ${WX_LARGEFILE_FLAGS}
+        echo $includes ${WXDEBUG_DEFINE} ${TOOLCHAIN_DEFS} ${TOOLCHAIN_DLL_DEFS} ${WXCONFIG_INCLUDE} ${WX_LARGEFILE_FLAGS} ${GCC_PRAGMA_FLAGS}
     fi
 }
 
@@ -252,6 +267,7 @@ while test $# -gt 0; do
       prefix=`makeabs $srcdir`
       exec_prefix=`makeabs $builddir`
       exec_prefix_set=yes
+      inplace_flag=yes
       update_prefixes
       ;;
     --prefix=*)
@@ -321,12 +337,14 @@ while test $# -gt 0; do
           libs="-L${libdir}"
       fi
 
+      # it's simpler to avoid handling "bae" itself at all as we add it in the
+      # end to the list of libraries anyhow
       # in monolithic build, link against the main library:
       if test "$is_monolithic" = "1" ; then
           # filter out core libs, leave only contrib in libs_list:
           newlist=
           for i in $libs_list ; do
-              if isinlist $i $CORE_BASE_LIBS $CORE_GUI_LIBS ; then
+              if isinlist $i $CORE_GUI_LIBS $CORE_BASE_LIBS; then
                   libs_list="" # do nothing
               else
                   newlist="$newlist $i"
@@ -342,6 +360,33 @@ while test $# -gt 0; do
               echo $libs ${LDFLAGS} ${WXCONFIG_LDFLAGS_GUI} ${WXCONFIG_RPATH} $contrib_libs ${WXCONFIG_LIBS} ${DMALLOC_LIBS}
           fi
       else
+          # we may need to replace "std" alias with its expansion
+          newlist=
+          hadstd=0
+          for i in $libs_list; do
+              case $i in
+                  std)
+                    hadstd=1
+                    ;;
+
+                  base)
+                    # if we have std, we're going to add base anyhow, avoid
+                    # having it twice in the end
+                    if [ $hadstd = 0 ]; then
+                        newlist="$newlist $i";
+                    fi
+                    ;;
+
+                  *)
+                    newlist="$newlist $i"
+                    ;;
+              esac
+          done
+          libs_list="$newlist"
+          if [ $hadstd = 1 ]; then
+              libs_list="$libs_list $CORE_GUI_LIBS $CORE_BASE_LIBS"
+          fi
+
           # in multilib mode, link against all sublibraries:
           wxlibs=`output_libs $libs_list`
           guildflags=`get_ldflags_gui $libs_list`