[gtk-mac-integration: 2/5] Use seperate configure flags for gtk2 and gtk3
- From: John Ralls <jralls src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk-mac-integration: 2/5] Use seperate configure flags for gtk2 and gtk3
- Date: Mon, 11 May 2015 21:58:54 +0000 (UTC)
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]