diff --git a/bindings/metadata/JSCore-3.0.metadata b/bindings/metadata/JSCore-3.0.metadata deleted file mode 100644 index b9a2045c..00000000 --- a/bindings/metadata/JSCore-3.0.metadata +++ /dev/null @@ -1,3 +0,0 @@ -GlobalContextRef skip -ObjectRef skip - diff --git a/bindings/metadata/WebKit2-4.0.metadata b/bindings/metadata/WebKit2-4.0.metadata new file mode 100644 index 00000000..ad053eeb --- /dev/null +++ b/bindings/metadata/WebKit2-4.0.metadata @@ -0,0 +1,14 @@ + +JavascriptResult + .get_global_context nullable=false unowned=true + .get_value nullable=false unowned=true + +//Forward upstream +Download + .failed#signal.error type="WebKit.DownloadError" +PrintOperation + .failed#signal.error type="WebKit.PrintError" +WebResource + .failed#signal.error type="GLib.Error" +WebView + .load_failed#signal.error type="GLib.Error" diff --git a/bindings/vapi/javascriptcore-4.0.vapi b/bindings/vapi/javascriptcore-4.0.vapi new file mode 100644 index 00000000..5d535a38 --- /dev/null +++ b/bindings/vapi/javascriptcore-4.0.vapi @@ -0,0 +1,15 @@ +/* javascriptcore-4.0.vapi. */ + +[CCode (cprefix = "JS", gir_namespace = "JavaScriptCore", gir_version = "4.0", lower_case_cprefix = "JS_", cheader_filename = "JavaScriptCore/JavaScript.h")] +namespace JS { + + [CCode (cname = "JSGlobalContextRef")] + [SimpleType] + public struct GlobalContext { + } + + [CCode (cname = "JSValueRef")] + [SimpleType] + public struct Value { + } +} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bc75f41f..2b11bf98 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -505,6 +505,7 @@ pkg_check_modules(DEPS REQUIRED gobject-introspection-1.0 webkit2gtk-4.0>=${TARGET_WEBKIT} webkit2gtk-web-extension-4.0>=${TARGET_WEBKIT} + javascriptcoregtk-4.0>=${TARGET_WEBKIT} enchant>=1.6 ${EXTRA_CLIENT_PKG_CONFIG} ) @@ -534,6 +535,7 @@ set(CLIENT_PACKAGES geary-engine gio-2.0 gtk+-3.0 + javascriptcore-4.0 libcanberra libnotify libsecret-1 @@ -602,8 +604,8 @@ link_directories(${LIB_PATHS}) add_definitions(${CFLAGS}) set(VALAC_OPTIONS - --vapidir=${CMAKE_SOURCE_DIR}/bindings/vapi --vapidir=${CMAKE_BINARY_DIR}/src + --vapidir=${CMAKE_SOURCE_DIR}/bindings/vapi --metadatadir=${CMAKE_SOURCE_DIR}/bindings/metadata --target-glib=${TARGET_GLIB} --thread @@ -636,6 +638,23 @@ set_property( ) target_link_libraries(geary-engine m ${DEPS_LIBRARIES} sqlite3-unicodesn) +# WebKit2GTK VAPI generation +################################################# +add_custom_target(webkit2gtk-vapi + DEPENDS "${CMAKE_BINARY_DIR}/src/webkit2gtk-4.0.vapi" +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/src/webkit2gtk-4.0.vapi + DEPENDS + "${CMAKE_SOURCE_DIR}/bindings/metadata/WebKit2-4.0.metadata" + "${CMAKE_SOURCE_DIR}/bindings/vapi/javascriptcore-4.0.vapi" + WORKING_DIRECTORY + "${CMAKE_SOURCE_DIR}/bindings/metadata" + COMMAND + vapigen --library=webkit2gtk-4.0 --pkg gtk+-3.0 --pkg libsoup-2.4 --pkg javascriptcore-4.0 --vapidir=${CMAKE_SOURCE_DIR}/bindings/vapi --metadatadir=${CMAKE_SOURCE_DIR}/bindings/metadata --directory=${CMAKE_BINARY_DIR}/src `${PKG_CONFIG_EXECUTABLE} --variable=girdir gobject-introspection-1.0`/WebKit2-4.0.gir +) + # Client library (static lib used for building client and unit tests) ################################################# @@ -652,7 +671,7 @@ OPTIONS ) add_library(geary-client STATIC ${CLIENT_VALA_C}) -add_dependencies(geary-client resource_copy webkitgtk-vapi) +add_dependencies(geary-client resource_copy webkit2gtk-vapi) target_link_libraries(geary-client m ${DEPS_LIBRARIES} geary-engine) # Main client application binary diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index ba04bf90..9dff841f 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -27,6 +27,7 @@ pkg_check_modules(DEPS REQUIRED gmime-2.6 gthread-2.0 gtk+-3.0 + javascriptcoregtk-4.0 libsoup-2.4 webkit2gtk-4.0 ) @@ -39,6 +40,7 @@ set(TEST_PACKAGES glib-2.0 gmime-2.6 gtk+-3.0 + javascriptcore-4.0 libsoup-2.4 webkit2gtk-4.0 )