[gdal] 02/03: Add patch to support pkg-config for the new libkml.
Sebastiaan Couwenberg
sebastic at moszumanska.debian.org
Thu Aug 20 21:11:56 UTC 2015
This is an automated email from the git hooks/post-receive script.
sebastic pushed a commit to branch experimental
in repository gdal.
commit c32e524261b8e4fdcb9782a6430c88423072ac73
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date: Thu Aug 20 14:58:00 2015 +0200
Add patch to support pkg-config for the new libkml.
---
debian/changelog | 1 +
debian/patches/libkml-pkgconfig | 407 ++++++++++++++++++++++++++++++++++++++++
debian/patches/series | 1 +
3 files changed, 409 insertions(+)
diff --git a/debian/changelog b/debian/changelog
index 864aa04..c585025 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
gdal (1.11.2+dfsg-1~exp7) UNRELEASED; urgency=medium
* Require at least libkml-dev 1.3.0~rc0-3 for boost dependencies.
+ * Add patch to support pkg-config for the new libkml.
-- Bas Couwenberg <sebastic at debian.org> Thu, 20 Aug 2015 14:57:44 +0200
diff --git a/debian/patches/libkml-pkgconfig b/debian/patches/libkml-pkgconfig
new file mode 100644
index 0000000..8b36dbb
--- /dev/null
+++ b/debian/patches/libkml-pkgconfig
@@ -0,0 +1,407 @@
+Description: Add pkg-config support for libkml.
+ The libkml/libkml fork on GitHub supports pkg-config,
+ and no longer includes the third_partry libraries.
+Author: Bas Couwenberg <sebastic at debian.org>
+Forwarded: https://trac.osgeo.org/gdal/ticket/6077
+
+--- a/m4/ax_lib_libkml.m4
++++ b/m4/ax_lib_libkml.m4
+@@ -5,18 +5,26 @@ dnl
+ dnl This macro provides tests of availability of Google libkml library
+ dnl of particular version or newer.
+ dnl
+-dnl libkml - http://code.google.com/p/libkml/
++dnl libkml - https://github.com/google/libkml
+ dnl
+-dnl This macros checks for Google libkml headers and libraries
++dnl A fork of libkml is also available:
++dnl
++dnl https://github.com/libkml/libkml
++dnl
++dnl This macros checks for Google libkml headers and libraries
+ dnl and defines compilation flags.
+-dnl
++dnl
++dnl The libkml fork supports pkg-config, which is tried first.
++dnl If a suitable libkml version is not found with pkg-config, the manual
++dnl checks for the libkml library & include paths are performed.
++dnl
+ dnl Macro supports following options and their values:
+ dnl 1) Single-option usage:
+ dnl --with-libkml - yes, no or path to Google libkml installation prefix
+ dnl 2) Three-options usage (all options are required):
+ dnl --with-libkml=yes
+ dnl --with-libkml-inc - path to base directory with headers
+-dnl --with-libkml-lib - linker flags for
++dnl --with-libkml-lib - linker flags for
+ dnl
+ dnl This macro calls:
+ dnl
+@@ -45,7 +53,7 @@ AC_DEFUN([AX_LIB_LIBKML],
+ ),
+ [
+ if test "$withval" = "yes"; then
+- if test -d /usr/local/include/kml ; then
++ if test -d /usr/local/include/kml ; then
+ libkml_prefix=/usr/local
+ elif test -d /usr/include/kml ; then
+ libkml_prefix=/usr
+@@ -63,12 +71,12 @@ AC_DEFUN([AX_LIB_LIBKML],
+ ],
+ [
+ dnl Default behavior is implicit yes
+- if test -d /usr/local/include/kml ; then
++ if test -d /usr/local/include/kml ; then
+ libkml_prefix=/usr/local
+ elif test -d /usr/include/kml ; then
+ libkml_prefix=/usr
+ else
+- libkml_prefix=""
++ libkml_prefix=""
+ fi
+ ]
+ )
+@@ -88,181 +96,209 @@ AC_DEFUN([AX_LIB_LIBKML],
+ [libkml_lib_flags=""]
+ )
+
+- LIBKML_CFLAGS=""
+- LIBKML_LDFLAGS=""
+- LIBKML_VERSION=""
+-
+- dnl
+- dnl Collect include/lib paths and flags
+- dnl
+- run_libkml_test="no"
+-
+- if test -n "$libkml_prefix"; then
+- libkml_include_dir="$libkml_prefix/include"
+- libkml_include_dir2="$libkml_prefix/include/kml"
+- libkml_include_dir3="$libkml_prefix/include/kml/third_party/boost_1_34_1"
+- if test "$libkml_prefix" = "/usr"; then
+- libkml_lib_flags="-lkmldom -lkmlbase -lkmlengine -lkmlconvenience -lminizip -luriparser"
+- else
+- libkml_lib_flags="-L$libkml_prefix/lib -lkmldom -lkmlbase -lkmlengine -lkmlconvenience -lminizip -luriparser"
+- fi
+- run_libkml_test="yes"
+- elif test "$libkml_requested" = "yes"; then
+- if test -n "$libkml_include_dir" -a -n "$libkml_lib_flags"; then
+- libkml_include_dir2="$libkml_include_dir/kml"
+- libkml_include_dir3="$libkml_include_dir/kml/third_party/boost_1_34_1"
+- run_libkml_test="yes"
+- fi
+- else
+- run_libkml_test="no"
+- fi
+-
+ dnl
+- dnl Check libkml headers/libraries
++ dnl Try pkg-config first
+ dnl
+- if test "$run_libkml_test" = "yes"; then
++ PKG_PROG_PKG_CONFIG([0.25]) # check and set $PKG_CONFIG
++
++ PKG_CHECK_MODULES([LIBKML], [libkml >= $1],
++ [LIBKML_VERSION=`$PKG_CONFIG --modversion libkml`],
++ [LIBKML_VERSION=;])
++
++ if test -n "$LIBKML_VERSION" -a -n "$libkml_prefix"; then
++ HAVE_LIBKML="yes"
+
+- saved_CPPFLAGS="$CPPFLAGS"
+- CPPFLAGS="$CPPFLAGS -I$libkml_include_dir -I$libkml_include_dir2 -I$libkml_include_dir3"
++ LIBKML_LDFLAGS="$LIBKML_LIBS"
+
+- saved_LIBS="$LIBS"
+- LIBS="$LIBS $libkml_lib_flags"
++ AC_MSG_CHECKING([for LIBKML CFLAGS])
++ AC_MSG_RESULT([$LIBKML_CFLAGS])
++
++ AC_MSG_CHECKING([for LIBKML LDFLAGS])
++ AC_MSG_RESULT([$LIBKML_LDFLAGS])
++
++ AC_MSG_CHECKING([for LIBKML VERSION])
++ AC_MSG_RESULT([$LIBKML_VERSION])
++
++ AC_SUBST([LIBKML_CFLAGS])
++ AC_SUBST([LIBKML_LDLAGS])
++ AC_SUBST([LIBKML_VERSION])
++ else
++ LIBKML_CFLAGS=""
++ LIBKML_LDFLAGS=""
++ LIBKML_VERSION=""
+
+ dnl
+- dnl Check headers
++ dnl Collect include/lib paths and flags
+ dnl
+- AC_MSG_CHECKING([for Google libkml headers in $libkml_include_dir, $libkml_include_dir2, and $libkml_include_dir3])
++ run_libkml_test="no"
++
++ if test -n "$libkml_prefix"; then
++ libkml_include_dir="$libkml_prefix/include"
++ libkml_include_dir2="$libkml_prefix/include/kml"
++ libkml_include_dir3="$libkml_prefix/include/kml/third_party/boost_1_34_1"
++ if test "$libkml_prefix" = "/usr"; then
++ libkml_lib_flags="-lkmldom -lkmlbase -lkmlengine -lkmlconvenience -lminizip -luriparser"
++ else
++ libkml_lib_flags="-L$libkml_prefix/lib -lkmldom -lkmlbase -lkmlengine -lkmlconvenience -lminizip -luriparser"
++ fi
++ run_libkml_test="yes"
++ elif test "$libkml_requested" = "yes"; then
++ if test -n "$libkml_include_dir" -a -n "$libkml_lib_flags"; then
++ libkml_include_dir2="$libkml_include_dir/kml"
++ libkml_include_dir3="$libkml_include_dir/kml/third_party/boost_1_34_1"
++ run_libkml_test="yes"
++ fi
++ else
++ run_libkml_test="no"
++ fi
+
+- AC_LANG_PUSH([C++])
+- AC_COMPILE_IFELSE([
+- AC_LANG_PROGRAM(
+- [[
+-@%:@include <kml/dom.h>
+- ]],
+- [[]]
+- )],
+- [
+- LIBKML_CFLAGS="-I$libkml_include_dir -I$libkml_include_dir2 -I$libkml_include_dir3"
+- libkml_header_found="yes"
+- AC_MSG_RESULT([found])
+- ],
+- [
+- libkml_header_found="no"
+- AC_MSG_RESULT([not found])
+- ]
+- )
+- AC_LANG_POP([C++])
+-
+ dnl
+- dnl Check libraries
++ dnl Check libkml headers/libraries
+ dnl
+- if test "$libkml_header_found" = "yes"; then
++ if test "$run_libkml_test" = "yes"; then
+
+- AC_MSG_CHECKING([for Google libkml libraries])
++ saved_CPPFLAGS="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS -I$libkml_include_dir -I$libkml_include_dir2 -I$libkml_include_dir3"
++
++ saved_LIBS="$LIBS"
++ LIBS="$LIBS $libkml_lib_flags"
++
++ dnl
++ dnl Check headers
++ dnl
++ AC_MSG_CHECKING([for Google libkml headers in $libkml_include_dir, $libkml_include_dir2, and $libkml_include_dir3])
+
+ AC_LANG_PUSH([C++])
+- AC_LINK_IFELSE([
++ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM(
+ [[
+ @%:@include <kml/dom.h>
+ ]],
+- [[
+-kmldom::KmlFactory* factory = kmldom::KmlFactory::GetFactory();
+- ]]
++ [[]]
+ )],
+ [
+- LIBKML_LDFLAGS="$libkml_lib_flags"
+- libkml_lib_found="yes"
++ LIBKML_CFLAGS="-I$libkml_include_dir -I$libkml_include_dir2 -I$libkml_include_dir3"
++ libkml_header_found="yes"
+ AC_MSG_RESULT([found])
+ ],
+ [
+- libkml_lib_found="no"
++ libkml_header_found="no"
+ AC_MSG_RESULT([not found])
+ ]
+ )
+ AC_LANG_POP([C++])
+- fi
+
+- CPPFLAGS="$saved_CPPFLAGS"
+- LIBS="$saved_LIBS"
+- fi
++ dnl
++ dnl Check libraries
++ dnl
++ if test "$libkml_header_found" = "yes"; then
++
++ AC_MSG_CHECKING([for Google libkml libraries])
++
++ AC_LANG_PUSH([C++])
++ AC_LINK_IFELSE([
++ AC_LANG_PROGRAM(
++ [[
++@%:@include <kml/dom.h>
++ ]],
++ [[
++kmldom::KmlFactory* factory = kmldom::KmlFactory::GetFactory();
++ ]]
++ )],
++ [
++ LIBKML_LDFLAGS="$libkml_lib_flags"
++ libkml_lib_found="yes"
++ AC_MSG_RESULT([found])
++ ],
++ [
++ libkml_lib_found="no"
++ AC_MSG_RESULT([not found])
++ ]
++ )
++ AC_LANG_POP([C++])
++ fi
+
+- AC_MSG_CHECKING([for Google libkml])
++ CPPFLAGS="$saved_CPPFLAGS"
++ LIBS="$saved_LIBS"
++ fi
+
+- if test "$run_libkml_test" = "yes"; then
+- if test "$libkml_header_found" = "yes" -a "$libkml_lib_found" = "yes"; then
++ AC_MSG_CHECKING([for Google libkml])
+
+- AC_SUBST([LIBKML_CFLAGS])
+- AC_SUBST([LIBKML_LDFLAGS])
++ if test "$run_libkml_test" = "yes"; then
++ if test "$libkml_header_found" = "yes" -a "$libkml_lib_found" = "yes"; then
+
+- HAVE_LIBKML="yes"
+- else
+- HAVE_LIBKML="no"
+- fi
++ AC_SUBST([LIBKML_CFLAGS])
++ AC_SUBST([LIBKML_LDFLAGS])
+
+- AC_MSG_RESULT([$HAVE_LIBKML])
++ HAVE_LIBKML="yes"
++ else
++ HAVE_LIBKML="no"
++ fi
+
+- dnl
+- dnl Check version
+- dnl
+- if test "$HAVE_LIBKML" = "yes"; then
++ AC_MSG_RESULT([$HAVE_LIBKML])
+
+- libkml_version_req=ifelse([$1], [], [], [$1])
+-
+- if test -n "$libkml_version_req"; then
+-
+- AC_MSG_CHECKING([if Google libkml version is >= $libkml_version_req])
+-
+- if test -f "$libkml_include_dir2/base/version.h"; then
+-
+- libkml_major=$(sed -n '/^#define LIBKML_MAJOR_VERSION.*$/{s/\([^0-9]*\)\([0-9]*\).*/\2/;P;}' \
+- $libkml_include_dir2/base/version.h)
+- libkml_minor=$(sed -n '/^#define LIBKML_MINOR_VERSION.*$/{s/\([^0-9]*\)\([0-9]*\).*/\2/;P;}' \
+- $libkml_include_dir2/base/version.h)
+- libkml_revision=$(sed -n '/^#define LIBKML_MICRO_VERSION.*$/{s/\([^0-9]*\)\([0-9]*\).*/\2/;P;}' \
+- $libkml_include_dir2/base/version.h)
+-
+- LIBKML_VERSION="$libkml_major.$libkml_minor.$libkml_revision"
+- AC_SUBST([LIBKML_VERSION])
+-
+- dnl Decompose required version string and calculate numerical representation
+- libkml_version_req_major=`expr $libkml_version_req : '\([[0-9]]*\)'`
+- libkml_version_req_minor=`expr $libkml_version_req : '[[0-9]]*\.\([[0-9]]*\)'`
+- libkml_version_req_revision=`expr $libkml_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
+- if test "x$libkml_version_req_revision" = "x"; then
+- libkml_version_req_revision="0"
+- fi
+-
+- libkml_version_req_number=`expr $libkml_version_req_major \* 10000 \
+- \+ $libkml_version_req_minor \* 100 \
+- \+ $libkml_version_req_revision`
+-
+- dnl Calculate numerical representation of detected version
+- libkml_version_number=`expr $libkml_major \* 10000 \
+- \+ $libkml_minor \* 100 \
+- \+ $libkml_revision`
+-
+- libkml_version_check=`expr $libkml_version_number \>\= $libkml_version_req_number`
+- if test "$libkml_version_check" = "1"; then
+- AC_MSG_RESULT([yes])
++ dnl
++ dnl Check version
++ dnl
++ if test "$HAVE_LIBKML" = "yes"; then
++
++ libkml_version_req=ifelse([$1], [], [], [$1])
++
++ if test -n "$libkml_version_req"; then
++
++ AC_MSG_CHECKING([if Google libkml version is >= $libkml_version_req])
++
++ if test -f "$libkml_include_dir2/base/version.h"; then
++
++ libkml_major=$(sed -n '/^#define LIBKML_MAJOR_VERSION.*$/{s/\([^0-9]*\)\([0-9]*\).*/\2/;P;}' \
++ $libkml_include_dir2/base/version.h)
++ libkml_minor=$(sed -n '/^#define LIBKML_MINOR_VERSION.*$/{s/\([^0-9]*\)\([0-9]*\).*/\2/;P;}' \
++ $libkml_include_dir2/base/version.h)
++ libkml_revision=$(sed -n '/^#define LIBKML_MICRO_VERSION.*$/{s/\([^0-9]*\)\([0-9]*\).*/\2/;P;}' \
++ $libkml_include_dir2/base/version.h)
++
++ LIBKML_VERSION="$libkml_major.$libkml_minor.$libkml_revision"
++ AC_SUBST([LIBKML_VERSION])
++
++ dnl Decompose required version string and calculate numerical representation
++ libkml_version_req_major=`expr $libkml_version_req : '\([[0-9]]*\)'`
++ libkml_version_req_minor=`expr $libkml_version_req : '[[0-9]]*\.\([[0-9]]*\)'`
++ libkml_version_req_revision=`expr $libkml_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
++ if test "x$libkml_version_req_revision" = "x"; then
++ libkml_version_req_revision="0"
++ fi
++
++ libkml_version_req_number=`expr $libkml_version_req_major \* 10000 \
++ \+ $libkml_version_req_minor \* 100 \
++ \+ $libkml_version_req_revision`
++
++ dnl Calculate numerical representation of detected version
++ libkml_version_number=`expr $libkml_major \* 10000 \
++ \+ $libkml_minor \* 100 \
++ \+ $libkml_revision`
++
++ libkml_version_check=`expr $libkml_version_number \>\= $libkml_version_req_number`
++ if test "$libkml_version_check" = "1"; then
++ AC_MSG_RESULT([yes])
++ else
++ AC_MSG_RESULT([no])
++ AC_MSG_WARN([Found Google libkml ${LIBKML_VERSION}, which is older than required (${libkml_version_req}). KML support disabled.])
++ HAVE_LIBKML="no"
++ fi
+ else
+ AC_MSG_RESULT([no])
+- AC_MSG_WARN([Found Google libkml ${LIBKML_VERSION}, which is older than required (${libkml_version_req}). KML support disabled.])
+- HAVE_LIBKML="no"
++ AC_MSG_WARN([Missing header $libkml_include_dir2/base/bersion.hpp. Unable to determine Google libkml version.])
+ fi
+- else
+- AC_MSG_RESULT([no])
+- AC_MSG_WARN([Missing header $libkml_include_dir2/base/bersion.hpp. Unable to determine Google libkml version.])
+ fi
+ fi
+- fi
+
+- else
+- HAVE_LIBKML="no"
+- AC_MSG_RESULT([$HAVE_LIBKML])
++ else
++ HAVE_LIBKML="no"
++ AC_MSG_RESULT([$HAVE_LIBKML])
+
+- if test "$libkml_requested" = "yes"; then
+- AC_MSG_WARN([Google libkml support requested but headers or library not found. Specify valid prefix of libkml using --with-libkml=@<:@DIR@:>@ or provide include directory and linker flags using --with-libkml-inc and --with-libkml-lib])
++ if test "$libkml_requested" = "yes"; then
++ AC_MSG_WARN([Google libkml support requested but headers or library not found. Specify valid prefix of libkml using --with-libkml=@<:@DIR@:>@ or provide include directory and linker flags using --with-libkml-inc and --with-libkml-lib])
++ fi
+ fi
+ fi
+ ])
diff --git a/debian/patches/series b/debian/patches/series
index ba0fef6..4938718 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -29,3 +29,4 @@ hardening
recommanded-typo
perl-vendor
existant-typo
+libkml-pkgconfig
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/gdal.git
More information about the Pkg-grass-devel
mailing list