[evolution-data-server/wip/cmake] Build private/ and libedataserver/



commit 5f2d7e88d0c0544df6c24466197e3da30a3eeb12
Author: Milan Crha <mcrha redhat com>
Date:   Thu Sep 22 00:32:41 2016 +0200

    Build private/ and libedataserver/

 CMakeLists.txt                          |    4 +
 camel/tests/CMakeLists.txt              |    2 +-
 cmake/modules/CheckTarget.cmake         |    3 +-
 cmake/modules/GLibTools.cmake           |   51 ++++++-
 cmake/modules/PkgConfigEx.cmake         |    2 +-
 libedataserver/CMakeLists.txt           |  257 +++++++++++++++++++++++++++++++
 libedataserver/e-data-server-util.c     |    6 -
 libedataserver/eds-version.h.in         |    6 +-
 libedataserver/libedataserver-private.h |    8 -
 libedataserver/libedataserver.pc.in     |   10 +-
 private/CMakeLists.txt                  |  189 +++++++++++++++++++++++
 11 files changed, 506 insertions(+), 32 deletions(-)
---
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 621b0e2..72d8fdd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -109,6 +109,8 @@ set(webkit2gtk_minimum_version 2.11.91)
 # Load modules from the source tree
 set(CMAKE_MODULE_PATH $CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
 
+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+
 # CMake modules
 include(CheckCCompilerFlag)
 include(CheckCSourceCompiles)
@@ -850,3 +852,5 @@ add_definitions(-DHAVE_CONFIG_H=1)
 print_build_options()
 
 add_subdirectory(camel)
+add_subdirectory(private)
+add_subdirectory(libedataserver)
diff --git a/camel/tests/CMakeLists.txt b/camel/tests/CMakeLists.txt
index 2c9bc8a..96c71ab 100644
--- a/camel/tests/CMakeLists.txt
+++ b/camel/tests/CMakeLists.txt
@@ -2,7 +2,7 @@ macro(add_camel_test_one _part _name _src_file)
        set(_test_ident cameltest-${_part}-${_name})
 
        # not using EXCLUDE_FROM_ALL to have the tests verified that they can be built
-       add_executable(${_test_ident} ${_src_file})
+       add_executable(${_test_ident} EXCLUDE_FROM_ALL ${_src_file})
 
        target_compile_definitions(${_test_ident} PRIVATE
                -DG_LOG_DOMAIN=\"${_test_ident}\"
diff --git a/cmake/modules/CheckTarget.cmake b/cmake/modules/CheckTarget.cmake
index debcc9d..a6a1427 100644
--- a/cmake/modules/CheckTarget.cmake
+++ b/cmake/modules/CheckTarget.cmake
@@ -5,7 +5,8 @@
 #
 # What you do is to call command:
 # add_check_test(_name)
-#   where _name is the name of the test, as defined by add_executable()
+#   where _name is the name of the test, as defined by add_executable().
+#   Note it is a good idea to use EXCLUDE_FROM_ALL within the add_executable().
 
 include(CTest)
 
diff --git a/cmake/modules/GLibTools.cmake b/cmake/modules/GLibTools.cmake
index 62fcd12..eed32e0 100644
--- a/cmake/modules/GLibTools.cmake
+++ b/cmake/modules/GLibTools.cmake
@@ -3,6 +3,7 @@
 # Provides functions to run glib tools.
 #
 # Functions:
+#
 # glib_mkenums(_output_filename_noext _enums_header _define_name)
 #    runs glib-mkenums to generate enumtypes .h and .c files from _enums_header.
 #    It searches for files in the current source directory and exports to the current
@@ -13,6 +14,22 @@
 #        which uses camel-enums.h as the source of known enums and generates
 #        camel-enumtypes.h which will use the CAMEL_ENUMTYPES_H define
 #        and also generates camel-enumtypes.c with the needed code.
+#
+# gdbus_codegen(_xml _interface_prefix _c_namespace _files_prefix _list_gens)
+#    runs gdbus-codegen to generate GDBus code from _xml file description,
+#    using _interface_prefix, _c_namespace and _files_prefix as arguments.
+#    The _list_gens is a list variable are stored expected generated files.
+#
+#    An example call is:
+#        set(GENERATED_DBUS_LOCALE
+#               e-dbus-localed.c
+#              e-dbus-localed.h
+#        )
+#        gdbus_codegen(org.freedesktop.locale1.xml org.freedesktop. E_DBus e-dbus-localed 
GENERATED_DBUS_LOCALE)
+#
+# gdbus_codegen_custom(_xml _interface_prefix _c_namespace _files_prefix _list_gens _args)
+#    The same as gdbus_codegen() except allows to pass other arguments to the call,
+#    like for example --c-generate-object-manager
 
 find_program(GLIB_MKENUMS glib-mkenums)
 if(NOT GLIB_MKENUMS)
@@ -48,11 +65,11 @@ G_END_DECLS
 #endif /* ${_define_name} */
 /*** END file-tail ***/")
 
-       file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/enumtypes.h.template" 
"${HEADER_TMPL}\n")
+       file(WRITE 
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/enumtypes-${_output_filename_noext}.h.tmpl" 
"${HEADER_TMPL}\n")
 
        add_custom_command(
                OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_output_filename_noext}.h
-               COMMAND ${GLIB_MKENUMS} --template 
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/enumtypes.h.template" 
"${CMAKE_CURRENT_SOURCE_DIR}/${_enums_header}" >${CMAKE_CURRENT_BINARY_DIR}/${_output_filename_noext}.h
+               COMMAND ${GLIB_MKENUMS} --template 
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/enumtypes-${_output_filename_noext}.h.tmpl" 
"${CMAKE_CURRENT_SOURCE_DIR}/${_enums_header}" >${CMAKE_CURRENT_BINARY_DIR}/${_output_filename_noext}.h
        )
 
 set(SOURCE_TMPL "
@@ -95,10 +112,34 @@ GType
 
 /*** END value-tail ***/")
 
-       file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/enumtypes.c.template" 
"${SOURCE_TMPL}\n")
+       file(WRITE 
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/enumtypes-${_output_filename_noext}.c.tmpl" 
"${SOURCE_TMPL}\n")
 
        add_custom_command(
                OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_output_filename_noext}.c
-               COMMAND ${GLIB_MKENUMS} --template 
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/enumtypes.c.template" 
"${CMAKE_CURRENT_SOURCE_DIR}/${_enums_header}" >${CMAKE_CURRENT_BINARY_DIR}/${_output_filename_noext}.c
+               COMMAND ${GLIB_MKENUMS} --template 
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/enumtypes-${_output_filename_noext}.c.tmpl" 
"${CMAKE_CURRENT_SOURCE_DIR}/${_enums_header}" >${CMAKE_CURRENT_BINARY_DIR}/${_output_filename_noext}.c
        )
-endfunction()
+endfunction(glib_mkenums)
+
+
+find_program(GDBUS_CODEGEN gdbus-codegen)
+if(NOT GDBUS_CODEGEN)
+       message(FATAL_ERROR "Cannot find gdbus-codegen, which is required to build ${PROJECT_NAME}")
+endif(NOT GDBUS_CODEGEN)
+
+function(gdbus_codegen_custom _xml _interface_prefix _c_namespace _files_prefix _list_gens _args)
+       add_custom_command(
+               OUTPUT ${${_list_gens}}
+               COMMAND ${GDBUS_CODEGEN}
+               ARGS --interface-prefix ${_interface_prefix}
+                       --c-namespace ${_c_namespace}
+                       --generate-c-code ${_files_prefix}
+                       --generate-docbook ${_files_prefix}
+                       ${_args}
+                       ${CMAKE_CURRENT_SOURCE_DIR}/${_xml}
+               VERBATIM
+       )
+endfunction(gdbus_codegen_custom)
+
+function(gdbus_codegen _xml _interface_prefix _c_namespace _files_prefix _list_gens)
+       gdbus_codegen_custom(${_xml} ${_interface_prefix} ${_c_namespace} ${_files_prefix} ${_list_gens} "")
+endfunction(gdbus_codegen)
diff --git a/cmake/modules/PkgConfigEx.cmake b/cmake/modules/PkgConfigEx.cmake
index c8bfce0..5c4a17d 100644
--- a/cmake/modules/PkgConfigEx.cmake
+++ b/cmake/modules/PkgConfigEx.cmake
@@ -26,7 +26,7 @@
 find_package(PkgConfig REQUIRED)
 
 macro(pkg_check_modules_for_option _option_name _option_description _prefix _module0)
-       pkg_check_modules(${_prefix} ${_module0})
+       pkg_check_modules(${_prefix} ${_module0} ${ARGN})
 
        if(NOT ${_prefix}_FOUND)
                message(FATAL_ERROR "Necessary libraries not or not enough version. If you want to disable 
${_option_description}, please use -D${_option_name}=OFF argument to cmake command.")
diff --git a/libedataserver/CMakeLists.txt b/libedataserver/CMakeLists.txt
new file mode 100644
index 0000000..80cdae6
--- /dev/null
+++ b/libedataserver/CMakeLists.txt
@@ -0,0 +1,257 @@
+glib_mkenums(e-source-enumtypes e-source-enums.h E_SOURCE_ENUMTYPES_H)
+
+add_pkgconfig_file(libedataserver.pc.in libedataserver-${API_VERSION}.pc)
+
+configure_file(
+       ${CMAKE_CURRENT_SOURCE_DIR}/eds-version.h.in
+       ${CMAKE_CURRENT_BINARY_DIR}/eds-version.h
+       @ONLY
+)
+
+# We put the C++ code into a separate static library, so that we can use
+# the C linker for libebook-contacts.
+
+add_library(edataserver-private STATIC
+       e-alphabet-index-private.cpp
+       e-transliterator-private.cpp
+)
+
+target_compile_definitions(edataserver-private PRIVATE
+       -DG_LOG_DOMAIN=\"e-data-server\"
+       -DLIBEDATASERVER_COMPILATION
+)
+
+target_compile_options(edataserver-private PUBLIC
+       ${DATA_SERVER_CFLAGS}
+       ${ICU_CFLAGS}
+)
+
+target_include_directories(edataserver-private PUBLIC
+       ${CMAKE_BINARY_DIR}
+       ${CMAKE_CURRENT_BINARY_DIR}
+       ${DATA_SERVER_INCLUDE_DIRS}
+       ${ICU_INCLUDE_DIRS}
+)
+
+target_link_libraries(edataserver-private
+       ${DATA_SERVER_LDFLAGS}
+       ${ICU_LDFLAGS}
+)
+
+set(SOURCES
+       e-alphabet-index-private.h
+       e-cancellable-locks.c
+       e-categories.c
+       e-client.c
+       e-client-private.h
+       e-collator.c
+       e-credentials.c
+       e-extensible.c
+       e-extension.c
+       e-flag.c
+       e-free-form-exp.c
+       e-gdbus-templates.c
+       e-iterator.c
+       e-list.c
+       e-list-iterator.c
+       e-memory.c
+       e-module.c
+       e-network-monitor.c
+       e-operation-pool.c
+       e-proxy.c
+       e-secret-store.c
+       e-sexp.c
+       e-soup-auth-bearer.c
+       e-soup-ssl-trust.c
+       e-source.c
+       e-source-extension.c
+       e-source-address-book.c
+       e-source-alarms.c
+       e-source-authentication.c
+       e-source-autocomplete.c
+       e-source-backend.c
+       e-source-calendar.c
+       e-source-camel.c
+       e-source-collection.c
+       e-source-contacts.c
+       e-source-credentials-provider.c
+       e-source-credentials-provider-impl.c
+       e-source-credentials-provider-impl-google.c
+       e-source-credentials-provider-impl-password.c
+       e-source-enumtypes.c
+       e-source-goa.c
+       e-source-ldap.c
+       e-source-local.c
+       e-source-mail-account.c
+       e-source-mail-composition.c
+       e-source-mail-identity.c
+       e-source-mail-signature.c
+       e-source-mail-submission.c
+       e-source-mail-transport.c
+       e-source-mdn.c
+       e-source-offline.c
+       e-source-openpgp.c
+       e-source-proxy.c
+       e-source-refresh.c
+       e-source-registry.c
+       e-source-resource.c
+       e-source-revision-guards.c
+       e-source-security.c
+       e-source-selectable.c
+       e-source-smime.c
+       e-source-uoa.c
+       e-source-weather.c
+       e-source-webdav.c
+       e-debug-log.c
+       e-time-utils.c
+       e-transliterator-private.h
+       e-uid.c
+       e-url.c
+       e-webdav-discover.c
+       e-data-server-util.c
+       e-xml-utils.c
+       e-xml-hash-utils.c
+       libedataserver-private.h
+       eds-version.c
+)
+
+set(HEADERS
+       libedataserver.h
+       e-cancellable-locks.h
+       e-categories.h
+       e-client.h
+       e-collator.h
+       e-credentials.h
+       e-extensible.h
+       e-extension.h
+       e-flag.h
+       e-free-form-exp.h
+       e-gdbus-templates.h
+       e-iterator.h
+       e-list.h
+       e-list-iterator.h
+       e-memory.h
+       e-module.h
+       e-network-monitor.h
+       e-operation-pool.h
+       e-proxy.h
+       e-secret-store.h
+       e-sexp.h
+       e-soup-auth-bearer.h
+       e-soup-ssl-trust.h
+       e-source.h
+       e-source-address-book.h
+       e-source-alarms.h
+       e-source-authentication.h
+       e-source-autocomplete.h
+       e-source-backend.h
+       e-source-calendar.h
+       e-source-camel.h
+       e-source-collection.h
+       e-source-contacts.h
+       e-source-credentials-provider.h
+       e-source-credentials-provider-impl.h
+       e-source-credentials-provider-impl-google.h
+       e-source-credentials-provider-impl-password.h
+       e-source-enums.h
+       e-source-extension.h
+       e-source-goa.h
+       e-source-ldap.h
+       e-source-local.h
+       e-source-mail-account.h
+       e-source-mail-composition.h
+       e-source-mail-identity.h
+       e-source-mail-signature.h
+       e-source-mail-submission.h
+       e-source-mail-transport.h
+       e-source-mdn.h
+       e-source-offline.h
+       e-source-openpgp.h
+       e-source-proxy.h
+       e-source-refresh.h
+       e-source-registry.h
+       e-source-resource.h
+       e-source-revision-guards.h
+       e-source-security.h
+       e-source-selectable.h
+       e-source-smime.h
+       e-source-uoa.h
+       e-source-weather.h
+       e-source-webdav.h
+       e-debug-log.h
+       e-time-utils.h
+       e-uid.h
+       e-url.h
+       e-webdav-discover.h
+       e-data-server-util.h
+       e-xml-utils.h
+       e-xml-hash-utils.h
+       ${CMAKE_CURRENT_BINARY_DIR}/e-source-enumtypes.h
+       ${CMAKE_CURRENT_BINARY_DIR}/eds-version.h
+)
+
+add_library(edataserver SHARED
+       ${SOURCES}
+       ${HEADERS}
+)
+
+add_dependencies(edataserver
+       camel
+       edataserver-private
+       edbus-private)
+
+set_target_properties(edataserver PROPERTIES
+       VERSION "${LIBEDATASERVER_CURRENT}.${LIBEDATASERVER_REVISION}.${LIBEDATASERVER_AGE}"
+       SOVERSION ${LIBEDATASERVER_CURRENT}
+       OUTPUT_NAME edataserver-${API_VERSION}
+)
+
+target_compile_definitions(edataserver PRIVATE
+       -DG_LOG_DOMAIN=\"e-data-server\"
+       -DE_DATA_SERVER_PREFIX=\"${CMAKE_INSTALL_PREFIX}\"
+       -DE_DATA_SERVER_LOCALEDIR=\"${LOCALE_INSTALL_PREFIX}\"
+       -DE_DATA_SERVER_IMAGESDIR=\"${imagesdir}\"
+       -DE_DATA_SERVER_CREDENTIALMODULEDIR=\"${credentialmoduledir}\"
+       -DE_DATA_SERVER_PRIVDATADIR=\"${privdatadir}\"
+       -DLIBEDATASERVER_COMPILATION
+)
+
+target_compile_options(edataserver PUBLIC
+       ${DATA_SERVER_CFLAGS}
+       ${GCR_BASE_CFLAGS}
+       ${GIO_UNIX_CFLAGS}
+       ${ICU_CFLAGS}
+       ${GOOGLE_AUTH_CFLAGS}
+)
+
+target_include_directories(edataserver PUBLIC
+       ${CMAKE_BINARY_DIR}
+       ${CMAKE_BINARY_DIR}/private
+       ${CMAKE_SOURCE_DIR}
+       ${CMAKE_SOURCE_DIR}/private
+       ${CMAKE_CURRENT_BINARY_DIR}
+       ${DATA_SERVER_INCLUDE_DIRS}
+       ${GCR_BASE_INCLUDE_DIRS}
+       ${GIO_UNIX_INCLUDE_DIRS}
+       ${ICU_INCLUDE_DIRS}
+       ${GOOGLE_AUTH_INCLUDE_DIRS}
+)
+
+target_link_libraries(edataserver
+       camel
+       edbus-private
+       edataserver-private
+       ${DATA_SERVER_LDFLAGS}
+       ${GCR_BASE_LDFLAGS}
+       ${GIO_UNIX_LDFLAGS}
+       ${ICU_LDFLAGS}
+       ${GOOGLE_AUTH_LDFLAGS}
+)
+
+install(TARGETS edataserver
+       DESTINATION ${LIB_INSTALL_DIR}
+)
+
+install(FILES ${HEADERS}
+       DESTINATION ${privincludedir}/libedataserver
+)
diff --git a/libedataserver/e-data-server-util.c b/libedataserver/e-data-server-util.c
index 60bb63d..fdfd58a 100644
--- a/libedataserver/e-data-server-util.c
+++ b/libedataserver/e-data-server-util.c
@@ -1808,9 +1808,7 @@ static const gchar *prefix = NULL;
 static const gchar *cp_prefix;
 
 static const gchar *localedir;
-static const gchar *extensiondir;
 static const gchar *imagesdir;
-static const gchar *ui_uidir;
 static const gchar *credentialmoduledir;
 
 static HMODULE hmodule;
@@ -1918,9 +1916,7 @@ setup (void)
        g_free (cp_pfx);
 
        localedir = replace_prefix (cp_prefix, E_DATA_SERVER_LOCALEDIR);
-       extensiondir = replace_prefix (prefix, E_DATA_SERVER_EXTENSIONDIR);
        imagesdir = replace_prefix (prefix, E_DATA_SERVER_IMAGESDIR);
-       ui_uidir = replace_prefix (prefix, E_DATA_SERVER_UI_UIDIR);
        credentialmoduledir = replace_prefix (prefix, E_DATA_SERVER_CREDENTIALMODULEDIR);
 
        G_UNLOCK (mutex);
@@ -1944,9 +1940,7 @@ const gchar * \
 e_util_get_##varbl (void) \
        GETTER_IMPL (varbl)
 
-PRIVATE_GETTER (extensiondir)
 PRIVATE_GETTER (imagesdir)
-PRIVATE_GETTER (ui_uidir)
 PRIVATE_GETTER (credentialmoduledir);
 
 PUBLIC_GETTER (prefix)
diff --git a/libedataserver/eds-version.h.in b/libedataserver/eds-version.h.in
index 6a39715..fb709f2 100644
--- a/libedataserver/eds-version.h.in
+++ b/libedataserver/eds-version.h.in
@@ -29,7 +29,7 @@
  * time, rather than from the library linked against at application run
  * time.
  **/
-#define EDS_MAJOR_VERSION @EDS_MAJOR_VERSION@
+#define EDS_MAJOR_VERSION @PROJECT_VERSION_MAJOR@
 
 /**
  * EDS_MINOR_VERSION:
@@ -39,7 +39,7 @@
  * time, rather than from the library linked against at application run
  * time.
  **/
-#define EDS_MINOR_VERSION @EDS_MINOR_VERSION@
+#define EDS_MINOR_VERSION @PROJECT_VERSION_MINOR@
 
 /**
  * EDS_MICRO_VERSION:
@@ -49,7 +49,7 @@
  * time, rather than from the library linked against at application run
  * time.
  **/
-#define EDS_MICRO_VERSION @EDS_MICRO_VERSION@
+#define EDS_MICRO_VERSION @PROJECT_VERSION_PATCH@
 
 /**
  * EDS_CHECK_VERSION:
diff --git a/libedataserver/libedataserver-private.h b/libedataserver/libedataserver-private.h
index 42f366e..b9733f0 100644
--- a/libedataserver/libedataserver-private.h
+++ b/libedataserver/libedataserver-private.h
@@ -23,20 +23,12 @@
 
 #ifdef G_OS_WIN32
 
-const gchar *  _libedataserver_get_extensiondir        (void) G_GNUC_CONST;
 const gchar *  _libedataserver_get_imagesdir           (void) G_GNUC_CONST;
-const gchar *  _libedataserver_get_ui_uidir            (void) G_GNUC_CONST;
 const gchar *  _libedataserver_get_credentialmoduledir (void) G_GNUC_CONST;
 
-#undef E_DATA_SERVER_EXTENSIONDIR
-#define E_DATA_SERVER_EXTENSIONDIR _libedataserver_get_extensiondir ()
-
 #undef E_DATA_SERVER_IMAGESDIR
 #define E_DATA_SERVER_IMAGESDIR _libedataserver_get_imagesdir ()
 
-#undef E_DATA_SERVER_UI_UIDIR
-#define E_DATA_SERVER_UI_UIDIR _libedataserver_get_ui_uidir ()
-
 #undef E_DATA_SERVER_CREDENTIALMODULEDIR
 #define E_DATA_SERVER_CREDENTIALMODULEDIR _libedataserver_get_credentialmoduledir ()
 
diff --git a/libedataserver/libedataserver.pc.in b/libedataserver/libedataserver.pc.in
index 524d88b..0f3118b 100644
--- a/libedataserver/libedataserver.pc.in
+++ b/libedataserver/libedataserver.pc.in
@@ -1,9 +1,5 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-datarootdir=@datarootdir@
-datadir=@datadir@
+prefix=@CMAKE_INSTALL_PREFIX@
+libdir=@LIB_INSTALL_DIR@
 
 privlibdir=@privlibdir@
 privincludedir=@privincludedir@
@@ -12,7 +8,7 @@ credentialmoduledir=@credentialmoduledir@
 
 Name: libedataserver
 Description: Utility library for Evolution Data Server
-Version: @VERSION@
+Version: @PROJECT_VERSION@
 Requires: gio-2.0 gmodule-2.0 libsecret-1 libxml-2.0 libsoup-2.4
 Requires.private: camel-@API_VERSION@
 Libs: -L${libdir} -ledataserver-@API_VERSION@
diff --git a/private/CMakeLists.txt b/private/CMakeLists.txt
new file mode 100644
index 0000000..bbedce2
--- /dev/null
+++ b/private/CMakeLists.txt
@@ -0,0 +1,189 @@
+
+set(GENERATED_DBUS_LOCALE
+       e-dbus-localed.c
+       e-dbus-localed.h
+)
+
+gdbus_codegen(org.freedesktop.locale1.xml
+       org.freedesktop.
+       E_DBus
+       e-dbus-localed
+       GENERATED_DBUS_LOCALE)
+
+set(GENERATED_DBUS_SOURCE
+       e-dbus-source.c
+       e-dbus-source.h
+       e-dbus-source-org.gnome.evolution.dataserver.Source.xml
+       e-dbus-source-org.gnome.evolution.dataserver.Source.Removable.xml
+       e-dbus-source-org.gnome.evolution.dataserver.Source.Writable.xml
+       e-dbus-source-org.gnome.evolution.dataserver.Source.RemoteCreatable.xml
+       e-dbus-source-org.gnome.evolution.dataserver.Source.RemoteDeletable.xml
+       e-dbus-source-org.gnome.evolution.dataserver.Source.OAuth2Support.xml
+)
+
+gdbus_codegen_custom(org.gnome.evolution.dataserver.Source.xml
+       org.gnome.evolution.dataserver.
+       E_DBus
+       e-dbus-source
+       GENERATED_DBUS_SOURCE
+       --c-generate-object-manager)
+
+set(GENERATED_DBUS_SOURCE_MANAGER
+       e-dbus-source-manager.c
+       e-dbus-source-manager.h
+       e-dbus-source-manager-org.gnome.evolution.dataserver.SourceManager.xml
+)
+
+gdbus_codegen(org.gnome.evolution.dataserver.SourceManager.xml
+       org.gnome.evolution.dataserver.
+       E_DBus
+       e-dbus-source-manager
+       GENERATED_DBUS_SOURCE_MANAGER)
+
+set(GENERATED_DBUS_AUTHENTICATOR
+       e-dbus-authenticator.c
+       e-dbus-authenticator.h
+       e-dbus-authenticator-org.gnome.evolution.dataserver.Authenticator.xml
+)
+
+gdbus_codegen(org.gnome.evolution.dataserver.Authenticator.xml
+       org.gnome.evolution.dataserver.
+       E_DBus
+       e-dbus-authenticator
+       GENERATED_DBUS_AUTHENTICATOR)
+
+set(GENERATED_DBUS_USER_PROMPTER
+       e-dbus-user-prompter.c
+       e-dbus-user-prompter.h
+       e-dbus-user-prompter-org.gnome.evolution.dataserver.UserPrompter.xml
+)
+
+gdbus_codegen(org.gnome.evolution.dataserver.UserPrompter.xml
+       org.gnome.evolution.dataserver.
+       E_DBus
+       e-dbus-user-prompter
+       GENERATED_DBUS_USER_PROMPTER)
+
+set(GENERATED_DBUS_ADDRESS_BOOK
+       e-dbus-address-book.c
+       e-dbus-address-book.h
+       e-dbus-address-book-org.gnome.evolution.dataserver.AddressBook.xml
+)
+
+gdbus_codegen(org.gnome.evolution.dataserver.AddressBook.xml
+       org.gnome.evolution.dataserver.
+       E_DBus
+       e-dbus-address-book
+       GENERATED_DBUS_ADDRESS_BOOK)
+
+set(GENERATED_DBUS_ADDRESS_BOOK_CURSOR
+       e-dbus-address-book-cursor.c
+       e-dbus-address-book-cursor.h
+       e-dbus-address-book-cursor-org.gnome.evolution.dataserver.AddressBookCursor.xml
+)
+
+gdbus_codegen(org.gnome.evolution.dataserver.AddressBookCursor.xml
+       org.gnome.evolution.dataserver.
+       E_DBus
+       e-dbus-address-book-cursor
+       GENERATED_DBUS_ADDRESS_BOOK_CURSOR)
+
+set(GENERATED_DBUS_DIRECT_BOOK
+       e-dbus-direct-book.c
+       e-dbus-direct-book.h
+       e-dbus-direct-book-org.gnome.evolution.dataserver.DirectBook.xml
+)
+
+gdbus_codegen(org.gnome.evolution.dataserver.DirectBook.xml
+       org.gnome.evolution.dataserver.
+       E_DBus
+       e-dbus-direct-book
+       GENERATED_DBUS_DIRECT_BOOK)
+
+set(GENERATED_DBUS_ADDRESS_BOOK_FACTORY
+       e-dbus-address-book-factory.c
+       e-dbus-address-book-factory.h
+       e-dbus-address-book-factory-org.gnome.evolution.dataserver.AddressBookFactory.xml
+)
+
+gdbus_codegen(org.gnome.evolution.dataserver.AddressBookFactory.xml
+       org.gnome.evolution.dataserver.
+       E_DBus
+       e-dbus-address-book-factory
+       GENERATED_DBUS_ADDRESS_BOOK_FACTORY)
+
+set(GENERATED_DBUS_CALENDAR
+       e-dbus-calendar.c
+       e-dbus-calendar.h
+       e-dbus-calendar-org.gnome.evolution.dataserver.Calendar.xml
+)
+
+gdbus_codegen(org.gnome.evolution.dataserver.Calendar.xml
+       org.gnome.evolution.dataserver.
+       E_DBus
+       e-dbus-calendar
+       GENERATED_DBUS_CALENDAR)
+
+set(GENERATED_DBUS_CALENDAR_FACTORY
+       e-dbus-calendar-factory.c
+       e-dbus-calendar-factory.h
+       e-dbus-calendar-factory-org.gnome.evolution.dataserver.CalendarFactory.xml
+)
+
+gdbus_codegen(org.gnome.evolution.dataserver.CalendarFactory.xml
+       org.gnome.evolution.dataserver.
+       E_DBus
+       e-dbus-calendar-factory
+       GENERATED_DBUS_CALENDAR_FACTORY)
+
+set(GENERATED_DBUS_SUBPROCESS_BACKEND
+       e-dbus-subprocess-backend.c
+       e-dbus-subprocess-backend.h
+       e-dbus-subprocess-backend-org.gnome.evolution.dataserver.Subprocess.Backend.xml
+)
+
+gdbus_codegen_custom(org.gnome.evolution.dataserver.Subprocess.Backend.xml
+       org.gnome.evolution.dataserver.
+       E_DBus_Subprocess
+       e-dbus-subprocess-backend
+       GENERATED_DBUS_SUBPROCESS_BACKEND
+       --c-generate-object-manager)
+
+add_library(edbus-private SHARED
+       ${GENERATED_DBUS_LOCALE}
+       ${GENERATED_DBUS_SOURCE}
+       ${GENERATED_DBUS_SOURCE_MANAGER}
+       ${GENERATED_DBUS_AUTHENTICATOR}
+       ${GENERATED_DBUS_ADDRESS_BOOK}
+       ${GENERATED_DBUS_ADDRESS_BOOK_CURSOR}
+       ${GENERATED_DBUS_DIRECT_BOOK}
+       ${GENERATED_DBUS_ADDRESS_BOOK_FACTORY}
+       ${GENERATED_DBUS_CALENDAR}
+       ${GENERATED_DBUS_CALENDAR_FACTORY}
+       ${GENERATED_DBUS_USER_PROMPTER}
+       ${GENERATED_DBUS_SUBPROCESS_BACKEND}
+)
+
+target_compile_definitions(edbus-private PRIVATE
+       -DG_LOG_DOMAIN=\"libedbus-private\"
+)
+
+target_compile_options(edbus-private PUBLIC
+       ${DATA_SERVER_CFLAGS}
+       ${GIO_UNIX_CFLAGS}
+)
+
+target_include_directories(edbus-private PUBLIC
+       ${CMAKE_BINARY_DIR}
+       ${DATA_SERVER_INCLUDE_DIRS}
+       ${GIO_UNIX_INCLUDE_DIRS}
+)
+
+target_link_libraries(edbus-private
+       ${DATA_SERVER_LDFLAGS}
+       ${GIO_UNIX_LDFLAGS}
+)
+
+install(TARGETS edbus-private
+       DESTINATION ${privsolibdir}
+)


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