[evolution-data-server/wip/cmake] calendar + modules + tools



commit 9ce48fcc2aba902cc80a970b9c14493a82a56b7a
Author: Milan Crha <mcrha redhat com>
Date:   Fri Sep 23 12:40:14 2016 +0200

    calendar + modules + tools
    
    The modules/ubuntu-online-accounts/ requires changes and
    actual testing whether it builds properly with its data files.

 CMakeLists.txt                                |   64 ++++++++----
 addressbook/libedata-book/CMakeLists.txt      |    3 +-
 calendar/CMakeLists.txt                       |    4 +
 calendar/backends/CMakeLists.txt              |   12 ++
 calendar/backends/caldav/CMakeLists.txt       |   46 +++++++++
 calendar/backends/contacts/CMakeLists.txt     |   50 +++++++++
 calendar/backends/file/CMakeLists.txt         |   79 ++++++++++++++
 calendar/backends/gtasks/CMakeLists.txt       |   51 +++++++++
 calendar/backends/http/CMakeLists.txt         |   46 +++++++++
 calendar/backends/weather/CMakeLists.txt      |   51 +++++++++
 calendar/libecal/CMakeLists.txt               |   93 +++++++++++++++++
 calendar/libecal/libecal.pc.in                |   14 +--
 calendar/libedata-cal/CMakeLists.txt          |  136 +++++++++++++++++++++++++
 calendar/libedata-cal/libedata-cal.pc.in      |   15 +--
 calendar/libegdbus/CMakeLists.txt             |   36 +++++++
 evolution-data-server.pc.in                   |   13 +--
 modules/CMakeLists.txt                        |   83 +++++++++++++++
 modules/cache-reaper/CMakeLists.txt           |   17 +++
 modules/gnome-online-accounts/CMakeLists.txt  |   38 +++++++
 modules/google-backend/CMakeLists.txt         |   17 +++
 modules/outlook-backend/CMakeLists.txt        |   17 +++
 modules/owncloud-backend/CMakeLists.txt       |   17 +++
 modules/secret-monitor/CMakeLists.txt         |   17 +++
 modules/trust-prompt/CMakeLists.txt           |   41 ++++++++
 modules/ubuntu-online-accounts/CMakeLists.txt |  103 +++++++++++++++++++
 modules/yahoo-backend/CMakeLists.txt          |   17 +++
 tools/CMakeLists.txt                          |    1 +
 tools/addressbook-export/CMakeLists.txt       |   59 +++++++++++
 28 files changed, 1091 insertions(+), 49 deletions(-)
---
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9b85bf3..769839a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -92,7 +92,7 @@ add_definitions(-DGDK_VERSION_MIN_REQUIRED=${gdk_encoded_version})
 add_definitions(-DSOUP_VERSION_MIN_REQUIRED=${soup_encoded_version})
 
 set(gcr_minimum_version 3.4)
-set(libgdata_minimum_version 0.10)
+set(libgdata_minimum_version 0.15.1)
 set(libical_minimum_version 0.43)
 set(libsecret_minimum_version 0.5)
 set(libxml_minimum_version 2.0.0)
@@ -142,7 +142,7 @@ add_printable_variable_path(SYSCONF_INSTALL_DIR "Install directory for system co
 set(privdatadir "${SHARE_INSTALL_DIR}/${PROJECT_NAME}")
 set(privincludedir "${INCLUDE_INSTALL_DIR}/${PROJECT_NAME}")
 set(privlibdir "${LIB_INSTALL_DIR}/${PROJECT_NAME}")
-set(privlibexecdir "${LIBEXEC_INSTALL_DIR}'/${PROJECT_NAME}")
+set(privlibexecdir "${LIBEXEC_INSTALL_DIR}/${PROJECT_NAME}")
 
 if(WIN32)
        # On Win32 there is no "rpath" mechanism. We install the private
@@ -160,7 +160,6 @@ set(ebook_backenddir "${privlibdir}/addressbook-backends")
 set(ecal_backenddir "${privlibdir}/calendar-backends")
 set(ro_sourcesdir "${privdatadir}/ro-sources")
 set(rw_sourcesdir "${privdatadir}/rw-sources")
-set(weatherdatadir "${privdatadir}/weather")
 set(camel_providerdir "${privlibdir}/camel-providers")
 
 # *******************
@@ -771,6 +770,24 @@ else(ENABLE_LARGEFILE)
 endif(ENABLE_LARGEFILE)
 
 # ******************************
+# libical tweaks, part I
+# ******************************
+
+pkg_check_at_least_version(HAVE_LIBICAL_2_0 libical 2.0)
+
+# *****
+# libical.pc from libical-0.43 has a bug in its CFlags.
+# It wants apps to include <libical/ical*.h> but it's CFlags make it difficult
+# to differentiate between <libical/ical.h> and <ical.h>
+# We have fixed all our instances to use <libical/ical.h>.
+# Work-around the buggy CFlags for the 0.43 version.
+# *****
+pkg_check_exact_version(libical_is_0_43 libical 0.43)
+if(libical_is_0_43)
+       pkg_check_variable(LIBICAL_EXTRA_CFLAGS libical includedir)
+endif(libical_is_0_43)
+
+# ******************************
 # subparts flags
 # ******************************
 
@@ -792,23 +809,9 @@ string(STRIP "${CAMEL_CFLAGS}" CAMEL_CFLAGS)
 string(STRIP "${CAMEL_LDFLAGS}" CAMEL_LDFLAGS)
 
 # ******************************
-# libical tweaks
+# libical tweaks, part II (re-using CALENDAR_CFLAGS/CALENDAR_LDFLAGS)
 # ******************************
 
-pkg_check_at_least_version(HAVE_LIBICAL_2_0 libical 2.0)
-
-# *****
-# libical.pc from libical-0.43 has a bug in its CFlags.
-# It wants apps to include <libical/ical*.h> but it's CFlags make it difficult
-# to differentiate between <libical/ical.h> and <ical.h>
-# We have fixed all our instances to use <libical/ical.h>.
-# Work-around the buggy CFlags for the 0.43 version.
-# *****
-pkg_check_exact_version(libical_is_0_43 libical 0.43)
-if(libical_is_0_43)
-       pkg_check_variable(LIBICAL_EXTRA_CFLAGS libical includedir)
-endif(libical_is_0_43)
-
 set(CMAKE_REQUIRED_FLAGS "${CALENDAR_CFLAGS}")
 set(CMAKE_REQUIRED_LIBRARIES "${CALENDAR_LDFLAGS}")
 
@@ -857,9 +860,32 @@ add_definitions(-DHAVE_CONFIG_H=1)
 
 print_build_options()
 
+add_pkgconfig_file(evolution-data-server.pc.in evolution-data-server-${API_VERSION}.pc)
+
+#add_subdirectory(art)
 add_subdirectory(addressbook)
+add_subdirectory(calendar)
 add_subdirectory(camel)
 add_subdirectory(libebackend)
 add_subdirectory(libedataserver)
-add_subdirectory(libedataserverui)
+add_subdirectory(modules)
 add_subdirectory(private)
+#add_subdirectory(po)
+#add_subdirectory(services)
+#add_subdirectory(tests)
+add_subdirectory(tools)
+
+if(HAVE_GTK)
+       add_subdirectory(libedataserverui)
+endif(HAVE_GTK)
+
+#if(ENABLE_GTK_DOC)
+#      add_subdirectory(doc)
+#endif(ENABLE_GTK_DOC)
+#if(ENABLE_EXAMPLES)
+#      add_subdirectory(examples)
+#endif(ENABLE_EXAMPLES)
+
+#if(ENABLE_VALA_BINDINGS)
+#      add_subdirectory(vala)
+#endif(ENABLE_VALA_BINDINGS)
diff --git a/addressbook/libedata-book/CMakeLists.txt b/addressbook/libedata-book/CMakeLists.txt
index bfd610a..44bc75f 100644
--- a/addressbook/libedata-book/CMakeLists.txt
+++ b/addressbook/libedata-book/CMakeLists.txt
@@ -65,7 +65,7 @@ add_dependencies(edata-book
 )
 
 set_target_properties(edata-book PROPERTIES
-       VERSION "${LIBEDATABOOK_CURRENT}.${LIBEDATABOOK_REVISION}.${LIBDATAEBOOK_AGE}"
+       VERSION "${LIBEDATABOOK_CURRENT}.${LIBEDATABOOK_REVISION}.${LIBEDATABOOK_AGE}"
        SOVERSION ${LIBEDATABOOK_CURRENT}
        OUTPUT_NAME edata-book-${API_VERSION}
 )
@@ -186,7 +186,6 @@ target_include_directories(evolution-addressbook-factory-subprocess PUBLIC
 )
 
 target_link_libraries(evolution-addressbook-factory-subprocess
-       edata-book
        ${DEPENDENCIES}
        ${ADDRESSBOOK_LDFLAGS}
        ${GTK_LDFLAGS}
diff --git a/calendar/CMakeLists.txt b/calendar/CMakeLists.txt
new file mode 100644
index 0000000..b555f9e
--- /dev/null
+++ b/calendar/CMakeLists.txt
@@ -0,0 +1,4 @@
+add_subdirectory(backends)
+add_subdirectory(libecal)
+add_subdirectory(libedata-cal)
+add_subdirectory(libegdbus)
diff --git a/calendar/backends/CMakeLists.txt b/calendar/backends/CMakeLists.txt
new file mode 100644
index 0000000..56b8c38
--- /dev/null
+++ b/calendar/backends/CMakeLists.txt
@@ -0,0 +1,12 @@
+add_subdirectory(caldav)
+add_subdirectory(contacts)
+add_subdirectory(file)
+add_subdirectory(http)
+
+if(HAVE_LIBGDATA)
+       add_subdirectory(gtasks)
+endif(HAVE_LIBGDATA)
+
+if(ENABLE_WEATHER)
+       add_subdirectory(weather)
+endif(ENABLE_WEATHER)
diff --git a/calendar/backends/caldav/CMakeLists.txt b/calendar/backends/caldav/CMakeLists.txt
new file mode 100644
index 0000000..d44609d
--- /dev/null
+++ b/calendar/backends/caldav/CMakeLists.txt
@@ -0,0 +1,46 @@
+set(DEPENDENCIES
+       ebackend
+       ecal
+       edataserver
+       edata-cal
+)
+
+set(SOURCES
+       e-cal-backend-caldav-factory.c
+       e-cal-backend-caldav.c
+       e-cal-backend-caldav.h
+)
+
+add_library(ecalbackendcaldav MODULE
+       ${SOURCES}
+)
+
+add_dependencies(ecalbackendcaldav
+       ${DEPENDENCIES}
+)
+
+target_compile_definitions(ecalbackendcaldav PRIVATE
+       -DG_LOG_DOMAIN=\"e-cal-backend-caldav\"
+       -DBACKENDDIR=\"${ecal_backenddir}\"
+)
+
+target_compile_options(ecalbackendcaldav PUBLIC
+       ${CALENDAR_CFLAGS}
+)
+
+target_include_directories(ecalbackendcaldav PUBLIC
+       ${CMAKE_BINARY_DIR}
+       ${CMAKE_SOURCE_DIR}
+       ${CMAKE_BINARY_DIR}/calendar
+       ${CMAKE_SOURCE_DIR}/calendar
+       ${CALENDAR_INCLUDE_DIRS}
+)
+
+target_link_libraries(ecalbackendcaldav
+       ${DEPENDENCIES}
+       ${CALENDAR_LDFLAGS}
+)
+
+install(TARGETS ecalbackendcaldav
+       DESTINATION ${ecal_backenddir}
+)
diff --git a/calendar/backends/contacts/CMakeLists.txt b/calendar/backends/contacts/CMakeLists.txt
new file mode 100644
index 0000000..8e70d2e
--- /dev/null
+++ b/calendar/backends/contacts/CMakeLists.txt
@@ -0,0 +1,50 @@
+set(DEPENDENCIES
+       ebackend
+       ebook
+       ebook-contacts
+       ecal
+       edataserver
+       edata-cal
+)
+
+set(SOURCES
+       e-cal-backend-contacts-factory.c
+       e-cal-backend-contacts.c
+       e-cal-backend-contacts.h
+)
+
+add_library(ecalbackendcontacts MODULE
+       ${SOURCES}
+)
+
+add_dependencies(ecalbackendcontacts
+       ${DEPENDENCIES}
+)
+
+target_compile_definitions(ecalbackendcontacts PRIVATE
+       -DG_LOG_DOMAIN=\"e-cal-backend-contacts\"
+       -DBACKENDDIR=\"${ecal_backenddir}\"
+)
+
+target_compile_options(ecalbackendcontacts PUBLIC
+       ${CALENDAR_CFLAGS}
+)
+
+target_include_directories(ecalbackendcontacts PUBLIC
+       ${CMAKE_BINARY_DIR}
+       ${CMAKE_SOURCE_DIR}
+       ${CMAKE_BINARY_DIR}/addressbook
+       ${CMAKE_SOURCE_DIR}/addressbook
+       ${CMAKE_BINARY_DIR}/calendar
+       ${CMAKE_SOURCE_DIR}/calendar
+       ${CALENDAR_INCLUDE_DIRS}
+)
+
+target_link_libraries(ecalbackendcontacts
+       ${DEPENDENCIES}
+       ${CALENDAR_LDFLAGS}
+)
+
+install(TARGETS ecalbackendcontacts
+       DESTINATION ${ecal_backenddir}
+)
diff --git a/calendar/backends/file/CMakeLists.txt b/calendar/backends/file/CMakeLists.txt
new file mode 100644
index 0000000..2434c49
--- /dev/null
+++ b/calendar/backends/file/CMakeLists.txt
@@ -0,0 +1,79 @@
+set(DEPENDENCIES
+       ebackend
+       ecal
+       edataserver
+       edata-cal
+)
+
+set(SOURCES
+       e-cal-backend-file-factory.c
+       e-cal-backend-file-events.c
+       e-cal-backend-file-events.h
+       e-cal-backend-file-journal.c
+       e-cal-backend-file-journal.h
+       e-cal-backend-file-todos.c
+       e-cal-backend-file-todos.h
+       e-cal-backend-file.c
+       e-cal-backend-file.h
+)
+
+add_library(ecalbackendfile MODULE
+       ${SOURCES}
+)
+
+add_dependencies(ecalbackendfile
+       ${DEPENDENCIES}
+)
+
+target_compile_definitions(ecalbackendfile PRIVATE
+       -DG_LOG_DOMAIN=\"e-cal-backend-file\"
+       -DBACKENDDIR=\"${ecal_backenddir}\"
+)
+
+target_compile_options(ecalbackendfile PUBLIC
+       ${CALENDAR_CFLAGS}
+)
+
+target_include_directories(ecalbackendfile PUBLIC
+       ${CMAKE_BINARY_DIR}
+       ${CMAKE_SOURCE_DIR}
+       ${CMAKE_BINARY_DIR}/calendar
+       ${CMAKE_SOURCE_DIR}/calendar
+       ${CALENDAR_INCLUDE_DIRS}
+)
+
+target_link_libraries(ecalbackendfile
+       ${DEPENDENCIES}
+       ${CALENDAR_LDFLAGS}
+)
+
+install(TARGETS ecalbackendfile
+       DESTINATION ${ecal_backenddir}
+)
+
+add_executable(test-interval-searches
+       e-cal-backend-file.c
+)
+
+target_compile_definitions(test-interval-searches PRIVATE
+       -DG_LOG_DOMAIN=\"e-cal-backend-file\"
+       -DBACKENDDIR=\"${ecal_backenddir}\"
+       -DTEST_QUERY_RESULT=1
+)
+
+target_compile_options(test-interval-searches PUBLIC
+       ${CALENDAR_CFLAGS}
+)
+
+target_include_directories(test-interval-searches PUBLIC
+       ${CMAKE_BINARY_DIR}
+       ${CMAKE_SOURCE_DIR}
+       ${CMAKE_BINARY_DIR}/calendar
+       ${CMAKE_SOURCE_DIR}/calendar
+       ${CALENDAR_INCLUDE_DIRS}
+)
+
+target_link_libraries(test-interval-searches
+       ${DEPENDENCIES}
+       ${CALENDAR_LDFLAGS}
+)
diff --git a/calendar/backends/gtasks/CMakeLists.txt b/calendar/backends/gtasks/CMakeLists.txt
new file mode 100644
index 0000000..10c0aa6
--- /dev/null
+++ b/calendar/backends/gtasks/CMakeLists.txt
@@ -0,0 +1,51 @@
+set(DEPENDENCIES
+       ebackend
+       ecal
+       edataserver
+       edata-cal
+)
+
+set(SOURCES
+       e-cal-backend-gtasks-factory.c
+       e-cal-backend-gtasks.c
+       e-cal-backend-gtasks.h
+       e-gdata-oauth2-authorizer.c
+       e-gdata-oauth2-authorizer.h
+)
+
+add_library(ecalbackendgtasks MODULE
+       ${SOURCES}
+)
+
+add_dependencies(ecalbackendgtasks
+       ${DEPENDENCIES}
+)
+
+target_compile_definitions(ecalbackendgtasks PRIVATE
+       -DG_LOG_DOMAIN=\"e-cal-backend-gtasks\"
+       -DBACKENDDIR=\"${ecal_backenddir}\"
+)
+
+target_compile_options(ecalbackendgtasks PUBLIC
+       ${CALENDAR_CFLAGS}
+       ${LIBGDATA_CFLAGS}
+)
+
+target_include_directories(ecalbackendgtasks PUBLIC
+       ${CMAKE_BINARY_DIR}
+       ${CMAKE_SOURCE_DIR}
+       ${CMAKE_BINARY_DIR}/calendar
+       ${CMAKE_SOURCE_DIR}/calendar
+       ${CALENDAR_INCLUDE_DIRS}
+       ${LIBGDATA_INCLUDE_DIRS}
+)
+
+target_link_libraries(ecalbackendgtasks
+       ${DEPENDENCIES}
+       ${CALENDAR_LDFLAGS}
+       ${LIBGDATA_LDFLAGS}
+)
+
+install(TARGETS ecalbackendgtasks
+       DESTINATION ${ecal_backenddir}
+)
diff --git a/calendar/backends/http/CMakeLists.txt b/calendar/backends/http/CMakeLists.txt
new file mode 100644
index 0000000..cb6e9c8
--- /dev/null
+++ b/calendar/backends/http/CMakeLists.txt
@@ -0,0 +1,46 @@
+set(DEPENDENCIES
+       ebackend
+       ecal
+       edataserver
+       edata-cal
+)
+
+set(SOURCES
+       e-cal-backend-http-factory.c
+       e-cal-backend-http.c
+       e-cal-backend-http.h
+)
+
+add_library(ecalbackendhttp MODULE
+       ${SOURCES}
+)
+
+add_dependencies(ecalbackendhttp
+       ${DEPENDENCIES}
+)
+
+target_compile_definitions(ecalbackendhttp PRIVATE
+       -DG_LOG_DOMAIN=\"e-cal-backend-http\"
+       -DBACKENDDIR=\"${ecal_backenddir}\"
+)
+
+target_compile_options(ecalbackendhttp PUBLIC
+       ${CALENDAR_CFLAGS}
+)
+
+target_include_directories(ecalbackendhttp PUBLIC
+       ${CMAKE_BINARY_DIR}
+       ${CMAKE_SOURCE_DIR}
+       ${CMAKE_BINARY_DIR}/calendar
+       ${CMAKE_SOURCE_DIR}/calendar
+       ${CALENDAR_INCLUDE_DIRS}
+)
+
+target_link_libraries(ecalbackendhttp
+       ${DEPENDENCIES}
+       ${CALENDAR_LDFLAGS}
+)
+
+install(TARGETS ecalbackendhttp
+       DESTINATION ${ecal_backenddir}
+)
diff --git a/calendar/backends/weather/CMakeLists.txt b/calendar/backends/weather/CMakeLists.txt
new file mode 100644
index 0000000..774114f
--- /dev/null
+++ b/calendar/backends/weather/CMakeLists.txt
@@ -0,0 +1,51 @@
+set(DEPENDENCIES
+       ebackend
+       ecal
+       edataserver
+       edata-cal
+)
+
+set(SOURCES
+       e-cal-backend-weather-factory.c
+       e-cal-backend-weather.c
+       e-cal-backend-weather.h
+       e-weather-source.c
+       e-weather-source.h
+)
+
+add_library(ecalbackendweather MODULE
+       ${SOURCES}
+)
+
+add_dependencies(ecalbackendweather
+       ${DEPENDENCIES}
+)
+
+target_compile_definitions(ecalbackendweather PRIVATE
+       -DG_LOG_DOMAIN=\"e-cal-backend-weather\"
+       -DBACKENDDIR=\"${ecal_backenddir}\"
+)
+
+target_compile_options(ecalbackendweather PUBLIC
+       ${CALENDAR_CFLAGS}
+       ${LIBGWEATHER_CFLAGS}
+)
+
+target_include_directories(ecalbackendweather PUBLIC
+       ${CMAKE_BINARY_DIR}
+       ${CMAKE_SOURCE_DIR}
+       ${CMAKE_BINARY_DIR}/calendar
+       ${CMAKE_SOURCE_DIR}/calendar
+       ${CALENDAR_INCLUDE_DIRS}
+       ${LIBGWEATHER__INCLUDE_DIRS}
+)
+
+target_link_libraries(ecalbackendweather
+       ${DEPENDENCIES}
+       ${CALENDAR_LDFLAGS}
+       ${LIBGWEATHER_LDFLAGS}
+)
+
+install(TARGETS ecalbackendweather
+       DESTINATION ${ecal_backenddir}
+)
diff --git a/calendar/libecal/CMakeLists.txt b/calendar/libecal/CMakeLists.txt
new file mode 100644
index 0000000..0f4e559
--- /dev/null
+++ b/calendar/libecal/CMakeLists.txt
@@ -0,0 +1,93 @@
+glib_mkenums(e-cal-enumtypes e-cal-types.h E_CAL_ENUMTYPES_H)
+
+add_pkgconfig_file(libecal.pc.in libecal-${API_VERSION}.pc)
+
+set(DEPENDENCIES
+       edbus-private
+       edataserver
+       egdbus-cal
+)
+
+set(SOURCES
+       e-cal.c
+       e-cal-client.c
+       e-cal-client-view.c
+       e-cal-component.c
+       e-cal-recur.c
+       e-cal-time-util.c
+       e-cal-check-timezones.c
+       e-cal-system-timezone.c
+       e-cal-util.c
+       e-cal-view.c
+       e-cal-view-private.h
+       e-timezone-cache.c
+       ${CMAKE_CURRENT_BINARY_DIR}/e-cal-enumtypes.c
+)
+
+set(HEADERS
+       libecal.h
+       e-cal.h
+       e-cal-client.h
+       e-cal-client-view.h
+       e-cal-component.h
+       e-cal-recur.h
+       e-cal-time-util.h
+        e-cal-check-timezones.h
+       e-cal-system-timezone.h
+       e-cal-types.h
+       e-cal-util.h
+       e-cal-view.h
+       e-timezone-cache.h
+       ${CMAKE_CURRENT_BINARY_DIR}/e-cal-enumtypes.h
+)
+
+add_library(ecal SHARED
+       ${SOURCES}
+       ${HEADERS}
+)
+
+add_dependencies(ecal
+       ${DEPENDENCIES}
+)
+
+set_target_properties(ecal PROPERTIES
+       VERSION "${LIBECAL_CURRENT}.${LIBECAL_REVISION}.${LIBECAL_AGE}"
+       SOVERSION ${LIBECAL_CURRENT}
+       OUTPUT_NAME ecal-${API_VERSION}
+)
+
+target_compile_definitions(ecal PRIVATE
+       -DG_LOG_DOMAIN=\"libecal\"
+       -DLOCALEDIR=\"${LOCALE_INSTALL_DIR}\"
+       -DLIBECAL_COMPILATION
+)
+
+target_compile_options(ecal PUBLIC
+       ${CALENDAR_CFLAGS}
+)
+
+target_include_directories(ecal PUBLIC
+       ${CMAKE_BINARY_DIR}
+       ${CMAKE_BINARY_DIR}/calendar
+       ${CMAKE_BINARY_DIR}/calendar/libegdbus
+       ${CMAKE_BINARY_DIR}/private
+       ${CMAKE_SOURCE_DIR}
+       ${CMAKE_SOURCE_DIR}/private
+       ${CMAKE_SOURCE_DIR}/calendar
+       ${CMAKE_SOURCE_DIR}/calendar/libegdbus
+       ${CMAKE_CURRENT_BINARY_DIR}
+       ${CALENDAR_INCLUDE_DIRS}
+)
+
+target_link_libraries(ecal
+       ${DEPENDENCIES}
+       ${CALENDAR_LDFLAGS}
+)
+
+install(TARGETS ecal
+       DESTINATION ${LIB_INSTALL_DIR}
+)
+
+install(FILES ${HEADERS}
+       DESTINATION ${privincludedir}/libecal
+)
diff --git a/calendar/libecal/libecal.pc.in b/calendar/libecal/libecal.pc.in
index 22428b6..cb258b7 100644
--- a/calendar/libecal/libecal.pc.in
+++ b/calendar/libecal/libecal.pc.in
@@ -1,15 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-datarootdir=@datarootdir@
-datadir=@datadir@
+prefix=@CMAKE_INSTALL_PREFIX@
+libdir=@LIB_INSTALL_DIR@
 
 privincludedir=@privincludedir@
 
 Name: libecal
 Description: Client library for evolution calendars
-Version: @VERSION@
-Requires: libical >= @LIBICAL_REQUIRED@ libedataserver-1.2
-Libs: -L${libdir} -lecal-1.2
+Version: @PROJECT_VERSION@
+Requires: libical libedataserver-@API_VERSION@
+Libs: -L${libdir} -lecal-@API_VERSION@
 Cflags: -I${privincludedir} @LIBICAL_EXTRA_CFLAGS@
diff --git a/calendar/libedata-cal/CMakeLists.txt b/calendar/libedata-cal/CMakeLists.txt
new file mode 100644
index 0000000..271b1d8
--- /dev/null
+++ b/calendar/libedata-cal/CMakeLists.txt
@@ -0,0 +1,136 @@
+add_pkgconfig_file(libedata-cal.pc.in libedata-cal-${API_VERSION}.pc)
+
+set(DEPENDENCIES
+       ebackend
+       ecal
+       edbus-private
+       edataserver
+       egdbus-cal
+)
+
+set(SOURCES
+       e-cal-backend.c
+       e-cal-backend-cache.c
+       e-cal-backend-factory.c
+       e-cal-backend-intervaltree.c
+       e-cal-backend-sexp.c
+       e-cal-backend-sync.c
+       e-cal-backend-util.c
+       e-cal-backend-store.c
+       e-data-cal.c
+       e-data-cal-factory.c
+       e-data-cal-view.c
+       e-subprocess-cal-factory.c
+)
+
+set(HEADERS
+       libedata-cal.h
+       e-cal-backend.h
+       e-cal-backend-cache.h
+       e-cal-backend-factory.h
+       e-cal-backend-intervaltree.h
+       e-cal-backend-sync.h
+       e-cal-backend-util.h
+       e-cal-backend-sexp.h
+       e-data-cal.h
+       e-data-cal-factory.h
+       e-cal-backend-store.h
+       e-data-cal-view.h
+       e-subprocess-cal-factory.h
+)
+
+add_library(edata-cal SHARED
+       ${SOURCES}
+       ${HEADERS}
+)
+
+add_dependencies(edata-cal
+       ${DEPENDENCIES}
+)
+
+set_target_properties(edata-cal PROPERTIES
+       VERSION "${LIBEDATACAL_CURRENT}.${LIBEDATACAL_REVISION}.${LIBEDATACAL_AGE}"
+       SOVERSION ${LIBEDATACAL_CURRENT}
+       OUTPUT_NAME edata-cal-${API_VERSION}
+)
+
+target_compile_definitions(edata-cal PRIVATE
+       -DG_LOG_DOMAIN=\"libedata-cal\"
+       -DBACKENDDIR=\"${ecal_backenddir}\"
+       -DSUBPROCESS_CAL_BACKEND_PATH=\"${LIBEXEC_INSTALL_DIR}/evolution-calendar-factory-subprocess\"
+       -DLIBEDATA_CAL_COMPILATION
+)
+
+target_compile_options(edata-cal PUBLIC
+       ${CALENDAR_CFLAGS}
+)
+
+target_include_directories(edata-cal PUBLIC
+       ${CMAKE_BINARY_DIR}
+       ${CMAKE_BINARY_DIR}/calendar
+       ${CMAKE_BINARY_DIR}/calendar/libegdbus
+       ${CMAKE_BINARY_DIR}/private
+       ${CMAKE_SOURCE_DIR}
+       ${CMAKE_SOURCE_DIR}/private
+       ${CMAKE_SOURCE_DIR}/calendar
+       ${CMAKE_SOURCE_DIR}/calendar/libegdbus
+       ${CMAKE_CURRENT_BINARY_DIR}
+       ${CALENDAR_INCLUDE_DIRS}
+)
+
+target_link_libraries(edata-cal
+       ${DEPENDENCIES}
+       ${CALENDAR_LDFLAGS}
+)
+
+install(TARGETS edata-cal
+       DESTINATION ${LIB_INSTALL_DIR}
+)
+
+install(FILES ${HEADERS}
+       DESTINATION ${privincludedir}/libedata-cal
+)
+
+set(DEPENDENCIES
+       ebackend
+       edataserver
+       edata-cal
+       edbus-private
+)
+
+add_executable(evolution-calendar-factory-subprocess
+       evolution-calendar-factory-subprocess.c)
+
+target_compile_definitions(evolution-calendar-factory-subprocess PRIVATE
+       -DG_LOG_DOMAIN=\"evolution-calendar-factory-subprocess\"
+       -DLOCALEDIR=\"${LOCALE_INSTALL_DIR}\"
+)
+
+target_compile_options(evolution-calendar-factory-subprocess PUBLIC
+       ${CALENDAR_CFLAGS}
+       ${GTK_CFLAGS}
+)
+
+target_include_directories(evolution-calendar-factory-subprocess PUBLIC
+       ${CMAKE_BINARY_DIR}
+       ${CMAKE_BINARY_DIR}/calendar
+       ${CMAKE_BINARY_DIR}/calendar/libegdbus
+       ${CMAKE_BINARY_DIR}/private
+       ${CMAKE_SOURCE_DIR}
+       ${CMAKE_SOURCE_DIR}/private
+       ${CMAKE_SOURCE_DIR}/calendar
+       ${CMAKE_SOURCE_DIR}/calendar/libegdbus
+       ${CMAKE_CURRENT_BINARY_DIR}
+       ${CALENDAR_INCLUDE_DIRS}
+       ${GTK_INCLUDE_DIRS}
+)
+
+target_link_libraries(evolution-calendar-factory-subprocess
+       ${DEPENDENCIES}
+       ${CALENDAR_LDFLAGS}
+       ${GTK_LDFLAGS}
+)
+
+install(TARGETS evolution-calendar-factory-subprocess
+       DESTINATION ${LIBEXEC_INSTALL_DIR}
+)
diff --git a/calendar/libedata-cal/libedata-cal.pc.in b/calendar/libedata-cal/libedata-cal.pc.in
index 1ffc5bd..1f18f4b 100644
--- a/calendar/libedata-cal/libedata-cal.pc.in
+++ b/calendar/libedata-cal/libedata-cal.pc.in
@@ -1,10 +1,5 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-libexecdir=@libexecdir@
-includedir=@includedir@
-datarootdir=@datarootdir@
-datadir=@datadir@
+prefix=@CMAKE_INSTALL_PREFIX@
+libdir=@LIB_INSTALL_DIR@
 
 privlibdir=@privlibdir@
 privincludedir=@privincludedir@
@@ -13,7 +8,7 @@ backenddir=@ecal_backenddir@
 
 Name: libedata-cal
 Description: Backend library for evolution calendars
-Version: @VERSION@
-Requires: libical >= @LIBICAL_REQUIRED@ libebackend-1.2 libecal-1.2
-Libs: -L${libdir} -ledata-cal-1.2
+Version: @PROJECT_VERSION@
+Requires: libical libebackend-@API_VERSION@ libecal-@API_VERSION@
+Libs: -L${libdir} -ledata-cal-@API_VERSION@
 Cflags: -I${privincludedir}
diff --git a/calendar/libegdbus/CMakeLists.txt b/calendar/libegdbus/CMakeLists.txt
new file mode 100644
index 0000000..f261565
--- /dev/null
+++ b/calendar/libegdbus/CMakeLists.txt
@@ -0,0 +1,36 @@
+set(SOURCES
+       e-gdbus-cal-view.h
+       e-gdbus-cal-view.c
+)
+
+set(DEPENDENCIES
+       edataserver
+)
+
+add_library(egdbus-cal STATIC
+       ${SOURCES}
+)
+
+add_dependencies(egdbus-cal
+       ${DEPENDENCIES}
+)
+
+target_compile_definitions(egdbus-cal PRIVATE
+       -DG_LOG_DOMAIN=\"egdbus-cal\"
+)
+
+target_compile_options(egdbus-cal PUBLIC
+       ${DATA_SERVER_CFLAGS}
+)
+
+target_include_directories(egdbus-cal PUBLIC
+       ${CMAKE_BINARY_DIR}
+       ${CMAKE_CURRENT_BINARY_DIR}
+       ${CMAKE_SOURCE_DIR}
+       ${DATA_SERVER_INCLUDE_DIRS}
+)
+
+target_link_libraries(egdbus-cal
+       ${DEPENDENCIES}
+       ${DATA_SERVER_LDFLAGS}
+)
diff --git a/evolution-data-server.pc.in b/evolution-data-server.pc.in
index 22d68e0..6fd651b 100644
--- a/evolution-data-server.pc.in
+++ b/evolution-data-server.pc.in
@@ -1,15 +1,10 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-privlibdir=@privlibdir@
-datarootdir=@datarootdir@
-datadir=@datadir@
+prefix=@CMAKE_INSTALL_PREFIX@
+libdir=@LIB_INSTALL_DIR@
 privdatadir=@privdatadir@
 
 execversion=@BASE_VERSION@
 
 Name: evolution-data-server
 Description: The evolution data server for the calendar and addressbook
-Version: @VERSION@
-Requires: gio-2.0, @mozilla_nss@, @mozilla_nspr@
+Version: @PROJECT_VERSION@
+Requires: gio-2.0 @mozilla_nss@ @mozilla_nspr@
diff --git a/modules/CMakeLists.txt b/modules/CMakeLists.txt
new file mode 100644
index 0000000..ad432d2
--- /dev/null
+++ b/modules/CMakeLists.txt
@@ -0,0 +1,83 @@
+macro(add_simple_module _name _sourcesvar _depsvar _defsvar _cflagsvar _incdirsvar _ldflagsvar _destination)
+       set(DEPENDENCIES
+               ebackend
+               edataserver
+       )
+
+       set(SOURCES
+               ${${_sourcesvar}}
+       )
+
+       add_library(${_name} MODULE
+               ${SOURCES}
+       )
+
+       set_target_properties(${_name} PROPERTIES
+               PREFIX ""
+       )
+
+       add_dependencies(${_name}
+               ${DEPENDENCIES}
+               ${${_depsvar}}
+       )
+
+       target_compile_definitions(${_name} PRIVATE
+               -DG_LOG_DOMAIN=\"${_name}\"
+               ${${_defsvar}}
+       )
+
+       target_compile_options(${_name} PUBLIC
+               ${BACKEND_CFLAGS}
+               ${DATA_SERVER_CFLAGS}
+               ${${_cflagsvar}}
+       )
+
+       target_include_directories(${_name} PUBLIC
+               ${CMAKE_BINARY_DIR}
+               ${CMAKE_SOURCE_DIR}
+               ${BACKEND_INCLUDE_DIRS}
+               ${DATA_SERVER_INCLUDE_DIRS}
+               ${${_incdirsvar}}
+       )
+
+       target_link_libraries(${_name}
+               ${DEPENDENCIES}
+               ${BACKEND_LDFLAGS}
+               ${DATA_SERVER_LDFLAGS}
+               ${${_ldflagsvar}}
+       )
+
+       install(TARGETS ${_name}
+               DESTINATION ${_destination}
+       )
+endmacro(add_simple_module)
+
+macro(add_source_registry_module _name _sourcesvar _depsvar _defsvar _cflagsvar _incdirsvar _ldflagsvar)
+       add_simple_module(${_name} ${_sourcesvar} ${_depsvar} ${_defsvar} ${_cflagsvar} ${_incdirsvar} 
${_ldflagsvar} ${moduledir})
+endmacro(add_source_registry_module)
+
+macro(add_credentials_module _name _sourcesvar _depsvar _defsvar _cflagsvar _incdirsvar _ldflagsvar)
+       add_simple_module(${_name} ${_sourcesvar} ${_depsvar} ${_defsvar} ${_cflagsvar} ${_incdirsvar} 
${_ldflagsvar} ${credentialmoduledir})
+endmacro(add_credentials_module)
+
+add_subdirectory(cache-reaper)
+add_subdirectory(google-backend)
+add_subdirectory(outlook-backend)
+add_subdirectory(owncloud-backend)
+add_subdirectory(yahoo-backend)
+
+if(HAVE_GTK)
+       add_subdirectory(trust-prompt)
+endif(HAVE_GTK)
+
+if(HAVE_GOA)
+       add_subdirectory(gnome-online-accounts)
+endif(HAVE_GOA)
+
+if(HAVE_UOA)
+       add_subdirectory(ubuntu-online-accounts)
+endif(HAVE_UOA)
+
+if(NOT WIN32)
+       add_subdirectory(secret-monitor)
+endif(NOT WIN32)
diff --git a/modules/cache-reaper/CMakeLists.txt b/modules/cache-reaper/CMakeLists.txt
new file mode 100644
index 0000000..375cfcc
--- /dev/null
+++ b/modules/cache-reaper/CMakeLists.txt
@@ -0,0 +1,17 @@
+set(extra_deps)
+set(sources
+       module-cache-reaper.c
+)
+set(extra_defines)
+set(extra_cflags)
+set(extra_incdirs)
+set(extra_ldflags)
+
+add_source_registry_module(module-cache-reaper
+       sources
+       extra_deps
+       extra_defines
+       extra_cflags
+       extra_incdirs
+       extra_ldflags
+)
diff --git a/modules/gnome-online-accounts/CMakeLists.txt b/modules/gnome-online-accounts/CMakeLists.txt
new file mode 100644
index 0000000..e86cc72
--- /dev/null
+++ b/modules/gnome-online-accounts/CMakeLists.txt
@@ -0,0 +1,38 @@
+set(extra_deps)
+set(sources
+       module-gnome-online-accounts.c
+       e-goa-client.c
+       e-goa-client.h
+       goaewsclient.c
+       goaewsclient.h
+)
+set(extra_defines)
+set(extra_cflags ${GOA_SERVER_CFLAGS})
+set(extra_incdirs ${GOA_INCLUDE_DIRS})
+set(extra_ldflags ${GOA_LDFLAGS})
+
+add_source_registry_module(module-gnome-online-accounts
+       sources
+       extra_deps
+       extra_defines
+       extra_cflags
+       extra_incdirs
+       extra_ldflags
+)
+
+set(sources
+       module-credentials-goa.c
+       e-goa-client.c
+       e-goa-client.h
+       e-goa-password-based.c
+       e-goa-password-based.h
+)
+
+add_credentials_module(module-credentials-goa
+       sources
+       extra_deps
+       extra_defines
+       extra_cflags
+       extra_incdirs
+       extra_ldflags
+)
diff --git a/modules/google-backend/CMakeLists.txt b/modules/google-backend/CMakeLists.txt
new file mode 100644
index 0000000..fcd78a8
--- /dev/null
+++ b/modules/google-backend/CMakeLists.txt
@@ -0,0 +1,17 @@
+set(extra_deps)
+set(sources
+       module-google-backend.c
+)
+set(extra_defines)
+set(extra_cflags ${LIBGDATA_CFLAGS})
+set(extra_incdirs ${LIBGDATA_INCLUDE_DIRS})
+set(extra_ldflags ${LIBGDATA_LDFLAGS})
+
+add_source_registry_module(module-google-backend
+       sources
+       extra_deps
+       extra_defines
+       extra_cflags
+       extra_incdirs
+       extra_ldflags
+)
diff --git a/modules/outlook-backend/CMakeLists.txt b/modules/outlook-backend/CMakeLists.txt
new file mode 100644
index 0000000..d0a7294
--- /dev/null
+++ b/modules/outlook-backend/CMakeLists.txt
@@ -0,0 +1,17 @@
+set(extra_deps)
+set(sources
+       module-outlook-backend.c
+)
+set(extra_defines)
+set(extra_cflags)
+set(extra_incdirs)
+set(extra_ldflags)
+
+add_source_registry_module(module-outlook-backend
+       sources
+       extra_deps
+       extra_defines
+       extra_cflags
+       extra_incdirs
+       extra_ldflags
+)
diff --git a/modules/owncloud-backend/CMakeLists.txt b/modules/owncloud-backend/CMakeLists.txt
new file mode 100644
index 0000000..91bad5a
--- /dev/null
+++ b/modules/owncloud-backend/CMakeLists.txt
@@ -0,0 +1,17 @@
+set(extra_deps)
+set(sources
+       module-owncloud-backend.c
+)
+set(extra_defines)
+set(extra_cflags)
+set(extra_incdirs)
+set(extra_ldflags)
+
+add_source_registry_module(module-owncloud-backend
+       sources
+       extra_deps
+       extra_defines
+       extra_cflags
+       extra_incdirs
+       extra_ldflags
+)
diff --git a/modules/secret-monitor/CMakeLists.txt b/modules/secret-monitor/CMakeLists.txt
new file mode 100644
index 0000000..05e49e2
--- /dev/null
+++ b/modules/secret-monitor/CMakeLists.txt
@@ -0,0 +1,17 @@
+set(extra_deps)
+set(sources
+       module-secret-monitor.c
+)
+set(extra_defines)
+set(extra_cflags ${LIBSECRET_CFLAGS})
+set(extra_incdirs ${LIBSECRET_INCLUDE_DIRS})
+set(extra_ldflags ${LIBSECRET_LDFLAGS})
+
+add_source_registry_module(module-secret-monitor
+       sources
+       extra_deps
+       extra_defines
+       extra_cflags
+       extra_incdirs
+       extra_ldflags
+)
diff --git a/modules/trust-prompt/CMakeLists.txt b/modules/trust-prompt/CMakeLists.txt
new file mode 100644
index 0000000..b3f1f88
--- /dev/null
+++ b/modules/trust-prompt/CMakeLists.txt
@@ -0,0 +1,41 @@
+set(TRUST_PROMPT_SOURCES
+       trust-prompt-gtk.c
+)
+
+set(TRUST_PROMPT_CFLAGS
+       ${GNOME_PLATFORM_CFLAGS}
+       ${GTK_CFLAGS}
+       ${GCR_CFLAGS}
+)
+
+set(TRUST_PROMPT_INCLUDE_DIRS
+       ${GNOME_PLATFORM_INCLUDE_DIRS}
+       ${GTK_INCLUDE_DIRS}
+       ${GCR_INCLUDE_DIRS}
+)
+
+set(TRUST_PROMPT_LDFLAGS
+       ${GNOME_PLATFORM_LDFLAGS}
+       ${GTK_LDFLAGS}
+       ${GCR_LDFLAGS}
+)
+
+set(extra_deps)
+set(sources
+       module-trust-prompt.c
+       trust-prompt.h
+       ${TRUST_PROMPT_SOURCES}
+)
+set(extra_defines)
+set(extra_cflags ${TRUST_PROMPT_CFLAGS})
+set(extra_incdirs ${TRUST_PROMPT_INCLUDE_DIRS})
+set(extra_ldflags ${TRUST_PROMPT_LDFLAGS})
+
+add_source_registry_module(module-trust-prompt
+       sources
+       extra_deps
+       extra_defines
+       extra_cflags
+       extra_incdirs
+       extra_ldflags
+)
diff --git a/modules/ubuntu-online-accounts/CMakeLists.txt b/modules/ubuntu-online-accounts/CMakeLists.txt
new file mode 100644
index 0000000..6298429
--- /dev/null
+++ b/modules/ubuntu-online-accounts/CMakeLists.txt
@@ -0,0 +1,103 @@
+set(extra_deps)
+set(sources
+       module-ubuntu-online-accounts.c
+       uoa-utils.c
+       uoa-utils.h
+)
+set(extra_defines)
+set(extra_cflags
+       ${LIBACCOUNTS_GLIB_CFLAGS}
+       ${LIBSIGNON_GLIB_CFLAGS}
+       ${JSON_GLIB_CFLAGS}
+       ${REST_CFLAGS}
+)
+set(extra_incdirs
+       ${LIBACCOUNTS_GLIB_INCLUDE_DIRS}
+       ${LIBSIGNON_GLIB_INCLUDE_DIRS}
+       ${JSON_GLIB_INCLUDE_DIRS}
+       ${REST_INCLUDE_DIRS}
+)
+set(extra_ldflags
+       ${LIBACCOUNTS_GLIB_LDFLAGS}
+       ${LIBSIGNON_GLIB_LDFLAGS}
+       ${JSON_GLIB_LDFLAGS}
+       ${REST_LDFLAGS}
+)
+
+add_source_registry_module(module-ubuntu-online-accounts
+       sources
+       extra_deps
+       extra_defines
+       extra_cflags
+       extra_incdirs
+       extra_ldflags
+)
+
+# ******************************
+# Credentials module
+# ******************************
+
+set(sources
+       module-credentials-uoa.c
+       e-signon-session-password.c
+       e-signon-session-password.h
+)
+
+add_credentials_module(module-credentials-uoa
+       sources
+       extra_deps
+       extra_defines
+       extra_cflags
+       extra_incdirs
+       extra_ldflags
+)
+
+# ******************************
+# Data files
+# ******************************
+
+set(servicetype_files
+       mail.service-type
+       calendar.service-type
+       contacts.service-type
+)
+
+set(service_files
+       google-gmail.service
+       google-calendar.service
+       google-contacts.service
+       windows-live-mail.service
+       yahoo-mail.service
+       yahoo-calendar.service
+)
+
+# TODO | FIXME
+#%.application: %.application.in
+#      $(AM_V_GEN) $(INTLTOOL_MERGE) --no-translations -x -u $< $@
+#
+#%.service-type: %.service-type.in
+#      $(AM_V_GEN) $(INTLTOOL_MERGE) --no-translations -x -u $< $@
+#
+#%.service: %.service.in
+#      $(AM_V_GEN) $(INTLTOOL_MERGE) --no-translations -x -u $< $@
+
+desktopdir = ${SHARE_INSTALL_DIR}/applications
+pkg_check_variable(applicationdir libaccounts-glib applicationfilesdir)
+pkg_check_variable(servicetypedir libaccounts-glib servicetypefilesdir)
+pkg_check_variable(servicedir libaccounts-glib servicefilesdir)
+
+install(FILES evolution-data-server-uoa.desktop
+       DESTINATION ${desktopdir}
+)
+
+install(FILES evolution-data-server.application
+       DESTINATION ${applicationdir}
+)
+
+install(FILES ${servicetype_files}
+       DESTINATION ${servicetypedir}
+)
+
+install(FILES ${service_files}
+       DESTINATION ${servicedir}
+)
diff --git a/modules/yahoo-backend/CMakeLists.txt b/modules/yahoo-backend/CMakeLists.txt
new file mode 100644
index 0000000..dab6654
--- /dev/null
+++ b/modules/yahoo-backend/CMakeLists.txt
@@ -0,0 +1,17 @@
+set(extra_deps)
+set(sources
+       module-yahoo-backend.c
+)
+set(extra_defines)
+set(extra_cflags)
+set(extra_incdirs)
+set(extra_ldflags)
+
+add_source_registry_module(module-yahoo-backend
+       sources
+       extra_deps
+       extra_defines
+       extra_cflags
+       extra_incdirs
+       extra_ldflags
+)
diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
new file mode 100644
index 0000000..35017f9
--- /dev/null
+++ b/tools/CMakeLists.txt
@@ -0,0 +1 @@
+add_subdirectory(addressbook-export)
diff --git a/tools/addressbook-export/CMakeLists.txt b/tools/addressbook-export/CMakeLists.txt
new file mode 100644
index 0000000..04ab5bc
--- /dev/null
+++ b/tools/addressbook-export/CMakeLists.txt
@@ -0,0 +1,59 @@
+set(DEPENDENCIES
+       ebook
+       ebook-contacts
+       edataserver
+)
+
+set(SOURCES
+       addressbook-export.c
+)
+
+add_executable(addressbook-export
+       ${SOURCES}
+)
+
+add_dependencies(addressbook-export
+       ${DEPENDENCIES}
+)
+
+target_compile_definitions(addressbook-export PRIVATE
+       -DG_LOG_DOMAIN=\"addressbook-export\"
+       -DLOCALEDIR=\"${LOCALE_INSTALL_DIR}\"
+)
+
+target_compile_options(addressbook-export PUBLIC
+       ${ADDRESSBOOK_CFLAGS}
+)
+
+target_include_directories(addressbook-export PUBLIC
+       ${CMAKE_BINARY_DIR}
+       ${CMAKE_BINARY_DIR}/addressbook
+       ${CMAKE_SOURCE_DIR}
+       ${CMAKE_SOURCE_DIR}/addressbook
+       ${CMAKE_CURRENT_BINARY_DIR}
+       ${ADDRESSBOOK_INCLUDE_DIRS}
+)
+
+target_link_libraries(addressbook-export
+       ${DEPENDENCIES}
+       ${ADDRESSBOOK_LDFLAGS}
+)
+
+install(TARGETS addressbook-export
+       DESTINATION ${privlibexecdir}
+)
+
+find_program(PERL perl)
+if(PERL)
+       configure_file(
+               ${CMAKE_CURRENT_SOURCE_DIR}/csv2vcard.in
+               ${CMAKE_CURRENT_BINARY_DIR}/csv2vcard
+               @ONLY
+       )
+
+       install(FILES ${CMAKE_CURRENT_BINARY_DIR}/csv2vcard
+               DESTINATION ${privlibexecdir}
+       )
+else(PERL)
+       message(WARNING "The 'perl' not found, not installing csv2vcard")
+endif(PERL)


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