[gtk-mac-integration: 2/5] Use seperate configure flags for gtk2 and gtk3



commit a7cec796b0ee8eb49fb94110662d6dd3d5c2c462
Author: TingPing <tingping tingping se>
Date:   Sun Jun 29 20:17:03 2014 -0400

    Use seperate configure flags for gtk2 and gtk3
    
    Changes --with-gtk=gtk2 (which was broken) to
            --with-gtk2 and --with-gtk3
    
    This allows you to build against both at the same time.
    
    None of the pkgconfig files should have been changed
    but there is only a single includedir now since they are the same.

 configure.ac                        |   68 +++++++++---------------
 data/Makefile.am                    |   12 ++++-
 data/gtk-mac-integration-gtk2.pc.in |   11 ++++
 data/gtk-mac-integration-gtk3.pc.in |   11 ++++
 data/gtk-mac-integration.pc.in      |   11 ----
 src/Makefile.am                     |   98 ++++++++++++++++++++++-------------
 6 files changed, 120 insertions(+), 91 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 9c3cd15..68100e4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -49,46 +49,31 @@ AC_ARG_ENABLE([menu-images],
 AS_IF([test "x$enable_menu_images" != xno],
       [AC_DEFINE([USE_MENU_IMAGES], 1, [Add images to menu items])])
 
-AC_ARG_WITH([gtk],
-       [AS_HELP_STRING([--with-gtk],
-               [select gtk+-3.0 or gtk+-2.0. @<:@default=check@:>@])],
-       [],
-       [with_gtk=check])
-dnl gtk_major=
-
-AS_ECHO(["Specified Gtk Version $with_gtk"])
-
-AS_IF([test "x$with_gtk" = xgtk+-3.0],
-         [PKG_CHECK_MODULES(MAC, [gtk+-3.0 >= 2.90], GTK_MAJOR="gtk+-3.0",
-           AC_MSG_ERROR([GTK+-3.0 specified but not found]))],
-      [test "x$with_gtk" = xgtk+-2.0],
-         [PKG_CHECK_MODULES(MAC, [gtk+-2.0 >= 2.10], GTK_MAJOR="gtk+-2.0",
-           AC_MSG_ERROR([GTK+-2.0 specified but not found]))],
-      [PKG_CHECK_MODULES(MAC, [gtk+-3.0 >= 3.2],GTK_MAJOR="gtk+-3.0",
-         PKG_CHECK_MODULES(MAC, [gtk+-2.0 >= 2.10], GTK_MAJOR="gtk+-2.0",
-           AC_MSG_ERROR([GTK+-2.0 Wersion 2.10 or higher or GTK+-3.0 Version 3.2.0 or higher is required to 
build gtk-mac-integration])))])
-
-AC_MSG_CHECKING([GTK+ Version])
-
-GTK_VERSION=`$PKG_CONFIG --modversion ${GTK_MAJOR}`
-AC_SUBST(GTK_MAJOR)
-AC_SUBST(GTK_VERSION)
-AC_MSG_RESULT("$GTK_VERSION")
-AM_CONDITIONAL([INTROSPECTION], [test x$GTK_MAJOR = "xgtk+-3.0"])
-
-
-AC_MSG_RESULT("$GTK_MAJOR")
-
-if [test "x$GTK_MAJOR" = xgtk+-3.0]; then
-  GTK_MAC_INTEGRATION_LIB_SUFFIX=gtk3
-else
-  GTK_MAC_INTEGRATION_LIB_SUFFIX=gtk2
+
+AC_ARG_WITH([gtk2], [AS_HELP_STRING([--with-gtk2]), [build against gtk2])] ,[with_gtk2=$withval],
+       [with_gtk2=yes])
+AC_ARG_WITH([gtk3], [AS_HELP_STRING([--with-gtk3], [build against gtk3])] ,[with_gtk3=$withval],
+    [with_gtk3=yes])
+
+if test "x$with_gtk3" = "xyes" ; then
+    PKG_CHECK_MODULES([GTK3], [gtk+-3.0], [],
+       with_gtk3=no
+       AC_MSG_WARN([GTK+-3.0 not found])
+    ])
 fi
 
-AC_SUBST(GTK_MAC_INTEGRATION_LIB_SUFFIX)
+if test "x$with_gtk2" = "xyes" ; then
+    PKG_CHECK_MODULES([GTK2], [gtk+-2.0], [],
+       with_gtk2=no
+       AC_MSG_WARN([GTK+-2.0 not found])
+    ])
+fi
 
-GTK_PYTHON_CHECK
+AM_CONDITIONAL([INTROSPECTION], [test x$with_gtk3 = xyes])
+AM_CONDITIONAL([WITH_GTK2], [test x$with_gtk2 = xyes])
+AM_CONDITIONAL([WITH_GTK3], [test x$with_gtk3 = xyes])
 
+GTK_PYTHON_CHECK
 GOBJECT_INTROSPECTION_CHECK([0.10.1])
 
 # This will cause the automake generated makefiles to pass the correct
@@ -108,17 +93,16 @@ AC_CONFIG_FILES(
        docs/Makefile
        docs/reference/Makefile
        strings/Makefile
+    data/gtk-mac-integration-gtk2.pc
+    data/gtk-mac-integration-gtk3.pc
 )
 
-if [test "x$GTK_MAJOR" = xgtk+-3.0]; then
-  AC_CONFIG_FILES(data/gtk-mac-integration-gtk3.pc:data/gtk-mac-integration.pc.in)
-else
-  AC_CONFIG_FILES(data/gtk-mac-integration-gtk2.pc:data/gtk-mac-integration.pc.in)
-fi
-
 AC_OUTPUT
 
 echo
 echo "Prefix         : $prefix"
+echo "GTK+2 bindings : $with_gtk2"
+echo "GTK+3 bindings : $with_gtk3"
 echo "Python bindings: $enable_python"
+echo "Introspection  : $enable_introspection"
 echo
diff --git a/data/Makefile.am b/data/Makefile.am
index d6aede5..0e1020b 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -1,4 +1,12 @@
-EXTRA_DIST = gtk-mac-integration.pc.in
+EXTRA_DIST = gtk-mac-integration-gtk3.pc.in gtk-mac-integration-gtk2.pc.in
 
 pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = gtk-mac-integration-$(GTK_MAC_INTEGRATION_LIB_SUFFIX).pc
+pkgconfig_DATA =
+
+if WITH_GTK3
+pkgconfig_DATA += gtk-mac-integration-gtk3.pc
+endif
+
+if WITH_GTK2
+pkgconfig_DATA += gtk-mac-integration-gtk2.pc
+endif
diff --git a/data/gtk-mac-integration-gtk2.pc.in b/data/gtk-mac-integration-gtk2.pc.in
new file mode 100644
index 0000000..6892203
--- /dev/null
+++ b/data/gtk-mac-integration-gtk2.pc.in
@@ -0,0 +1,11 @@
+prefix= prefix@
+exec_prefix= exec_prefix@
+libdir= libdir@
+includedir= includedir@
+
+Name: gtk-mac-integration-gtk2
+Description: Mac menu bar and dock integration for GTK+
+Requires: gtk+-2.0
+Version: @VERSION@
+Libs: -L${libdir} -lgtkmacintegration-gtk2
+Cflags: -I${includedir}/gtkmacintegration -DMAC_INTEGRATION
diff --git a/data/gtk-mac-integration-gtk3.pc.in b/data/gtk-mac-integration-gtk3.pc.in
new file mode 100644
index 0000000..7cd4026
--- /dev/null
+++ b/data/gtk-mac-integration-gtk3.pc.in
@@ -0,0 +1,11 @@
+prefix= prefix@
+exec_prefix= exec_prefix@
+libdir= libdir@
+includedir= includedir@
+
+Name: gtk-mac-integration-gtk3
+Description: Mac menu bar and dock integration for GTK+
+Requires: gtk+-3.0
+Version: @VERSION@
+Libs: -L${libdir} -lgtkmacintegration-gtk3
+Cflags: -I${includedir}/gtkmacintegration -DMAC_INTEGRATION
diff --git a/src/Makefile.am b/src/Makefile.am
index e4c7c15..4aaa9ad 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -2,44 +2,61 @@ AM_CPPFLAGS = -I$(top_srcdir) $(WARN_CFLAGS)
 
 -include $(INTROSPECTION_MAKEFILE)
 
-lib_LTLIBRARIES = libgtkmacintegration- GTK_MAC_INTEGRATION_LIB_SUFFIX@.la
-
-libgtkmacintegration_ GTK_MAC_INTEGRATION_LIB_SUFFIX@_la_SOURCES =                     \
-       GtkApplicationDelegate.h                        \
-       GtkApplicationDelegate.c                        \
-       GtkApplicationNotify.h                          \
-       GtkApplicationNotify.c                          \
-       GNSMenuBar.h                                    \
+SOURCES = \
+       GtkApplicationDelegate.c                \
+       GtkApplicationNotify.c                  \
        GNSMenuBar.c                                    \
-       GNSMenuItem.h                                   \
        GNSMenuItem.c                                   \
-       GNSMenuDelegate.h                               \
        GNSMenuDelegate.c                               \
-       getlabel.h                                      \
-       getlabel.c                                      \
-       cocoa_menu.h                                    \
+       getlabel.c                                              \
        cocoa_menu.c                                    \
-       cocoa_menu_item.h                               \
        cocoa_menu_item.c                               \
-       gtkosxapplication_quartz.c                      \
+       gtkosxapplication_quartz.c              \
        gtkosxapplication.c                             \
-       gtkosxapplicationprivate.h                      \
        gtkosx-image.c                                  \
-       gtkosx-image.h                                  \
        gtk-mac-dock.c                                  \
        gtk-mac-bundle.c                                \
        gtk-mac-menu.c                                  \
-       gtk-mac-image-utils.c                           \
-       gtk-mac-image-utils.h                           \
-       gtk-mac-private.h                               \
-       $(integration_HEADERS)
-
-libgtkmacintegration_ GTK_MAC_INTEGRATION_LIB_SUFFIX@_la_CFLAGS = $(MAC_CFLAGS) -xobjective-c
-libgtkmacintegration_ GTK_MAC_INTEGRATION_LIB_SUFFIX@_la_OBJCFLAGS = $(MAC_CFLAGS)
-libgtkmacintegration_ GTK_MAC_INTEGRATION_LIB_SUFFIX@_la_LIBADD =  $(MAC_LIBS) -lobjc
-libgtkmacintegration_ GTK_MAC_INTEGRATION_LIB_SUFFIX@_la_LDFLAGS = -framework Carbon -framework 
ApplicationServices -version-info $(GTK_MAC_INTEGRATION_LT_VERSION)
+       gtk-mac-image-utils.c
+
+HEADER = \
+       cocoa_menu.h              \
+       cocoa_menu_item.h         \
+       getlabel.h                \
+       GNSMenuBar.h              \
+       GNSMenuDelegate.h         \
+       GNSMenuItem.h             \
+       gtk-mac-bundle.h          \
+       gtk-mac-dock.h            \
+       gtk-mac-image-utils.h     \
+       gtk-mac-integration.h     \
+       gtk-mac-menu.h            \
+       gtk-mac-private.h         \
+       GtkApplicationDelegate.h  \
+       GtkApplicationNotify.h    \
+       gtkosx-image.h            \
+       gtkosxapplication.h       \
+       gtkosxapplicationprivate.h
+
+lib_LTLIBRARIES =
+if WITH_GTK3
+lib_LTLIBRARIES += libgtkmacintegration-gtk3.la
+libgtkmacintegration_gtk3_la_SOURCES = $(SOURCES)
+libgtkmacintegration_gtk3_la_CFLAGS = $(GTK3_CFLAGS) -xobjective-c
+libgtkmacintegration_gtk3_la_OBJCFLAGS = $(GTK3_CFLAGS)
+libgtkmacintegration_gtk3_la_LIBADD =  $(GTK3_LIBS) -lobjc
+libgtkmacintegration_gtk3_la_LDFLAGS = -framework Carbon -framework ApplicationServices -version-info 
$(GTK_MAC_INTEGRATION_LT_VERSION)
+endif
+if WITH_GTK2
+lib_LTLIBRARIES += libgtkmacintegration-gtk2.la
+libgtkmacintegration_gtk2_la_SOURCES = $(SOURCES)
+libgtkmacintegration_gtk2_la_CFLAGS = $(GTK2_CFLAGS) -xobjective-c
+libgtkmacintegration_gtk2_la_OBJCFLAGS = $(GTK2_CFLAGS)
+libgtkmacintegration_gtk2_la_LIBADD = $(GTK2_LIBS) -lobjc
+libgtkmacintegration_gtk2_la_LDFLAGS = -framework Carbon -framework ApplicationServices -version-info 
$(GTK_MAC_INTEGRATION_LT_VERSION)
+endif
 
-integration_includedir = $(includedir)/gtkmacintegration-$(GTK_MAC_INTEGRATION_LIB_SUFFIX)
+integration_includedir = $(includedir)/gtkmacintegration
 integration_include_HEADERS =                          \
        gtk-mac-integration.h                           \
        gtkosxapplication.h                             \
@@ -47,20 +64,29 @@ integration_include_HEADERS =                               \
        gtk-mac-dock.h                                  \
        gtk-mac-bundle.h
 
-# Test application
-noinst_PROGRAMS = test-integration
-test_integration_SOURCES = test-integration.c
-test_integration_CFLAGS = $(MAC_CFLAGS)
-test_integration_LDADD =  $(MAC_LIBS) libgtkmacintegration- GTK_MAC_INTEGRATION_LIB_SUFFIX@.la
+noinst_PROGRAMS =
+test_integration_gtk3_CFLAGS =
+if WITH_GTK3
+noinst_PROGRAMS += test-integration-gtk3
+test_integration_gtk3_SOURCES = test-integration.c
+test_integration_gtk3_CFLAGS += $(GTK3_CFLAGS)
+test_integration_gtk3_LDADD =  $(GTK3_LIBS) libgtkmacintegration-gtk3.la
+endif
+if WITH_GTK2
+noinst_PROGRAMS += test-integration-gtk2
+test_integration_gtk2_SOURCES = test-integration.c
+test_integration_gtk2_CFLAGS = $(GTK2_CFLAGS)
+test_integration_gtk2_LDADD =  $(GTK2_LIBS) libgtkmacintegration-gtk2.la
+endif
 
-EXTRA_DIST = testui.xml
+EXTRA_DIST = testui.xml $(HEADER)
 
 if INTROSPECTION
 
-test_integration_CFLAGS += -DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_2
+test_integration_gtk3_CFLAGS += -DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_2
 
 if HAVE_INTROSPECTION
-GtkosxApplication-1.0.gir: $(INTROSPECTION_SCANNER) libgtkmacintegration- GTK_MAC_INTEGRATION_LIB_SUFFIX@.la
+GtkosxApplication-1.0.gir: $(INTROSPECTION_SCANNER) libgtkmacintegration-gtk3.la
 GtkosxApplication_1_0_gir_SCANNERFLAGS = \
        --identifier-prefix=Gtkosx \
        --warn-all
@@ -69,7 +95,7 @@ GtkosxApplication_1_0_gir_INCLUDES = Atk-1.0 GLib-2.0 Gtk-3.0
 
 GtkosxApplication_1_0_gir_CFLAGS = \
                $(AM_CPPFLAGS)
-GtkosxApplication_1_0_gir_LIBS = libgtkmacintegration- GTK_MAC_INTEGRATION_LIB_SUFFIX@.la
+GtkosxApplication_1_0_gir_LIBS = libgtkmacintegration-gtk3.la
 GtkosxApplication_1_0_gir_FILES = \
        gtkosxapplication.h \
        gtkosxapplication.c


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