diff options
author | Robert Tari <robert@tari.in> | 2021-08-17 01:59:27 +0200 |
---|---|---|
committer | Robert Tari <robert@tari.in> | 2021-08-18 02:01:01 +0200 |
commit | c7320dab38cb2dda29226eab2c8705b5a132ac87 (patch) | |
tree | c32ed6a4be5b03d5e5bccd8f7c510cac278a8854 /src | |
parent | 7f9519e1b54d4e864f2573583945419ef56f8a05 (diff) | |
download | libayatana-common-c7320dab38cb2dda29226eab2c8705b5a132ac87.tar.gz libayatana-common-c7320dab38cb2dda29226eab2c8705b5a132ac87.tar.bz2 libayatana-common-c7320dab38cb2dda29226eab2c8705b5a132ac87.zip |
Add Vala Bindings
- src/utils.h: Replace defined strings with static const chars
- src/CMakeLists.txt: Add .gir and .vapi generation code
- tetsts/CMakeLists.txt: Compile tst_utils_vala + add as test
- CMakeLists.txt: Add tst_utils_vala to tests + add modules from cmake/
- cmake/FindGObjectIntrospection.cmake: Add file
- cmake/FindVala.cmake.cmake: Add file
- .build.yml: Add libgirepository1.0-dev, gobject-introspection, valac dependencies
fixes https://github.com/AyatanaIndicators/libayatana-common/issues/22
Diffstat (limited to 'src')
-rw-r--r-- | src/CMakeLists.txt | 41 | ||||
-rw-r--r-- | src/utils.h | 14 |
2 files changed, 48 insertions, 7 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0189cc1..637ce9f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -27,3 +27,44 @@ configure_file(libayatana-common.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libayatana-co install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libayatana-common.pc DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig) install(FILES ${PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/ayatana/common) install(TARGETS ayatana-common DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}) + +# AyatanaCommon.gir + +find_package(GObjectIntrospection REQUIRED QUIET) + +add_custom_command( + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/AyatanaCommon.gir" + DEPENDS "ayatana-common" + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMAND + ${INTROSPECTION_SCANNER} + utils.c utils.h + --namespace=AyatanaCommon + --c-include=ayatana/common/utils.h + --quiet + --warn-all + --include=GLib-2.0 + --library="ayatana-common" + --library-path=${CMAKE_CURRENT_BINARY_DIR} + --output "${CMAKE_CURRENT_BINARY_DIR}/AyatanaCommon.gir" +) + +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/AyatanaCommon.gir" DESTINATION "${CMAKE_INSTALL_FULL_DATADIR}/gir-1.0") + +# AyatanaCommon.vapi + +find_package(Vala REQUIRED QUIET) + +add_custom_command( + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/AyatanaCommon.vapi" + DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/AyatanaCommon.gir" + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMAND + ${VAPI_GEN} + --library=AyatanaCommon + AyatanaCommon.gir +) + +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/AyatanaCommon.vapi" DESTINATION "${CMAKE_INSTALL_FULL_DATADIR}/vala/vapi") + +add_custom_target("src" ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/AyatanaCommon.vapi") diff --git a/src/utils.h b/src/utils.h index 3098146..b8e70cb 100644 --- a/src/utils.h +++ b/src/utils.h @@ -22,13 +22,13 @@ #include <glib-object.h> #include <gio/gio.h> -#define DESKTOP_LOMIRI "Lomiri" -#define DESKTOP_UNITY "Unity" -#define DESKTOP_MATE "MATE" -#define DESKTOP_GNOME "GNOME" -#define DESKTOP_XFCE "XFCE" -#define DESKTOP_PANTHEON "PANTHEON" -#define DESKTOP_BUDGIE "Budgie" +static const char *DESKTOP_LOMIRI = "Lomiri"; +static const char *DESKTOP_UNITY = "Unity"; +static const char *DESKTOP_MATE = "MATE"; +static const char *DESKTOP_GNOME = "GNOME"; +static const char *DESKTOP_XFCE = "XFCE"; +static const char *DESKTOP_PANTHEON = "PANTHEON"; +static const char *DESKTOP_BUDGIE = "Budgie"; gboolean ayatana_common_utils_is_lomiri(); gboolean ayatana_common_utils_is_unity(); |