1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
cmake_minimum_required (VERSION 3.3)
cmake_policy (VERSION 3.3)
cmake_policy (SET CMP0063 NEW)
project (dbusmenu-importer C)
list (APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
# Vala
set(ENUM_FILES
definitions.h
)
add_glib_enumtypes(ENUMSC ENUMSH importer-enums ${ENUM_FILES})
add_definitions(-Wall -Wextra
-Wno-unused-parameter# Vala loves to create variables
-Wno-incompatible-pointer-types
) #Vala often forgot cast to GtkWidget or gpointer
find_package (PkgConfig)
find_package(GLIB2 2.50 REQUIRED QUIET COMPONENTS GOBJECT GIO GIO_UNIX GMODULE GTHREAD CODEGEN MKENUMS )
include(GLibProgramHandlers)
find_package(GTK 3.22 REQUIRED QUIET COMPONENTS GDK )
pkg_check_modules(PIXBUF REQUIRED QUIET
gdk-pixbuf-2.0)
set(DBUS_PROXY)
set(DBUS_NAME "dbusmenu-interface")
set(DBUS_NAMESPACE "DBusMenu")
set(XML "com.canonical.dbusmenu.xml")
set(PREFIX "com.canonical")
add_gdbus_codegen(DBUS_GENERATED_SOURCES ${DBUS_NAME} ${PREFIX} ${XML} NAMESPACE ${DBUS_NAMESPACE})
set(DBUSMENU_C_SOURCES
definitions.h
item.c
item.h
importer.c
importer.h
model.h
model.c
section.c
section.h
utils.c
utils.h
debug.c
debug.h
)
add_library(dbusmenu-importer STATIC
${DBUS_GENERATED_SOURCES}
${DBUSMENU_C_SOURCES}
${ENUMSC}
${ENUMSH}
)
#add_dependencies(dbusmenu-importer dbus-xml)
set_target_properties(dbusmenu-importer PROPERTIES
# C_VISIBILITY_PRESET hidden # Make global variables and functions HIDDEN by default.
POSITION_INDEPENDENT_CODE ON # Compile this object code position independent.
)
target_include_directories (dbusmenu-importer PRIVATE ${PIXBUF_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(dbusmenu-importer PRIVATE GLIB2::GIO_UNIX ${PIXBUF_LIBRARIES})
add_executable(dbusmenu-test test.c)
target_link_libraries(dbusmenu-test PRIVATE GLIB2::GIO GTK3::GTK GTK3::GDK dbusmenu-importer)
target_include_directories (dbusmenu-test PRIVATE ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
#xadd_subdirectory(mate-dbusmenu)
|