[latexila/wip/build-system-update] build: use PKG_CHECK_MODULES



commit 0882b8bb8b6f3e472463024fa78a39a8ff3aa992
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Sun Dec 18 13:46:04 2016 +0100

    build: use PKG_CHECK_MODULES
    
    All the separate pkg-config calls were done after reading:
    http://tirania.org/blog/archive/2012/Oct-20.html
    ("Drowning Good Ideas with Bloat. The tale of pkg.m4."
    by Miguel de Icaza)
    
    But all the GNOME modules I contribute to use PKG_CHECK_MODULES or
    AX_PKG_CHECK_MODULES for a library. With those macros, it shows all the
    errors at once (if several libs are missing or too old) instead of
    aborting at the first error.

 configure.ac                |   57 ++++++++++---------------------------------
 src/Makefile.am             |    4 +++
 src/evince/Makefile.am      |    7 ++++-
 src/gedit/Makefile.am       |    6 ++++
 src/liblatexila/Makefile.am |    6 ++++-
 tests/Makefile.am           |    4 ++-
 6 files changed, 37 insertions(+), 47 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index e805fe7..11c0558 100644
--- a/configure.ac
+++ b/configure.ac
@@ -81,52 +81,21 @@ AM_PROG_VALAC([${VALA_REQUIRED_VERSION}],
               [found_vala=true]
              [found_vala=false])
 
-# Checks for dependencies
-
-if ! pkg-config --atleast-version=${GLIB_REQUIRED_VERSION} glib-2.0; then
-       AC_MSG_ERROR([glib-2.0 >= ${GLIB_REQUIRED_VERSION} required.])
-fi
-
-if ! pkg-config --atleast-version=${GLIB_REQUIRED_VERSION} gio-2.0; then
-       AC_MSG_ERROR([gio-2.0 >= ${GLIB_REQUIRED_VERSION} required.])
-fi
+AX_REQUIRE_DEFINED([PKG_PROG_PKG_CONFIG])
+PKG_PROG_PKG_CONFIG
 
-if ! pkg-config --atleast-version=${GTK_REQUIRED_VERSION} gtk+-3.0; then
-       AC_MSG_ERROR([gtk+-3.0 >= ${GTK_REQUIRED_VERSION} required.])
-fi
-
-if ! pkg-config --atleast-version=${GTKSOURCEVIEW_REQUIRED_VERSION} gtksourceview-3.0; then
-       AC_MSG_ERROR([gtksourceview-3.0 >= ${GTKSOURCEVIEW_REQUIRED_VERSION} required.])
-fi
-
-if ! pkg-config --atleast-version=${GTEF_REQUIRED_VERSION} gtef-2; then
-       AC_MSG_ERROR([gtef-2 >= ${GTEF_REQUIRED_VERSION} required.])
-fi
-
-if ! pkg-config --atleast-version=${GSPELL_REQUIRED_VERSION} gspell-1; then
-       AC_MSG_ERROR([gspell-1 ${GSPELL_REQUIRED_VERSION} required.])
-fi
-
-if ! pkg-config gsettings-desktop-schemas; then
-       AC_MSG_ERROR([gsettings-desktop-schemas required.])
-fi
-
-if ! pkg-config --atleast-version=${GEE_REQUIRED_VERSION} gee-0.8; then
-       AC_MSG_ERROR([gee-0.8 >= ${GEE_REQUIRED_VERSION} required.])
-fi
-
-dependencies="
-       glib-2.0
-       gio-2.0
-       gtk+-3.0
-       gtksourceview-3.0
-       gtef-2
-       gspell-1
+# Checks for dependencies
+AX_REQUIRE_DEFINED([PKG_CHECK_MODULES])
+PKG_CHECK_MODULES([LATEXILA], [
+       glib-2.0 >= ${GLIB_REQUIRED_VERSION}
+       gio-2.0 >= ${GLIB_REQUIRED_VERSION}
+       gtk+-3.0 >= ${GTK_REQUIRED_VERSION}
+       gtksourceview-3.0 >= ${GTKSOURCEVIEW_REQUIRED_VERSION}
+       gtef-2 >= ${GTEF_REQUIRED_VERSION}
+       gspell-1 >= ${GSPELL_REQUIRED_VERSION}
+       gee-0.8 >= ${GEE_REQUIRED_VERSION}
        gsettings-desktop-schemas
-       gee-0.8"
-
-CFLAGS="$CFLAGS `pkg-config --cflags ${dependencies}`"
-LIBS="$LIBS `pkg-config --libs ${dependencies}`"
+])
 
 # Native Language Support
 AX_REQUIRE_DEFINED([IT_PROG_INTLTOOL])
diff --git a/src/Makefile.am b/src/Makefile.am
index cf99e25..20ec5ac 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -80,7 +80,11 @@ latexila_CPPFLAGS =                  \
        -include config.h               \
        -w
 
+latexila_CFLAGS =              \
+       $(LATEXILA_CFLAGS)
+
 latexila_LDADD =                       \
+       $(LATEXILA_LIBS)                \
        gedit/libgedit.la               \
        liblatexila/liblatexila.la
 
diff --git a/src/evince/Makefile.am b/src/evince/Makefile.am
index ab6f936..be8a377 100644
--- a/src/evince/Makefile.am
+++ b/src/evince/Makefile.am
@@ -1,6 +1,11 @@
 noinst_LTLIBRARIES = libevince.la
 
-libevince_la_CFLAGS = $(WARN_CFLAGS)
+libevince_la_CFLAGS =          \
+       $(LATEXILA_CFLAGS)      \
+       $(WARN_CFLAGS)
+
+libevince_la_LIBADD =          \
+       $(LATEXILA_LIBS)
 
 libevince_built_sources =              \
        evince-gdbus-generated.c        \
diff --git a/src/gedit/Makefile.am b/src/gedit/Makefile.am
index 7c684ec..5d5ef9f 100644
--- a/src/gedit/Makefile.am
+++ b/src/gedit/Makefile.am
@@ -1,5 +1,11 @@
 noinst_LTLIBRARIES = libgedit.la
 
+libgedit_la_CFLAGS =           \
+       $(LATEXILA_CFLAGS)
+
+libgedit_la_LIBADD =           \
+       $(LATEXILA_LIBS)
+
 libgedit_la_SOURCES =          \
        gedit-close-button.c    \
        gedit-close-button.h
diff --git a/src/liblatexila/Makefile.am b/src/liblatexila/Makefile.am
index 77ae22b..a8dbd28 100644
--- a/src/liblatexila/Makefile.am
+++ b/src/liblatexila/Makefile.am
@@ -3,12 +3,16 @@
 noinst_LTLIBRARIES = liblatexila.la
 
 liblatexila_la_CFLAGS =                        \
+       $(LATEXILA_CFLAGS)              \
        $(WARN_CFLAGS)                  \
        $(CODE_COVERAGE_CFLAGS)         \
        -I$(top_builddir)/src/evince
 
 liblatexila_la_LDFLAGS = $(CODE_COVERAGE_LDFLAGS)
-liblatexila_la_LIBADD = ../evince/libevince.la
+
+liblatexila_la_LIBADD =                \
+       $(LATEXILA_LIBS)        \
+       ../evince/libevince.la
 
 liblatexila_headers =                          \
        latexila.h                              \
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 6dc0ba9..f6434e3 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -4,9 +4,11 @@ AM_CPPFLAGS =                                  \
        -I$(top_srcdir)                         \
        -I$(top_srcdir)/src/liblatexila         \
        -I$(top_builddir)/src/liblatexila       \
+       $(LATEXILA_CFLAGS)                      \
        $(WARN_CFLAGS)
 
-LDADD = $(top_builddir)/src/liblatexila/liblatexila.la
+LDADD =        $(top_builddir)/src/liblatexila/liblatexila.la  \
+       $(LATEXILA_LIBS)
 
 build-tools-resources.c: build-tools.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) 
--generate-dependencies $(srcdir)/build-tools.gresource.xml)
        $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate-source 
$(srcdir)/build-tools.gresource.xml


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]