[evolution-data-server] M!13 - [EBackend] Add GObject introspection



commit 6338ee2abe83e51bd55bc89c72a1e238de0d8bcc
Author: Corentin Noël <corentin elementary io>
Date:   Tue Mar 12 18:01:40 2019 +0100

    M!13 - [EBackend] Add GObject introspection
    
    Closes https://gitlab.gnome.org/GNOME/evolution-data-server/merge_requests/13

 cmake/modules/GObjectIntrospection.cmake |  6 ++++-
 src/libebackend/CMakeLists.txt           | 41 ++++++++++++++++++++++++++++++++
 2 files changed, 46 insertions(+), 1 deletion(-)
---
diff --git a/cmake/modules/GObjectIntrospection.cmake b/cmake/modules/GObjectIntrospection.cmake
index 5be5042dc..52dd9bb67 100644
--- a/cmake/modules/GObjectIntrospection.cmake
+++ b/cmake/modules/GObjectIntrospection.cmake
@@ -11,6 +11,7 @@
 
 include(PrintableOptions)
 include(PkgConfigEx)
+include(CMakeParseArguments)
 
 add_printable_option(ENABLE_INTROSPECTION "Enable GObject introspection" OFF)
 
@@ -183,12 +184,15 @@ endmacro(_gir_deps_to_includedir)
 macro(gir_add_introspection_simple gir_library pkg_export_prefix gir_library_version c_include 
gir_identifies_prefixes_var gir_includes_var extra_cflags_var gir_extra_libdirs_var gir_libs_var gir_deps_var 
gir_sources_var)
        gir_construct_names(${gir_library} ${gir_library_version} gir_name gir_vars_prefix)
 
+       cmake_parse_arguments(gir "" "" "SCANNER_EXTRA_ARGS" ${ARGN})
+       list(APPEND gir_SCANNER_EXTRA_ARGS "--warn-all")
+
        unset(INTROSPECTION_SCANNER_ARGS)
        unset(INTROSPECTION_SCANNER_ENV)
        unset(INTROSPECTION_COMPILER_ARGS)
 
        set(${gir_vars_prefix} ${gir_library})
-       set(${gir_vars_prefix}_SCANNERFLAGS "--warn-all")
+       set(${gir_vars_prefix}_SCANNERFLAGS ${gir_SCANNER_EXTRA_ARGS})
        set(${gir_vars_prefix}_VERSION "${gir_library_version}")
        set(${gir_vars_prefix}_LIBRARY "${gir_vars_prefix}")
        set(${gir_vars_prefix}_INCLUDES ${${gir_includes_var}})
diff --git a/src/libebackend/CMakeLists.txt b/src/libebackend/CMakeLists.txt
index b8baf5078..592b69968 100644
--- a/src/libebackend/CMakeLists.txt
+++ b/src/libebackend/CMakeLists.txt
@@ -138,3 +138,44 @@ install(TARGETS ebackend
 install(FILES ${HEADERS}
        DESTINATION ${privincludedir}/libebackend
 )
+
+set(gir_sources ${SOURCES} ${HEADERS})
+set(gir_identifies_prefixes E)
+set(gir_includes GObject-2.0 Gio-2.0 Soup-2.4 libxml2-2.0)
+set(gir_cflags
+       -DLIBEBACKEND_COMPILATION
+)
+set(gir_libdirs
+       ${CMAKE_BINARY_DIR}/src/private
+       ${CMAKE_BINARY_DIR}/src/camel
+       ${CMAKE_BINARY_DIR}/src/libedataserver
+)
+set(gir_libs
+       camel
+       edataserver
+       ebackend
+)
+set(gir_deps
+       ${CMAKE_BINARY_DIR}/src/camel/Camel-${API_VERSION}.gir
+       ${CMAKE_BINARY_DIR}/src/libedataserver/EDataServer-${API_VERSION}.gir
+)
+
+gir_filter_out_sources(gir_sources e-cache-reaper-utils.)
+gir_filter_out_sources(gir_sources e-dbhash.)
+gir_filter_out_sources(gir_sources e-db3-utils.)
+
+gir_add_introspection_simple(
+       EBackend
+       libebackend
+       ${API_VERSION}
+       "libebackend/libebackend.h"
+       gir_identifies_prefixes
+       gir_includes
+       gir_cflags
+       gir_libdirs
+       gir_libs
+       gir_deps
+       gir_sources
+       SCANNER_EXTRA_ARGS
+       "--add-init-section=extern void e_cache_reaper_type_register (GTypeModule 
*type_module)$<SEMICOLON>e_cache_reaper_type_register (NULL)$<SEMICOLON>"
+)


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