File: CMakeLists.txt

package info (click to toggle)
vala-panel-appmenu 0.7.1%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 1,336 kB
  • sloc: ansic: 2,309; xml: 83; makefile: 56; sh: 7
file content (187 lines) | stat: -rw-r--r-- 5,234 bytes parent folder | download
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()