diff options
author | Milan Crha <mcrha@redhat.com> | 2016-09-27 14:33:40 +0200 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2016-09-27 14:33:40 +0200 |
commit | 4ebcb48ae2ca44d33a4807d2bfedd46f3a943fba (patch) | |
tree | 9ad4bcab98b8e46c2e1c01bebb3782d29d0d5a8d | |
parent | a932fb59557e42eb9674d4efbfee2f442ccb8596 (diff) | |
download | evolution-data-server-4ebcb48ae2ca44d33a4807d2bfedd46f3a943fba.tar.gz |
vala directory
-rw-r--r-- | CMakeLists.txt | 6 | ||||
-rw-r--r-- | cmake/modules/GObjectIntrospection.cmake | 11 | ||||
-rw-r--r-- | vala/CMakeLists.txt | 138 |
3 files changed, 151 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 672b9394d..c4624ec5f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -890,6 +890,6 @@ if(ENABLE_EXAMPLES) add_subdirectory(examples) endif(ENABLE_EXAMPLES) -#if(ENABLE_VALA_BINDINGS) -# add_subdirectory(vala) -#endif(ENABLE_VALA_BINDINGS) +if(ENABLE_VALA_BINDINGS) + add_subdirectory(vala) +endif(ENABLE_VALA_BINDINGS) diff --git a/cmake/modules/GObjectIntrospection.cmake b/cmake/modules/GObjectIntrospection.cmake index 004934ea6..b4e77ba45 100644 --- a/cmake/modules/GObjectIntrospection.cmake +++ b/cmake/modules/GObjectIntrospection.cmake @@ -58,6 +58,15 @@ macro(gir_construct_names _prefix _version _out_girname _out_varsprefix) set(${_out_varsprefix} ${_varsprefix}) endmacro(gir_construct_names) +macro(gir_girfilename_to_target _outvar _girfilename) + set(${_outvar}) + foreach(_gir_name "${_girfilename}" ${ARGN}) + string(REPLACE "-" "_" _gir_name "${_gir_name}") + string(REPLACE "." "_" _gir_name "${_gir_name}") + list(APPEND ${_outvar} gir-girs-${_gir_name}) + endforeach(_gir_name) +endmacro(gir_girfilename_to_target) + # the macro does something only if ENABLE_INTROSPECTION is ON macro(gir_add_introspection gir) if(ENABLE_INTROSPECTION) @@ -199,7 +208,7 @@ macro(gir_add_introspection_simple gir_library pkg_export_prefix gir_library_ver ${_gir_identifies_prefixes} ${_gir_deps} --pkg-export ${pkg_export_prefix}-${gir_library_version} - --c-include="${c_include}" + --c-include=${c_include} --cflags-begin ${${gir_vars_prefix}_CFLAGS} --cflags-end diff --git a/vala/CMakeLists.txt b/vala/CMakeLists.txt new file mode 100644 index 000000000..dbe3ef3b2 --- /dev/null +++ b/vala/CMakeLists.txt @@ -0,0 +1,138 @@ +set(valafiles + ${CMAKE_CURRENT_SOURCE_DIR}/libedataserver-${API_VERSION}.deps + ${CMAKE_CURRENT_BINARY_DIR}/libedataserver-${API_VERSION}.vapi + ${CMAKE_CURRENT_SOURCE_DIR}/libebook-${API_VERSION}.deps + ${CMAKE_CURRENT_BINARY_DIR}/libebook-${API_VERSION}.vapi + ${CMAKE_CURRENT_SOURCE_DIR}/libebook-contacts-${API_VERSION}.deps + ${CMAKE_CURRENT_BINARY_DIR}/libebook-contacts-${API_VERSION}.vapi +) + +add_custom_target(vala ALL) + +# *********************************** +# camel (currently conditionally compiled) +# *********************************** + +set(gir_fullname ${CMAKE_BINARY_DIR}/camel/Camel-${API_VERSION}.gir) +gir_girfilename_to_target(gir_deps Camel-${API_VERSION}.gir) +if(TARGET ${gir_deps}) + list(APPEND valafiles + ${CMAKE_CURRENT_SOURCE_DIR}/camel-${API_VERSION}.deps + ${CMAKE_CURRENT_BINARY_DIR}/camel-${API_VERSION}.vapi + ) + + add_dependencies(vala ${gir_deps}) + + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/camel-${API_VERSION}.vapi + COMMAND ${VAPIGEN} + --vapidir=${CMAKE_CURRENT_SOURCE_DIR} + --vapidir=${CMAKE_CURRENT_BINARY_DIR} + --girdir=${CMAKE_BINARY_DIR}/camel + --pkg gio-2.0 + --pkg libxml-2.0 + --pkg posix + --library camel-${API_VERSION} + --metadatadir=${CMAKE_CURRENT_SOURCE_DIR} + ${gir_fullname} + DEPENDS camel-${API_VERSION}.deps + ${gir_fullname} + ) +endif(TARGET ${gir_deps}) + +# *********************************** +# libedataserver +# *********************************** + +set(gir_fullname ${CMAKE_BINARY_DIR}/libedataserver/EDataServer-${API_VERSION}.gir) +gir_girfilename_to_target(gir_deps EDataServer-${API_VERSION}.gir) + +add_dependencies(vala ${gir_deps}) + +add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/libedataserver-${API_VERSION}.vapi + COMMAND ${VAPIGEN} + --vapidir=${CMAKE_CURRENT_SOURCE_DIR} + --vapidir=${CMAKE_CURRENT_BINARY_DIR} + --girdir=${CMAKE_BINARY_DIR}/libedataserver + --pkg gio-2.0 + --pkg libxml-2.0 + --pkg libsoup-2.4 + --pkg posix + --library libedataserver-${API_VERSION} + --metadatadir=${CMAKE_CURRENT_SOURCE_DIR} + ${gir_fullname} + DEPENDS libedataserver-${API_VERSION}.deps + ${gir_fullname} +) + +# *********************************** +# libebook-contacts +# *********************************** + +set(gir_fullname ${CMAKE_BINARY_DIR}/addressbook/libebook-contacts/EBookContacts-${API_VERSION}.gir) +gir_girfilename_to_target(gir_deps EBookContacts-${API_VERSION}.gir) + +add_dependencies(vala ${gir_deps}) + +add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/libebook-contacts-${API_VERSION}.vapi + COMMAND ${VAPIGEN} + --vapidir=${CMAKE_CURRENT_SOURCE_DIR} + --vapidir=${CMAKE_CURRENT_BINARY_DIR} + --girdir=${CMAKE_BINARY_DIR}/libedataserver + --pkg libedataserver-${API_VERSION} + --pkg gio-2.0 + --pkg libxml-2.0 + --pkg libsoup-2.4 + --pkg posix + --library libebook-contacts-${API_VERSION} + --metadatadir=${CMAKE_CURRENT_SOURCE_DIR} + ${gir_fullname} + ${CMAKE_CURRENT_SOURCE_DIR}/libebook-contacts-${API_VERSION}-custom.vala + DEPENDS libebook-contacts-${API_VERSION}.deps + libebook-contacts-${API_VERSION}-custom.vala + ${gir_fullname} + ${CMAKE_CURRENT_BINARY_DIR}/libedataserver-${API_VERSION}.vapi +) + +# *********************************** +# libebook +# *********************************** + +set(gir_fullname ${CMAKE_BINARY_DIR}/addressbook/libebook/EBook-${API_VERSION}.gir) +gir_girfilename_to_target(gir_deps EBook-${API_VERSION}.gir) + +add_dependencies(vala ${gir_deps}) + +add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/libebook-${API_VERSION}.vapi + COMMAND ${VAPIGEN} + --vapidir=${CMAKE_CURRENT_SOURCE_DIR} + --vapidir=${CMAKE_CURRENT_BINARY_DIR} + --girdir=${CMAKE_BINARY_DIR}/libedataserver + --girdir=${CMAKE_BINARY_DIR}/addressbook/libebook-contacts + --pkg libedataserver-${API_VERSION} + --pkg libebook-contacts-${API_VERSION} + --pkg gio-2.0 + --pkg libxml-2.0 + --pkg libsoup-2.4 + --pkg posix + --library libebook-${API_VERSION} + --metadatadir=${CMAKE_CURRENT_SOURCE_DIR} + ${gir_fullname} + DEPENDS libebook-${API_VERSION}.deps + ${gir_fullname} + ${CMAKE_CURRENT_BINARY_DIR}/libedataserver-${API_VERSION}.vapi + ${CMAKE_CURRENT_BINARY_DIR}/libebook-contacts-${API_VERSION}.vapi +) + +# *********************************** +# Install all VAPI files +# *********************************** + +add_custom_target(vala-files + DEPENDS ${valafiles} +) + +add_dependencies(vala vala-files) + +install(FILES ${valafiles} + DESTINATION ${SHARE_INSTALL_DIR}/vala/vapi +) |