[PATCH 2/8] Adjust expected path for native Windows test

Dan Nicholson dbn.lists at gmail.com
Sat Apr 6 09:17:38 PDT 2013


When check-path is run on native Windows (MINGW), that path reported
by `pkg-config --variable=pc_path pkg-config` is adjusted to the
directory pkg-config is run from. Adjust the expected result based on
getting the current directory from cmd in Windows format.
---
 check/check-path   | 29 +++++++++++++++++++++--------
 check/config.sh.in |  2 ++
 configure.ac       |  1 +
 3 files changed, 24 insertions(+), 8 deletions(-)

diff --git a/check/check-path b/check/check-path
index fecfc06..37244d9 100755
--- a/check/check-path
+++ b/check/check-path
@@ -9,14 +9,27 @@ PKG_CONFIG_PATH="$srcdir/sub" run_test --exists sub1
 
 # default pkg-config path, making sure to resolve the variables fully
 eval pc_path="$pc_path"
-case ${MACHTYPE} in
-*-msys)
-    # Make sure path doesn't get mangled on MSYS
-    RESULT=$(echo $pc_path | sed 's,/,\\/,g')
-    ;;
-*)
+if [ "$native_win32" = yes ]; then
+    # This is pretty hacky. On native win32 (MSYS/MINGW), pkg-config
+    # builds the default path from the installation directory. It
+    # then adds lib/pkgconfig and share/pkgconfig to it. Normally,
+    # the autoconf build directory would be used, but that path is in
+    # Unix format.
+    if [ "$OSTYPE" = msys ]; then
+        # MSYS has "pwd -W" to get the current directory in Windows format
+        pcdir=$(cd $top_builddir/.libs && pwd -W)
+    else
+        # Assume we have cmd somewhere to get variable %cd%. Make sure
+        # to strip carriage returns.
+        pcdir=$(cd $top_builddir/.libs &&
+                cmd /C echo %cd% | sed -r 's/\r//g')
+    fi
+    win_path="$pcdir/lib/pkgconfig;$pcdir/share/pkgconfig"
+
+    # Convert from forward slashes to Windows backslashes
+    RESULT=$(echo $win_path | sed 's,/,\\,g')
+else
     RESULT=$pc_path
-    ;;
-esac
+fi
 unset PKG_CONFIG_LIBDIR
 run_test --variable=pc_path pkg-config
diff --git a/check/config.sh.in b/check/config.sh.in
index 91f20a2..68fa097 100644
--- a/check/config.sh.in
+++ b/check/config.sh.in
@@ -2,6 +2,7 @@
 # Settings from the configure script
 #
 
+top_builddir=@top_builddir@
 prefix=@prefix@
 exec_prefix=@exec_prefix@
 includedir=@includedir@
@@ -13,3 +14,4 @@ system_include_path="@system_include_path@"
 system_library_path="@system_library_path@"
 list_indirect_deps=@use_indirect_deps@
 PACKAGE_VERSION=@PACKAGE_VERSION@
+native_win32=@native_win32@
diff --git a/configure.ac b/configure.ac
index 4ed7e4d..4de9b16 100644
--- a/configure.ac
+++ b/configure.ac
@@ -147,6 +147,7 @@ case "$host" in
   ;;
 esac
 AC_MSG_RESULT([$native_win32])
+AC_SUBST([native_win32])
 AM_CONDITIONAL(NATIVE_WIN32, [test "x$native_win32" = xyes])
 
 dnl
-- 
1.8.1.4



More information about the pkg-config mailing list