mirror of
				https://gitlab.gnome.org/GNOME/libxml2.git
				synced 2025-10-30 10:45:36 +03:00 
			
		
		
		
	pkg-config supports `Requires.private` and `Libs.private` fields for static linking. However, if you're building a dynamic binary, then pkg-config will use the non-private fields, even if just the static libxml2 is available. This will result in libxml2 being underlinked, causing the build to fail. The solution is to fold the private fields into the non-private fields when the shared libxml2 is not being built. This works for Autotools and CMake. Meson also knows how to handle this when it automatically generates pkg-config files.
		
			
				
	
	
		
			109 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #! /bin/sh
 | |
| 
 | |
| prefix=@prefix@
 | |
| exec_prefix=@exec_prefix@
 | |
| includedir=@includedir@
 | |
| libdir=@libdir@
 | |
| cflags=
 | |
| libs=
 | |
| 
 | |
| usage()
 | |
| {
 | |
|     cat <<EOF
 | |
| Usage: xml2-config [OPTION]
 | |
| 
 | |
| Known values for OPTION are:
 | |
| 
 | |
|   --prefix=DIR		change libxml prefix [default $prefix]
 | |
|   --exec-prefix=DIR	change libxml exec prefix [default $exec_prefix]
 | |
|   --libs		print library linking information
 | |
|                         add --dynamic to print only shared libraries
 | |
|   --cflags		print pre-processor and compiler flags
 | |
|   --modules		module support enabled
 | |
|   --help		display this help and exit
 | |
|   --version		output version information
 | |
| EOF
 | |
| 
 | |
|     exit $1
 | |
| }
 | |
| 
 | |
| if test $# -eq 0; then
 | |
|     usage 1
 | |
| fi
 | |
| 
 | |
| while test $# -gt 0; do
 | |
|     case "$1" in
 | |
|     -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
 | |
|     *) optarg= ;;
 | |
|     esac
 | |
| 
 | |
|     case "$1" in
 | |
|     --prefix=*)
 | |
| 	prefix=$optarg
 | |
| 	includedir=$prefix/include
 | |
| 	libdir=$prefix/lib
 | |
| 	;;
 | |
| 
 | |
|     --prefix)
 | |
| 	echo $prefix
 | |
| 	;;
 | |
| 
 | |
|     --exec-prefix=*)
 | |
|       exec_prefix=$optarg
 | |
|       libdir=$exec_prefix/lib
 | |
|       ;;
 | |
| 
 | |
|     --exec-prefix)
 | |
|       echo $exec_prefix
 | |
|       ;;
 | |
| 
 | |
|     --version)
 | |
| 	echo @VERSION@
 | |
| 	exit 0
 | |
| 	;;
 | |
| 
 | |
|     --help)
 | |
| 	usage 0
 | |
| 	;;
 | |
| 
 | |
|     --cflags)
 | |
|         cflags="@XML_INCLUDEDIR@ @XML_CFLAGS@"
 | |
|        	;;
 | |
| 
 | |
|     --libtool-libs)
 | |
| 	if [ -r ${libdir}/@XML_LIBTOOLLIBS@ ]
 | |
| 	then
 | |
| 	    echo ${libdir}/@XML_LIBTOOLLIBS@
 | |
| 	fi
 | |
|         ;;
 | |
| 
 | |
|     --modules)
 | |
|        	echo @WITH_MODULES@
 | |
|        	;;
 | |
| 
 | |
|     --libs)
 | |
|         if [ "$2" = "--dynamic" ]; then
 | |
|             shift
 | |
|             libs="@XML_LIBS@ @XML_PRIVATE_LIBS_NO_SHARED@"
 | |
|         else
 | |
|             libs="@XML_LIBS@ @XML_PRIVATE_LIBS@ @MODULE_PLATFORM_LIBS@ @LIBS@"
 | |
|         fi
 | |
| 
 | |
|         if [ "@XML_LIBDIR@" != "-L/usr/lib" -a "@XML_LIBDIR@" != "-L/usr/lib64" ]; then
 | |
|             libs="@XML_LIBDIR@ $libs"
 | |
|         fi
 | |
|         ;;
 | |
| 
 | |
|     *)
 | |
| 	usage 1
 | |
| 	;;
 | |
|     esac
 | |
|     shift
 | |
| done
 | |
| 
 | |
| if test -n "$cflags$libs"; then
 | |
|     echo $cflags $libs
 | |
| fi
 | |
| 
 | |
| exit 0
 |