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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187
|
#####
# Core Parts (GResource, definitions)
#####
set(CMAKE_INCLUDE_CURRENT_DIR ON)
add_subdirectory(dbusmenu-importer)
set(CORE_VALA_FILES
appmenu-abstractions.vala
appmenu-bamf.vala
registrar.vala
menu-widget.vala
helper-desktop.vala
helper-dbus.vala
helper-dbusmenu.vala
helper-menumodel.vala
${CMAKE_BINARY_DIR}/vapi/config.vala
)
vala_precompile(VALA_C_CORE appmenu-core
${CORE_VALA_FILES}
PACKAGES
${CORE_PACKAGES}
dbus-menu-importer
gio-addons-2.0
launcher
${WNCK_PACKAGES}
OPTIONS
--vapidir=${CMAKE_SOURCE_DIR}/vapi
--vapidir=${CMAKE_CURRENT_BINARY_DIR}
--vapidir=${CMAKE_CURRENT_SOURCE_DIR}/dbusmenu-importer
--target-glib=2.50
--gresources=${CMAKE_CURRENT_SOURCE_DIR}/libappmenu.gresource.xml
--thread
${WNCK_DEFINE}
GENERATE_VAPI
vala-panel-appmenu
)
glib_compile_resources(RESOURCES
source
libappmenu.gresource.xml
)
include_directories(${CMAKE_SOURCE_DIR})
set(CORE_C_FILES
launcher.c
launcher.h
)
set(PLUGIN_VALA_FILES
valapanel-plugin-appmenu.vala
xfce4-plugin-appmenu.vala
mate-plugin-appmenu.vala
budgie-plugin-appmenu.vala
)
add_library(appmenu-core STATIC ${CORE_C_FILES} ${VALA_C_CORE})
target_link_libraries (appmenu-core
dbusmenu-importer
GLIB2::GIO_UNIX
GLIB2::GOBJECT
GTK3::GTK
GTK3::GDK
BAMF::LIB
${WNCK_TARGETS}
m)
set_target_properties(appmenu-core PROPERTIES
POSITION_INDEPENDENT_CODE ON # Compile this object code position independent.
)
add_custom_target(vala-files-ide SOURCES ${VALA_FILES_DBUSMENU} ${CORE_VALA_FILES} ${PLUGIN_VALA_FILES})
##########
# XFCE Part
##########
if (ENABLE_XFCE)
vala_precompile(VALA_C_XFCE appmenu-xfce
xfce4-plugin-appmenu.vala
PACKAGES
${CORE_PACKAGES}
vala-panel-appmenu
${WNCK_PACKAGES}
libxfce4panel-2.0
libxfconf-0
OPTIONS
--vapidir=${CMAKE_SOURCE_DIR}/vapi
--vapidir=${CMAKE_CURRENT_BINARY_DIR}
--target-glib=2.50
--gresources=${CMAKE_CURRENT_SOURCE_DIR}/libappmenu.gresource.xml
--thread
${WNCK_DEFINE}
)
add_library (appmenu-xfce MODULE
${VALA_C_XFCE}
${RESOURCES}
)
target_link_libraries (appmenu-xfce appmenu-core PkgConfig::XFCE)
# Install plugin stuffs
install(TARGETS appmenu-xfce DESTINATION ${CMAKE_INSTALL_LIBDIR}/xfce4/panel/plugins)
endif()
##########
# ValaPanel Part
##########
if(ENABLE_VALAPANEL)
vala_precompile(VALA_C_VALAPANEL appmenu-valapanel
valapanel-plugin-appmenu.vala
PACKAGES
${CORE_PACKAGES}
vala-panel-appmenu
${WNCK_PACKAGES}
vala-panel
libpeas-1.0
OPTIONS
--vapidir=${CMAKE_SOURCE_DIR}/vapi
--vapidir=${CMAKE_CURRENT_BINARY_DIR}
--vapidir=${CMAKE_BINARY_DIR}/dbusmenu
--target-glib=2.50
--gresources=${CMAKE_CURRENT_SOURCE_DIR}/libappmenu.gresource.xml
--thread
${WNCK_DEFINE}
${NEW_DEFINE}
)
# Build library for plugins and application
add_library (appmenu-valapanel MODULE
${VALA_C_VALAPANEL}
${RESOURCES}
)
set_target_properties(appmenu-valapanel PROPERTIES
OUTPUT_NAME appmenu)
if(NEW_IFACE)
target_link_libraries (appmenu-valapanel appmenu-core PkgConfig::VALAPANEL)
else()
target_link_libraries (appmenu-valapanel appmenu-core PEAS::PEAS PkgConfig::VALAPANEL)
endif()
# Install plugin stuffs
install(TARGETS appmenu-valapanel DESTINATION ${CMAKE_INSTALL_LIBDIR}/vala-panel/applets)
endif()
##########
# Budgie Panel Part
##########
if(ENABLE_BUDGIE)
vala_precompile(VALA_C_BUDGIE appmenu-budgie
budgie-plugin-appmenu.vala
PACKAGES
${CORE_PACKAGES}
vala-panel-appmenu
${WNCK_PACKAGES}
budgie-1.0
libpeas-1.0
OPTIONS
--vapidir=${CMAKE_SOURCE_DIR}/vapi
--vapidir=${CMAKE_CURRENT_BINARY_DIR}
--target-glib=2.50
--gresources=${CMAKE_CURRENT_SOURCE_DIR}/libappmenu.gresource.xml
--thread
${WNCK_DEFINE}
)
# Build library for plugins and application
add_library (appmenu-budgie MODULE
${VALA_C_BUDGIE}
${RESOURCES}
)
target_link_libraries (appmenu-budgie appmenu-core PEAS::PEAS PkgConfig::BUDGIE)
# Install plugin stuffs
install(TARGETS appmenu-budgie DESTINATION ${CMAKE_INSTALL_LIBDIR}/budgie-desktop/plugins/budgie-vala-panel-appmenu-plugin)
endif()
##########
# MATE Part
##########
if (ENABLE_MATE)
vala_precompile(VALA_C_MATE appmenu-mate
mate-plugin-appmenu.vala
PACKAGES
${CORE_PACKAGES}
vala-panel-appmenu
${WNCK_PACKAGES}
libmatepanelapplet-4.0
OPTIONS
--vapidir=${CMAKE_SOURCE_DIR}/vapi
--vapidir=${CMAKE_CURRENT_BINARY_DIR}
--target-glib=2.50
--gresources=${CMAKE_CURRENT_SOURCE_DIR}/libappmenu.gresource.xml
--thread
${WNCK_DEFINE}
)
add_library (appmenu-mate MODULE
${VALA_C_MATE}
${RESOURCES}
)
target_link_libraries (appmenu-mate appmenu-core PkgConfig::MATE)
# Install plugin stuffs
install(TARGETS appmenu-mate DESTINATION ${CMAKE_INSTALL_LIBDIR}/mate-panel)
endif()
|