aboutsummaryrefslogtreecommitdiff
path: root/plugins/gpgme-vala/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/gpgme-vala/CMakeLists.txt')
-rw-r--r--plugins/gpgme-vala/CMakeLists.txt59
1 files changed, 59 insertions, 0 deletions
diff --git a/plugins/gpgme-vala/CMakeLists.txt b/plugins/gpgme-vala/CMakeLists.txt
new file mode 100644
index 00000000..b5b13c69
--- /dev/null
+++ b/plugins/gpgme-vala/CMakeLists.txt
@@ -0,0 +1,59 @@
+find_package(Vala REQUIRED)
+find_package(PkgConfig REQUIRED)
+find_package(GPGME REQUIRED)
+include(${VALA_USE_FILE})
+
+set(GPGME_VALA_PACKAGES
+ gee-0.8
+ glib-2.0
+)
+
+pkg_check_modules(GPGME_VALA REQUIRED ${GPGME_VALA_PACKAGES})
+
+vala_precompile(GPGME_VALA_C
+SOURCES
+ "src/gpgme_helper.vala"
+CUSTOM_VAPIS
+ "${CMAKE_CURRENT_SOURCE_DIR}/vapi/gpgme.vapi"
+ "${CMAKE_CURRENT_SOURCE_DIR}/vapi/gpgme_public.vapi"
+ "${CMAKE_CURRENT_SOURCE_DIR}/vapi/gpg-error.vapi"
+PACKAGES
+ ${GPGME_VALA_PACKAGES}
+GENERATE_VAPI
+ gpgme-vala
+GENERATE_HEADER
+ gpgme-vala
+OPTIONS
+ ${GLOBAL_DEBUG_FLAGS}
+ --thread
+)
+
+set(CFLAGS ${VALA_CFLAGS} ${GPGME_VALA_CFLAGS} ${GPGME_CFLAGS} -I${CMAKE_CURRENT_SOURCE_DIR}/src)
+add_definitions(${CFLAGS})
+add_library(gpgme-vala ${GPGME_VALA_C} src/gpgme_fix.c)
+target_link_libraries(gpgme-vala ${GPGME_VALA_LIBRARIES} ${GPGME_LIBRARIES})
+set_property(TARGET gpgme-vala PROPERTY POSITION_INDEPENDENT_CODE ON)
+
+add_custom_command(OUTPUT "${CMAKE_BINARY_DIR}/exports/gpgme_fix.h"
+COMMAND
+ cp "${CMAKE_CURRENT_SOURCE_DIR}/src/gpgme_fix.h" "${CMAKE_BINARY_DIR}/exports/gpgme_fix.h"
+DEPENDS
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/gpgme_fix.h"
+COMMENT
+ Copy header file gpgme_fix.h
+)
+
+add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/exports/gpgme.vapi
+COMMAND
+ cat "${CMAKE_BINARY_DIR}/exports/gpgme-vala.vapi" "${CMAKE_CURRENT_SOURCE_DIR}/vapi/gpgme_public.vapi" > "${CMAKE_BINARY_DIR}/exports/gpgme.vapi"
+DEPENDS
+ ${CMAKE_BINARY_DIR}/exports/gpgme-vala.vapi
+ ${CMAKE_CURRENT_SOURCE_DIR}/vapi/gpgme_public.vapi
+)
+
+add_custom_target(gpgme-vapi
+DEPENDS
+ ${CMAKE_BINARY_DIR}/exports/gpgme_fix.h
+ ${CMAKE_BINARY_DIR}/exports/gpgme.vapi
+)
+