[GTK] Add API to get the library version to WebKit2 GTK+
authorcarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 8 Jun 2012 16:37:48 +0000 (16:37 +0000)
committercarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 8 Jun 2012 16:37:48 +0000 (16:37 +0000)
https://bugs.webkit.org/show_bug.cgi?id=88426

Reviewed by Martin Robinson.

.:

* configure.ac: Generate WebKitVersion.h from WebKitVersion.h.in
file.

Source/WebKit2:

* GNUmakefile.am:
* GNUmakefile.list.am:
* UIProcess/API/gtk/WebKitVersion.cpp: Added.
(webkit_get_major_version):
(webkit_get_minor_version):
(webkit_get_micro_version):
* UIProcess/API/gtk/WebKitVersion.h.in: Added.
* UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new symbols.
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new section
for WebKitVersion.
* UIProcess/API/gtk/tests/GNUmakefile.am:
* UIProcess/API/gtk/tests/TestWebKitVersion.cpp: Added.
(testWebKitVersion):
(testWebKitCheckVersion):
(beforeAll):
(afterAll):
* UIProcess/API/gtk/webkit2.h: Include WebKitVersion.h.

Tools:

* gtk/generate-gtkdoc:
(get_webkit2_options): Add built sources to the list of files, but
ignore enum types and marshallers.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@119837 268f45cc-cd09-0410-ab3c-d52691b4dbfc

14 files changed:
ChangeLog
Source/WebKit2/ChangeLog
Source/WebKit2/GNUmakefile.am
Source/WebKit2/GNUmakefile.list.am
Source/WebKit2/UIProcess/API/gtk/WebKitVersion.cpp [new file with mode: 0644]
Source/WebKit2/UIProcess/API/gtk/WebKitVersion.h.in [new file with mode: 0644]
Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-docs.sgml
Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt
Source/WebKit2/UIProcess/API/gtk/tests/GNUmakefile.am
Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitVersion.cpp [new file with mode: 0644]
Source/WebKit2/UIProcess/API/gtk/webkit2.h
Tools/ChangeLog
Tools/gtk/generate-gtkdoc
configure.ac

index eb8a843..d9b256d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2012-06-08  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Add API to get the library version to WebKit2 GTK+
+        https://bugs.webkit.org/show_bug.cgi?id=88426
+
+        Reviewed by Martin Robinson.
+
+        * configure.ac: Generate WebKitVersion.h from WebKitVersion.h.in
+        file.
+
 2012-06-08  Ion Rosca  <rosca@adobe.com>
 
         Some overlay scrollbar API calls in ScrollAnimatorMac can lead to an assertion in RenderBox::mapAbsoluteToLocalPoint
index 3a42e21..e8d17ff 100644 (file)
@@ -1,3 +1,28 @@
+2012-06-08  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Add API to get the library version to WebKit2 GTK+
+        https://bugs.webkit.org/show_bug.cgi?id=88426
+
+        Reviewed by Martin Robinson.
+
+        * GNUmakefile.am:
+        * GNUmakefile.list.am:
+        * UIProcess/API/gtk/WebKitVersion.cpp: Added.
+        (webkit_get_major_version):
+        (webkit_get_minor_version):
+        (webkit_get_micro_version):
+        * UIProcess/API/gtk/WebKitVersion.h.in: Added.
+        * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new symbols.
+        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new section
+        for WebKitVersion.
+        * UIProcess/API/gtk/tests/GNUmakefile.am:
+        * UIProcess/API/gtk/tests/TestWebKitVersion.cpp: Added.
+        (testWebKitVersion):
+        (testWebKitCheckVersion):
+        (beforeAll):
+        (afterAll):
+        * UIProcess/API/gtk/webkit2.h: Include WebKitVersion.h.
+
 2012-06-08  Dan Bernstein  <mitz@apple.com>
 
         Tried to fix the Snow Leopard build after r119806.
index df35c87..016d681 100644 (file)
@@ -5,7 +5,8 @@ libwebkit2gtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_HEA
 
 libwebkit2gtkincludedir = $(libwebkitgtkincludedir)/webkit2
 nodist_libwebkit2gtkinclude_HEADERS = \
-       DerivedSources/WebKit2/webkit2gtk/webkit2/WebKitEnumTypes.h
+       DerivedSources/WebKit2/webkit2gtk/webkit2/WebKitEnumTypes.h \
+       DerivedSources/WebKit2/webkit2gtk/webkit2/WebKitVersion.h
 
 libwebkit2gtkinclude_HEADERS = \
        $(webkit2gtk_h_api)
index dcccfb7..851d626 100644 (file)
@@ -208,7 +208,8 @@ webkit2gtk_built_sources += \
        DerivedSources/WebKit2/webkit2gtk/webkit2/WebKitEnumTypes.cpp \
        DerivedSources/WebKit2/webkit2gtk/webkit2/WebKitEnumTypes.h \
        DerivedSources/WebKit2/webkit2gtk/webkit2/WebKitMarshal.cpp \
-       DerivedSources/WebKit2/webkit2gtk/webkit2/WebKitMarshal.h
+       DerivedSources/WebKit2/webkit2gtk/webkit2/WebKitMarshal.h \
+       DerivedSources/WebKit2/webkit2gtk/webkit2/WebKitVersion.h
 
 webkit2_sources += \
        Source/WebKit2/config.h \
@@ -647,6 +648,7 @@ webkit2_sources += \
        Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequest.cpp \
        Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequest.h \
        Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequestPrivate.h \
+       Source/WebKit2/UIProcess/API/gtk/WebKitVersion.cpp \
        Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.h \
        Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp \
        Source/WebKit2/UIProcess/API/gtk/WebKitWebContextPrivate.h \
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitVersion.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitVersion.cpp
new file mode 100644 (file)
index 0000000..4ef62e3
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2012 Igalia S.L.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB.  If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+#include "WebKitVersion.h"
+
+/**
+ * webkit_get_major_version:
+ *
+ * Returns the major version number of the WebKit library.
+ * (e.g. in WebKit version 1.8.3 this is 1.)
+ *
+ * This function is in the library, so it represents the WebKit library
+ * your code is running against. Contrast with the #WEBKIT_MAJOR_VERSION
+ * macro, which represents the major version of the WebKit headers you
+ * have included when compiling your code.
+ *
+ * Returns: the major version number of the WebKit library
+ */
+guint webkit_get_major_version(void)
+{
+    return WEBKIT_MAJOR_VERSION;
+}
+
+/**
+ * webkit_get_minor_version:
+ *
+ * Returns the minor version number of the WebKit library.
+ * (e.g. in WebKit version 1.8.3 this is 8.)
+ *
+ * This function is in the library, so it represents the WebKit library
+ * your code is running against. Contrast with the #WEBKIT_MINOR_VERSION
+ * macro, which represents the minor version of the WebKit headers you
+ * have included when compiling your code.
+ *
+ * Returns: the minor version number of the WebKit library
+ */
+guint webkit_get_minor_version(void)
+{
+    return WEBKIT_MINOR_VERSION;
+}
+
+/**
+ * webkit_get_micro_version:
+ *
+ * Returns the micro version number of the WebKit library.
+ * (e.g. in WebKit version 1.8.3 this is 3.)
+ *
+ * This function is in the library, so it represents the WebKit library
+ * your code is running against. Contrast with the #WEBKIT_MICRO_VERSION
+ * macro, which represents the micro version of the WebKit headers you
+ * have included when compiling your code.
+ *
+ * Returns: the micro version number of the WebKit library
+ */
+guint webkit_get_micro_version(void)
+{
+    return WEBKIT_MICRO_VERSION;
+}
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitVersion.h.in b/Source/WebKit2/UIProcess/API/gtk/WebKitVersion.h.in
new file mode 100644 (file)
index 0000000..81ef517
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2012 Igalia S.L.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB.  If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#if !defined(__WEBKIT2_H_INSIDE__) && !defined(WEBKIT2_COMPILATION)
+#error "Only <webkit2/webkit2.h> can be included directly."
+#endif
+
+#ifndef WebKitVersion_h
+#define WebKitVersion_h
+
+#include <webkit2/WebKitDefines.h>
+
+G_BEGIN_DECLS
+
+/**
+ * WEBKIT_MAJOR_VERSION:
+ *
+ * Like webkit_get_major_version(), but from the headers used at
+ * application compile time, rather than from the library linked
+ * against at application run time.
+ */
+#define WEBKIT_MAJOR_VERSION (@WEBKIT_MAJOR_VERSION@)
+
+/**
+ * WEBKIT_MINOR_VERSION:
+ *
+ * Like webkit_get_minor_version(), but from the headers used at
+ * application compile time, rather than from the library linked
+ * against at application run time.
+ */
+#define WEBKIT_MINOR_VERSION (@WEBKIT_MINOR_VERSION@)
+
+/**
+ * WEBKIT_MICRO_VERSION:
+ *
+ * Like webkit_get_micro_version(), but from the headers used at
+ * application compile time, rather than from the library linked
+ * against at application run time.
+ */
+#define WEBKIT_MICRO_VERSION (@WEBKIT_MICRO_VERSION@)
+
+/**
+ * WEBKIT_CHECK_VERSION:
+ * @major: major version (e.g. 1 for version 1.2.5)
+ * @minor: minor version (e.g. 2 for version 1.2.5)
+ * @micro: micro version (e.g. 5 for version 1.2.5)
+ *
+ * Returns: %TRUE if the version of the WebKit header files
+ * is the same as or newer than the passed-in version.
+ */
+#define WEBKIT_CHECK_VERSION(major, minor, micro) \
+    (WEBKIT_MAJOR_VERSION > (major) || \
+    (WEBKIT_MAJOR_VERSION == (major) && WEBKIT_MINOR_VERSION > (minor)) || \
+    (WEBKIT_MAJOR_VERSION == (major) && WEBKIT_MINOR_VERSION == (minor) && \
+     WEBKIT_MICRO_VERSION >= (micro)))
+
+WEBKIT_API guint
+webkit_get_major_version (void);
+
+WEBKIT_API guint
+webkit_get_minor_version (void);
+
+WEBKIT_API guint
+webkit_get_micro_version (void);
+
+G_END_DECLS
+
+#endif
index 3dfb24f..c2eebf3 100644 (file)
@@ -36,6 +36,7 @@
     <xi:include href="xml/WebKitPlugin.xml"/>
     <xi:include href="xml/WebKitWebInspector.xml"/>
     <xi:include href="xml/WebKitURISchemeRequest.xml"/>
+    <xi:include href="xml/WebKitVersion.xml"/>
   </chapter>
 
   <index id="index-all">
index fa1f4fc..ce69373 100644 (file)
@@ -730,3 +730,16 @@ WEBKIT_URI_SCHEME_REQUEST_GET_CLASS
 WebKitURISchemeRequestPrivate
 webkit_uri_scheme_request_get_type
 </SECTION>
+
+<SECTION>
+<FILE>WebKitVersion</FILE>
+webkit_get_major_version
+webkit_get_minor_version
+webkit_get_micro_version
+
+<SUBSECTION>
+WEBKIT_MAJOR_VERSION
+WEBKIT_MINOR_VERSION
+WEBKIT_MICRO_VERSION
+WEBKIT_CHECK_VERSION
+</SECTION>
index 8fa0cd8..7adae8a 100644 (file)
@@ -8,6 +8,7 @@ TEST_PROGS += \
        Programs/WebKit2APITests/TestLoaderClient \
        Programs/WebKit2APITests/TestPrinting \
        Programs/WebKit2APITests/TestResources \
+       Programs/WebKit2APITests/TestWebKitVersion \
        Programs/WebKit2APITests/TestWebKitFindController \
        Programs/WebKit2APITests/TestWebKitPolicyClient \
        Programs/WebKit2APITests/TestWebKitSettings \
@@ -160,4 +161,10 @@ Programs_WebKit2APITests_TestInspector_CPPFLAGS = \
 Programs_WebKit2APITests_TestInspector_LDADD = $(webkit2_tests_ldadd)
 Programs_WebKit2APITests_TestInspector_LDFLAGS = $(webkit2_tests_ldflags)
 
+Programs_WebKit2APITests_TestWebKitVersion_SOURCES = \
+        Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitVersion.cpp
+Programs_WebKit2APITests_TestWebKitVersion_CPPFLAGS = $(webkit2_tests_cppflags)
+Programs_WebKit2APITests_TestWebKitVersion_LDADD = $(webkit2_tests_ldadd)
+Programs_WebKit2APITests_TestWebKitVersion_LDFLAGS = $(webkit2_tests_ldflags)
+
 endif # ENABLE_WEBKIT2
diff --git a/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitVersion.cpp b/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitVersion.cpp
new file mode 100644 (file)
index 0000000..e747ff9
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2012 Igalia S.L.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2,1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB.  If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+
+#include "TestMain.h"
+#include <gtk/gtk.h>
+#include <webkit2/webkit2.h>
+
+
+static void testWebKitVersion(Test*, gconstpointer)
+{
+    g_assert_cmpuint(webkit_get_major_version(), ==, WEBKIT_MAJOR_VERSION);
+    g_assert_cmpuint(webkit_get_minor_version(), ==, WEBKIT_MINOR_VERSION);
+    g_assert_cmpuint(webkit_get_micro_version(), ==, WEBKIT_MICRO_VERSION);
+}
+
+static void testWebKitCheckVersion(Test*, gconstpointer)
+{
+    g_assert(WEBKIT_CHECK_VERSION(WEBKIT_MAJOR_VERSION, WEBKIT_MINOR_VERSION, WEBKIT_MICRO_VERSION));
+    g_assert(!WEBKIT_CHECK_VERSION(WEBKIT_MAJOR_VERSION + 1, WEBKIT_MINOR_VERSION, WEBKIT_MICRO_VERSION));
+    g_assert(!WEBKIT_CHECK_VERSION(WEBKIT_MAJOR_VERSION, WEBKIT_MINOR_VERSION + 1, WEBKIT_MICRO_VERSION));
+    g_assert(!WEBKIT_CHECK_VERSION(WEBKIT_MAJOR_VERSION, WEBKIT_MINOR_VERSION, WEBKIT_MICRO_VERSION + 1));
+}
+
+void beforeAll()
+{
+    Test::add("WebKitVersion", "version", testWebKitVersion);
+    Test::add("WebKitVersion", "check-version", testWebKitCheckVersion);
+}
+
+void afterAll()
+{
+}
index 2dae6dd..bf37fcb 100644 (file)
@@ -47,6 +47,7 @@
 #include <webkit2/WebKitURIRequest.h>
 #include <webkit2/WebKitURIResponse.h>
 #include <webkit2/WebKitURISchemeRequest.h>
+#include <webkit2/WebKitVersion.h>
 #include <webkit2/WebKitWebContext.h>
 #include <webkit2/WebKitWebInspector.h>
 #include <webkit2/WebKitWebResource.h>
index 2aefb51..b16063b 100644 (file)
@@ -1,3 +1,14 @@
+2012-06-08  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Add API to get the library version to WebKit2 GTK+
+        https://bugs.webkit.org/show_bug.cgi?id=88426
+
+        Reviewed by Martin Robinson.
+
+        * gtk/generate-gtkdoc:
+        (get_webkit2_options): Add built sources to the list of files, but
+        ignore enum types and marshallers.
+
 2012-06-07  Vincent Scheib  <scheib@chromium.org>
 
         Layout Test pointer-lock/pointerlockchange-pointerlockerror-events.html is failing
index f597051..88e62e7 100755 (executable)
@@ -88,7 +88,7 @@ def get_webkit2_options():
         'module_name' : 'webkit2gtk',
         'doc_dir' : src_path('docs'),
         'output_dir' : common.build_path('Documentation', 'webkit2gtk'),
-        'source_dirs' : [src_path()],
+        'source_dirs' : [src_path(), derived_sources_path('webkit2gtk', 'webkit2')],
         'cflags' : ' -I' + derived_sources_path('webkit2gtk', 'include') + \
                    ' -I' + derived_sources_path('webkit2gtk') + \
                    ' -I' + derived_sources_path('include') + \
@@ -99,6 +99,8 @@ def get_webkit2_options():
                          glob.glob(src_path('*Client*')) + \
                          glob.glob(src_path('WebKitWebViewBaseAccessible.*')) + \
                          glob.glob(src_path('WebKitGeolocationProvider.*')) + \
+                         glob.glob(derived_sources_path('webkit2gtk', 'webkit2', 'WebKitMarshal.*')) + \
+                         glob.glob(derived_sources_path('webkit2gtk', 'webkit2', 'WebKitEnumTypes.*')) + \
                          glob.glob(src_path('tests/*.h'))
     })
     return options
index c830609..5866f8a 100644 (file)
@@ -1438,6 +1438,10 @@ Source/JavaScriptCore/javascriptcoregtk-${WEBKITGTK_API_VERSION}.pc:Source/JavaS
 
 if test "$enable_webkit2" = "yes"; then
     AC_CONFIG_FILES([
+    DerivedSources/WebKit2/webkit2gtk/webkit2/WebKitVersion.h:Source/WebKit2/UIProcess/API/gtk/WebKitVersion.h.in
+    ])
+
+    AC_CONFIG_FILES([
     Source/WebKit2/webkit2gtk-${WEBKITGTK_API_VERSION}.pc:Source/WebKit2/webkit2gtk.pc.in
     ]
     ,[WEBKITGTK_API_VERSION=$WEBKITGTK_API_VERSION,WEBKITGTK_PC_NAME=$WEBKITGTK_PC_NAME]