=== modified file 'CMakeLists.txt'
--- CMakeLists.txt	2015-09-02 13:40:51 +0000
+++ CMakeLists.txt	2015-10-25 19:43:54 +0000
@@ -28,6 +28,15 @@
 	if(NOT DARWIN)
 		set(CMAKE_INCLUDE_SYSTEM_FLAG_C "-isystem ")
 	endif()
+
+    include(CheckCXXCompilerFlag)
+    # For the new libsigc++2.x
+    set (FLAG_CPP11 "-std=c++11")
+    check_cxx_compiler_flag("${FLAG_CPP11}" FLAG_CPP11_EXISTS)
+    if (FLAG_CPP11_EXISTS)
+        set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAG_CPP11}")
+    endif (FLAG_CPP11_EXISTS)
+
 endif()
 
 #
@@ -90,6 +99,7 @@
 option(WITH_LIBVISIO "Compile with support of libvisio for Microsoft Visio Diagrams" ON)
 option(WITH_LIBWPG "Compile with support of libwpg for WordPerfect Graphics" ON)
 option(WITH_NLS "Compile with Native Language Support (using gettext)" ON)
+option(WITH_GTK3_EXPERIMENTAL "Enable compilation with GTK+3 (EXPERIMENTAL!)" OFF)
 
 include(CMakeScripts/ConfigPaths.cmake) # Installation Paths
 include(CMakeScripts/DefineDependsandFlags.cmake) # Includes, Compiler Flags, and Link Libraries

=== modified file 'CMakeScripts/DefineDependsandFlags.cmake'
--- CMakeScripts/DefineDependsandFlags.cmake	2015-09-02 17:25:24 +0000
+++ CMakeScripts/DefineDependsandFlags.cmake	2015-10-25 20:08:24 +0000
@@ -222,53 +222,95 @@
 
 # Include dependencies:
 # use patched version until GTK2_CAIROMMCONFIG_INCLUDE_DIR is added
-find_package(GTK2 COMPONENTS gtk gtkmm REQUIRED)
-list(APPEND INKSCAPE_INCS_SYS
-	${GTK2_GDK_INCLUDE_DIR}
-	${GTK2_GDKMM_INCLUDE_DIR}
-	${GTK2_GDK_PIXBUF_INCLUDE_DIR}
-	${GTK2_GDKCONFIG_INCLUDE_DIR}
-	${GTK2_GDKMMCONFIG_INCLUDE_DIR}
-	${GTK2_GLIB_INCLUDE_DIR}
-	${GTK2_GLIBCONFIG_INCLUDE_DIR}
-	${GTK2_GLIBMM_INCLUDE_DIR}
-	${GTK2_GLIBMMCONFIG_INCLUDE_DIR}
-	${GTK2_GTK_INCLUDE_DIR}
-	${GTK2_GTKMM_INCLUDE_DIR}
-	${GTK2_GTKMMCONFIG_INCLUDE_DIR}
-	${GTK2_ATK_INCLUDE_DIR}
-	${GTK2_ATKMM_INCLUDE_DIR}
-	${GTK2_PANGO_INCLUDE_DIR}
-	${GTK2_PANGOMM_INCLUDE_DIR}
-	${GTK2_PANGOMMCONFIG_INCLUDE_DIR}
-	${GTK2_CAIRO_INCLUDE_DIR}
-	${GTK2_CAIROMM_INCLUDE_DIR}
-	${GTK2_CAIROMMCONFIG_INCLUDE_DIR} # <-- not in cmake 2.8.4
-	${GTK2_GIOMM_INCLUDE_DIR}
-	${GTK2_GIOMMCONFIG_INCLUDE_DIR}
-	${GTK2_SIGC++_INCLUDE_DIR}
-	${GTK2_SIGC++CONFIG_INCLUDE_DIR}
-)
-
-list(APPEND INKSCAPE_LIBS
-	${GTK2_GDK_LIBRARY}
-	${GTK2_GDKMM_LIBRARY}
-	${GTK2_GDK_PIXBUF_LIBRARY}
-	${GTK2_GLIB_LIBRARY}
-	${GTK2_GLIBMM_LIBRARY}
-	${GTK2_GTK_LIBRARY}
-	${GTK2_GTKMM_LIBRARY}
-	${GTK2_ATK_LIBRARY}
-	${GTK2_ATKMM_LIBRARY}
-	${GTK2_PANGO_LIBRARY}
-	${GTK2_PANGOMM_LIBRARY}
-	${GTK2_CAIRO_LIBRARY}
-	${GTK2_CAIROMM_LIBRARY}
-	${GTK2_GIOMM_LIBRARY}
-	${GTK2_SIGC++_LIBRARY}
-	${GTK2_GOBJECT_LIBRARY}
-)
-
+IF ("${WITH_GTK3_EXPERIMENTAL}")
+    pkg_check_modules(
+        GTK
+        REQUIRED
+        gtkmm-3.0>=3.2
+        gdkmm-3.0>=3.2
+        gtk+-3.0>=3.2
+        gdk-3.0>=3.2
+        gdl-3.0>=3.3.5
+        )
+    message("Using EXPERIMENTAL Gtkmm 3 build")
+    SET (WITH_GTKMM_3_0 1)
+    message("Using external GDL")
+    SET(WITH_EXT_GDL 1)
+
+	# Check whether we can use new features in Gtkmm 3.10
+	# TODO: Drop this test and bump the version number in the GTK test above
+	#       as soon as all supported distributions provide Gtkmm >= 3.10
+	pkg_check_modules(GTKMM_3_10
+			  gtkmm-3.0>=3.10,
+			  )
+
+    IF ("${GTKMM_3_10_FOUND}")
+        message("Using Gtkmm 3.10 build")
+        SET (WITH_GTKMM_3_10 1)
+    ENDIF()
+
+    pkg_check_modules(GDL_3_6 gdl-3.0>=3.6)
+
+    IF ("${GDL_3_6_FOUND}")
+        message("Using Gdl 3.6 or higher")
+        SET (WITH_GDL_3_6 1)
+    ENDIF()
+
+    list(APPEND INKSCAPE_INCS_SYS
+        ${GTK_INCLUDE_DIRS}
+    )
+
+    list(APPEND INKSCAPE_LIBS
+        ${GTK_LIBRARIES}
+    )
+ELSE()
+    find_package(GTK2 COMPONENTS gtk gtkmm REQUIRED)
+    list(APPEND INKSCAPE_INCS_SYS
+        ${GTK2_GDK_INCLUDE_DIR}
+        ${GTK2_GDKMM_INCLUDE_DIR}
+        ${GTK2_GDK_PIXBUF_INCLUDE_DIR}
+        ${GTK2_GDKCONFIG_INCLUDE_DIR}
+        ${GTK2_GDKMMCONFIG_INCLUDE_DIR}
+        ${GTK2_GLIB_INCLUDE_DIR}
+        ${GTK2_GLIBCONFIG_INCLUDE_DIR}
+        ${GTK2_GLIBMM_INCLUDE_DIR}
+        ${GTK2_GLIBMMCONFIG_INCLUDE_DIR}
+        ${GTK2_GTK_INCLUDE_DIR}
+        ${GTK2_GTKMM_INCLUDE_DIR}
+        ${GTK2_GTKMMCONFIG_INCLUDE_DIR}
+        ${GTK2_ATK_INCLUDE_DIR}
+        ${GTK2_ATKMM_INCLUDE_DIR}
+        ${GTK2_PANGO_INCLUDE_DIR}
+        ${GTK2_PANGOMM_INCLUDE_DIR}
+        ${GTK2_PANGOMMCONFIG_INCLUDE_DIR}
+        ${GTK2_CAIRO_INCLUDE_DIR}
+        ${GTK2_CAIROMM_INCLUDE_DIR}
+        ${GTK2_CAIROMMCONFIG_INCLUDE_DIR} # <-- not in cmake 2.8.4
+        ${GTK2_GIOMM_INCLUDE_DIR}
+        ${GTK2_GIOMMCONFIG_INCLUDE_DIR}
+        ${GTK2_SIGC++_INCLUDE_DIR}
+        ${GTK2_SIGC++CONFIG_INCLUDE_DIR}
+    )
+
+    list(APPEND INKSCAPE_LIBS
+        ${GTK2_GDK_LIBRARY}
+        ${GTK2_GDKMM_LIBRARY}
+        ${GTK2_GDK_PIXBUF_LIBRARY}
+        ${GTK2_GLIB_LIBRARY}
+        ${GTK2_GLIBMM_LIBRARY}
+        ${GTK2_GTK_LIBRARY}
+        ${GTK2_GTKMM_LIBRARY}
+        ${GTK2_ATK_LIBRARY}
+        ${GTK2_ATKMM_LIBRARY}
+        ${GTK2_PANGO_LIBRARY}
+        ${GTK2_PANGOMM_LIBRARY}
+        ${GTK2_CAIRO_LIBRARY}
+        ${GTK2_CAIROMM_LIBRARY}
+        ${GTK2_GIOMM_LIBRARY}
+        ${GTK2_SIGC++_LIBRARY}
+        ${GTK2_GOBJECT_LIBRARY}
+    )
+ENDIF()
 
 find_package(Freetype REQUIRED)
 list(APPEND INKSCAPE_INCS_SYS ${FREETYPE_INCLUDE_DIRS})

=== modified file 'config.h.cmake'
--- config.h.cmake	2015-09-02 17:25:24 +0000
+++ config.h.cmake	2015-10-25 20:48:15 +0000
@@ -80,6 +80,18 @@
    function. */
 #cmakedefine HAVE_GTK_WINDOW_SET_DEFAULT_ICON_FROM_FILE 1
 
+/* Build with Gtkmm 3.0.x or higher */
+#cmakedefine WITH_GTKMM_3_0 1
+
+/* Build with Gtkmm 3.10.x or higher */
+#cmakedefine WITH_GTKMM_3_10 1
+
+/* Build with external GDL */
+#cmakedefine WITH_EXT_GDL 1
+
+/* Build with GDL 3.6 or higher */
+#cmakedefine WITH_GDL_3_6 1
+
 /* Define to 1 if you have the <ieeefp.h> header file. */
 #cmakedefine HAVE_IEEEFP_H 1
 

=== modified file 'src/libgdl/CMakeLists.txt'
--- src/libgdl/CMakeLists.txt	2012-01-03 20:55:40 +0000
+++ src/libgdl/CMakeLists.txt	2015-10-25 21:19:24 +0000
@@ -1,47 +1,50 @@
-
-set(libgdl_SRC
-	gdl-dock-bar.c
-	gdl-dock-item-button-image.c
-	gdl-dock-item-grip.c
-	gdl-dock-item.c
-	gdl-dock-master.c
-	gdl-dock-notebook.c
-	gdl-dock-object.c
-	gdl-dock-paned.c
-	gdl-dock-placeholder.c
-	gdl-dock-tablabel.c
-	gdl-dock.c
-	gdl-i18n.c
-	gdl-switcher.c
-	libgdlmarshal.c
-	libgdltypebuiltins.c
-
-
-	# -------
-	# Headers
-	gdl-dock-bar.h
-	gdl-dock-item-button-image.h
-	gdl-dock-item-grip.h
-	gdl-dock-item.h
-	gdl-dock-master.h
-	gdl-dock-notebook.h
-	gdl-dock-object.h
-	gdl-dock-paned.h
-	gdl-dock-placeholder.h
-	gdl-dock-tablabel.h
-	gdl-dock.h
-	gdl-i18n.h
-	gdl-switcher.h
-	gdl.h
-	libgdlmarshal.h
-	libgdltypebuiltins.h
-)
-
-if(WIN32)
-	list(APPEND libgdl_SRC
-		gdl-win32.c
-		gdl-win32.h
-	)
+if (NOT "${WITH_EXT_GDL}")
+
+    set(libgdl_SRC
+        gdl-dock-bar.c
+        gdl-dock-item-button-image.c
+        gdl-dock-item-grip.c
+        gdl-dock-item.c
+        gdl-dock-master.c
+        gdl-dock-notebook.c
+        gdl-dock-object.c
+        gdl-dock-paned.c
+        gdl-dock-placeholder.c
+        gdl-dock-tablabel.c
+        gdl-dock.c
+        gdl-i18n.c
+        gdl-switcher.c
+        libgdlmarshal.c
+        libgdltypebuiltins.c
+
+
+        # -------
+        # Headers
+        gdl-dock-bar.h
+        gdl-dock-item-button-image.h
+        gdl-dock-item-grip.h
+        gdl-dock-item.h
+        gdl-dock-master.h
+        gdl-dock-notebook.h
+        gdl-dock-object.h
+        gdl-dock-paned.h
+        gdl-dock-placeholder.h
+        gdl-dock-tablabel.h
+        gdl-dock.h
+        gdl-i18n.h
+        gdl-switcher.h
+        gdl.h
+        libgdlmarshal.h
+        libgdltypebuiltins.h
+    )
+
+    if(WIN32)
+        list(APPEND libgdl_SRC
+            gdl-win32.c
+            gdl-win32.h
+        )
+    endif()
+
+    add_inkscape_lib(gdl_LIB "${libgdl_SRC}")
+
 endif()
-
-add_inkscape_lib(gdl_LIB "${libgdl_SRC}")

