jbsrc/jb.c (21216B) - raw
1 /*
2 * Mail Notification
3 * Copyright (C) 2003-2008 Jean-Yves Lefort <jylefort@brutele.be>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 */
19
20 #include "jb.h"
21
22 #jb_include <jb-dbus>
23 #jb_include <jb-endianness>
24 #jb_include <jb-evolution-plugin>
25 #jb_include <jb-openssl>
26 #jb_include <jb-sasl2>
27 #jb_include <jb-string-arch-unaligned>
28
29 #define MN_WARNING_CFLAGS \
30 "-Wall " \
31 "-Wformat-y2k " \
32 "-Wformat-security " \
33 "-Wno-unused-parameter " \
34 "-Wfloat-equal " \
35 "-Wdeclaration-after-statement " \
36 "-Wendif-labels " \
37 "-Wpointer-arith " \
38 "-Wcast-align " \
39 "-Waggregate-return " \
40 "-Wmissing-noreturn " \
41 "-Wmissing-format-attribute " \
42 "-Wpacked " \
43 "-Wredundant-decls " \
44 "-Wnested-externs " \
45 "-Winline " \
46 "-Wno-pointer-sign " \
47 "-Wshadow "
48
49 static const JBFeature *jb_features[] = {
50 &jb_pkg_config_feature,
51 &jb_gettext_feature,
52 &jb_intltool_feature,
53 &jb_gconf_feature,
54 &jb_gnome_help_feature,
55 &jb_dbus_feature,
56 &jb_gob2_feature
57 };
58
59 void
60 jb_package_init (void)
61 {
62 JBVariableGroup *backends_group;
63 JBVariableGroup *pi_group;
64
65 /* by default, use the GNOME prefix */
66 jb_set_prefix_from_program("gnome-open");
67
68 /*
69 * At the time of this writing, gob2 2.0.16 is not yet
70 * released. What is required is gob2 2.0.15 + my patches (see the
71 * gob mailing list), which should eventually become gob2 2.0.16.
72 */
73 jb_variable_set_string("gob2-minversion", "2.0.17");
74
75 jb_evolution_plugin_init();
76
77 backends_group = jb_variable_add_group("Mailbox backends");
78 pi_group = jb_variable_add_group("IMAP and POP3 features");
79
80 /* mailbox backends */
81 jb_variable_add_bool("evolution",
82 "enable Evolution mailbox support",
83 backends_group,
84 JB_VARIABLE_C_DEFINE,
85 TRUE);
86 jb_variable_add_bool("gmail",
87 "enable Gmail mailbox support",
88 backends_group,
89 JB_VARIABLE_C_DEFINE,
90 TRUE);
91 jb_variable_add_bool("hotmail",
92 "enable Hotmail mailbox support",
93 backends_group,
94 JB_VARIABLE_C_DEFINE,
95 TRUE);
96 jb_variable_add_bool("imap",
97 "enable IMAP mailbox support",
98 backends_group,
99 JB_VARIABLE_C_DEFINE,
100 TRUE);
101 jb_variable_add_bool("maildir",
102 "enable Maildir mailbox support",
103 backends_group,
104 JB_VARIABLE_C_DEFINE,
105 TRUE);
106 jb_variable_add_bool("mbox",
107 "enable mbox mailbox support",
108 backends_group,
109 JB_VARIABLE_C_DEFINE,
110 TRUE);
111 jb_variable_add_bool("mh",
112 "enable MH mailbox support",
113 backends_group,
114 JB_VARIABLE_C_DEFINE,
115 TRUE);
116 jb_variable_add_bool("mozilla",
117 "enable Mozilla products mailbox support",
118 backends_group,
119 JB_VARIABLE_C_DEFINE,
120 TRUE);
121 jb_variable_add_bool("pop3",
122 "enable POP3 mailbox support",
123 backends_group,
124 JB_VARIABLE_C_DEFINE,
125 TRUE);
126 jb_variable_add_bool("sylpheed",
127 "enable Sylpheed mailbox support",
128 backends_group,
129 JB_VARIABLE_C_DEFINE,
130 TRUE);
131 jb_variable_add_bool("yahoo",
132 "enable Yahoo! Mail mailbox support",
133 backends_group,
134 JB_VARIABLE_C_DEFINE,
135 TRUE);
136
137 /* POP3 and IMAP features */
138 jb_variable_add_bool("ipv6",
139 "enable IPv6 support",
140 pi_group,
141 JB_VARIABLE_C_DEFINE,
142 TRUE);
143 jb_variable_add_bool("sasl",
144 "enable SASL authentication support",
145 pi_group,
146 JB_VARIABLE_C_DEFINE,
147 TRUE);
148 jb_variable_add_bool("ssl",
149 "enable SSL/TLS support",
150 pi_group,
151 JB_VARIABLE_C_DEFINE,
152 TRUE);
153
154 /* misc */
155 jb_variable_add_bool("compile-warnings", NULL, NULL, 0, FALSE);
156 jb_variable_add_bool("debug", NULL, NULL, 0, FALSE);
157 jb_variable_add_bool("regression-tests", NULL, NULL, 0, FALSE);
158 jb_variable_add_bool("gconf-sanity-check", NULL, NULL, JB_VARIABLE_C_DEFINE, TRUE);
159 jb_variable_add_bool("update-gtk-icon-cache", NULL, NULL, 0, TRUE);
160 }
161
162 void
163 jb_package_configure (void)
164 {
165 jb_check_glibc();
166
167 jb_require_packages("GNOME", "gnome", "glib-2.0 >= 2.14 gthread-2.0 gconf-2.0 >= 2.4.0 gtk+-2.0 >= 2.12 libgnomeui-2.0 >= 2.14.0 gnome-vfs-2.0 libglade-2.0 libxml-2.0 libnotify >= 0.4.1");
168 jb_require_packages("D-Bus", "dbus", "dbus-glib-1");
169
170 jb_check_packages_for_options("GMime", "gmime", "gmime-2.0 >= 2.2.7",
171 "hotmail",
172 "imap",
173 "maildir",
174 "mbox",
175 "mh",
176 "mozilla",
177 "pop3",
178 "sylpheed",
179 "yahoo",
180 NULL);
181
182 jb_check_packages_for_options("GNOME Keyring", "gnome-keyring", "gnome-keyring-1",
183 "pop3",
184 "imap",
185 "gmail",
186 "yahoo",
187 "hotmail",
188 NULL);
189
190 if (jb_variable_get_bool("pop3") || jb_variable_get_bool("imap"))
191 {
192 jb_check_reentrant_dns_resolver();
193
194 if (jb_variable_get_bool("pop3"))
195 {
196 /* needed by mn-md5.c */
197 jb_endianness_check();
198 jb_string_arch_unaligned_check();
199 }
200 }
201 else
202 {
203 if (jb_variable_get_bool("ipv6"))
204 {
205 jb_warning("disabling option \"ipv6\" since options \"pop3\" and \"imap\" are disabled");
206 jb_variable_set_bool("ipv6", FALSE);
207 }
208 if (jb_variable_get_bool("sasl"))
209 {
210 jb_warning("disabling option \"sasl\" since options \"pop3\" and \"imap\" are disabled");
211 jb_variable_set_bool("sasl", FALSE);
212 }
213 if (jb_variable_get_bool("ssl"))
214 {
215 jb_warning("disabling option \"ssl\" since options \"pop3\" and \"imap\" are disabled");
216 jb_variable_set_bool("ssl", FALSE);
217 }
218 }
219
220 if (jb_variable_get_bool("sasl"))
221 {
222 if (! jb_sasl2_check(NULL))
223 {
224 jb_warning("disabling option \"sasl\" since Cyrus SASL was not found");
225 jb_variable_set_bool("sasl", FALSE);
226 }
227 }
228
229 if (jb_variable_get_bool("ssl"))
230 {
231 if (jb_openssl_check("0.9.6"))
232 {
233 if (! jb_openssl_check_mt())
234 {
235 jb_warning("disabling option \"ssl\" since OpenSSL does not support multi-threading");
236 jb_variable_set_bool("ssl", FALSE);
237 }
238 }
239 else
240 {
241 jb_warning("disabling option \"ssl\" since OpenSSL was not found");
242 jb_variable_set_bool("ssl", FALSE);
243 }
244 }
245
246 if (jb_variable_get_bool("evolution"))
247 {
248 if (! jb_evolution_plugin_check(NULL))
249 {
250 jb_warning("disabling option \"evolution\" since Evolution was not found");
251 jb_variable_set_bool("evolution", FALSE);
252 }
253 }
254
255 if (jb_variable_get_bool("gmail"))
256 {
257 if (jb_check_functions("timegm", NULL))
258 jb_compile_options_add_cppflags(jb_compile_options, "-DHAVE_TIMEGM");
259 else
260 jb_warning("timegm() not available, Gmail message dates will not be displayed");
261 }
262 }
263
264 static void
265 add_vfs_test (JBGroup *group, const char *name, int block_size)
266 {
267 JBObject *object;
268 char *program_name;
269 char *cppflags;
270 int i;
271
272 program_name = g_strdup_printf("test-vfs-read-line-%s", name);
273 object = JB_OBJECT(jb_program_new(program_name));
274
275 jb_install_options_set_installdir(object->install_options, NULL);
276
277 jb_object_add_sources(object,
278 "../src/mn-vfs.c",
279 "test-vfs-read-line.c",
280 NULL);
281
282 cppflags = g_strdup_printf("-Isrc -DREAD_LINE_BLOCK_SIZE=%i -DMN_REGRESSION_TEST", block_size);
283 jb_compile_options_add_cppflags(object->compile_options, cppflags);
284 g_free(cppflags);
285
286 jb_compile_options_add_package(object->compile_options, "gnome");
287
288 jb_group_add_resource(group, JB_GROUP_RESOURCE(object));
289
290 for (i = 1; i < 3; i++)
291 {
292 JBRule *rule;
293 char *outfile;
294 char *infile;
295 char *expected;
296
297 outfile = g_strdup_printf("test-vfs-read-line%i-%s.output", i, name);
298 infile = g_strdup_printf("test-vfs-read-line%i.input", i);
299 expected = g_strdup_printf("test-vfs-read-line%i.expected", i);
300
301 rule = jb_rule_new();
302
303 jb_rule_add_dependency(rule, JB_GROUP_RESOURCE(object));
304
305 jb_rule_add_input_file(rule, "$builddir/%s", program_name);
306 jb_rule_add_input_file(rule, "$srcdir/%s", infile);
307 jb_rule_add_input_file(rule, "$srcdir/%s", expected);
308 jb_rule_add_output_file(rule, "$builddir/%s", outfile);
309
310 jb_rule_set_build_message(rule, "running VFS test %i-%s", i, name);
311
312 jb_rule_add_build_command(rule, "$builddir/%s file://`pwd`/$srcdir/%s > $builddir/%s",
313 program_name, infile, outfile);
314 jb_rule_add_build_command(rule, "cmp $builddir/%s $srcdir/%s",
315 outfile, expected);
316
317 jb_group_add_resource(group, JB_GROUP_RESOURCE(rule));
318
319 jb_group_add_dist_files(group, infile, expected, NULL);
320
321 g_free(outfile);
322 g_free(infile);
323 g_free(expected);
324 }
325
326 g_free(program_name);
327 }
328
329 void
330 jb_package_add_resources (void)
331 {
332 JBGroup *group;
333 JBRule *rule;
334 JBObject *object;
335
336 if (jb_variable_get_bool("compile-warnings"))
337 jb_compile_options_add_cflags(jb_compile_options, MN_WARNING_CFLAGS " -Werror");
338
339 if (! jb_variable_get_bool("debug"))
340 jb_compile_options_add_cflags(jb_compile_options, "-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS");
341
342 jb_compile_options_add_gob2flags(jb_compile_options, "--exit-on-warn");
343
344 /*** art *******************************************************************/
345
346 group = jb_group_new("art");
347
348 jb_group_add_data_files(group,
349 "16x16/apps/mail-notification.png", "$datadir/icons/hicolor/16x16/apps",
350 "22x22/apps/mail-notification.png", "$datadir/icons/hicolor/22x22/apps",
351 "24x24/apps/mail-notification.png", "$datadir/icons/hicolor/24x24/apps",
352 "32x32/apps/mail-notification.png", "$datadir/icons/hicolor/32x32/apps",
353 "48x48/apps/mail-notification.png", "$datadir/icons/hicolor/48x48/apps",
354 "scalable/apps/mail-notification.svg", "$datadir/icons/hicolor/scalable/apps",
355 NULL);
356
357 jb_group_add_data_file(group, "logo.png", "$pkgdatadir");
358
359 if (jb_variable_get_bool("gmail"))
360 jb_group_add_data_file(group, "gmail.png", "$pkgdatadir");
361
362 if (jb_variable_get_bool("yahoo"))
363 jb_group_add_data_file(group, "yahoo.png", "$pkgdatadir");
364
365 if (jb_variable_get_bool("hotmail"))
366 jb_group_add_data_file(group, "hotmail.png", "$pkgdatadir");
367
368 if (jb_variable_get_bool("update-gtk-icon-cache")) {
369 rule = jb_rule_new();
370 jb_rule_set_install_message(rule, "updating the GTK+ icon cache");
371 jb_rule_add_install_command(rule, "-gtk-update-icon-cache -f -t $datadir/icons/hicolor");
372 jb_group_add_resource(group, JB_GROUP_RESOURCE(rule));
373 }
374
375 jb_group_add(group);
376
377 /*** data ******************************************************************/
378
379 group = jb_group_new("data");
380
381 jb_group_add_desktop_file(group, "mail-notification-properties.desktop.in", "$datadir/applications");
382 jb_group_add_desktop_file(group, "mail-notification.desktop.in", "$sysconfdir/xdg/autostart");
383
384 jb_group_add_resource(group, JB_GROUP_RESOURCE(jb_template_new("mail-notification.schemas.in.in")));
385 jb_group_add_gconf_schemas(group, "mail-notification.schemas.in");
386
387 jb_group_add_data_file(group, "new-mail.wav", "$pkgdatadir");
388
389 jb_group_add_dist_file(group, "sylpheed-locking.diff");
390
391 jb_group_add(group);
392
393 /*** help ******************************************************************/
394
395 group = jb_group_new("help");
396
397 jb_group_add_resource(group, JB_GROUP_RESOURCE(jb_gnome_help_new("C", "documentation-license.xml software-license.xml")));
398
399 jb_group_add(group);
400
401 /*** po ********************************************************************/
402
403 group = jb_group_new("po");
404
405 jb_group_add_translations(group, "bg ca cs de es fr ja nl pl pt pt_BR ru sr sr@Latn sv");
406
407 jb_group_add(group);
408
409 /*** src *******************************************************************/
410
411 group = jb_group_new("src");
412
413 jb_compile_options_add_string_defines(group->compile_options,
414 "GETTEXT_PACKAGE", "$package",
415 NULL);
416
417 object = JB_OBJECT(jb_program_new("mail-notification"));
418
419 if (jb_variable_get_bool("glibc"))
420 {
421 /*
422 * We need -std=c99 for lround(), ...
423 * We need _BSD_SOURCE (which requires -lbsd-compat) for fchmod(), ...
424 * We need _POSIX_C_SOURCE for fdopen(), ...
425 */
426 jb_compile_options_add_cflags(object->compile_options, "-std=c99");
427 jb_compile_options_add_cppflags(object->compile_options, "-D_BSD_SOURCE -D_POSIX_C_SOURCE=199309L");
428 jb_compile_options_add_libs(object->compile_options, "-lbsd-compat");
429 }
430
431 jb_compile_options_add_string_defines(object->compile_options,
432 "PACKAGE", "$package",
433 "VERSION", "$version",
434 "PREFIX", "$prefix",
435 "SYSCONFDIR", "$sysconfdir",
436 "DATADIR", "$datadir",
437 "PKGDATADIR", "$pkgdatadir",
438 "LIBDIR", "$libdir",
439 "GNOMELOCALEDIR", "$datadir/locale",
440 NULL);
441
442 /*
443 * We need --export-dynamic because because libglade needs to
444 * resolve symbols from our own binary in order to autoconnect
445 * signal handlers.
446 */
447 jb_compile_options_add_ldflags(object->compile_options, "-Wl,--export-dynamic");
448
449 jb_compile_options_add_libs(object->compile_options, "-lm");
450
451 jb_compile_options_add_package(object->compile_options, "gettext");
452 jb_compile_options_add_package(object->compile_options, "gnome");
453 jb_compile_options_add_package(object->compile_options, "dbus");
454
455 jb_group_add_dbus_interface(group,
456 "org.gnome.MailNotification",
457 "mn-client-dbus.h",
458 "mn-server-dbus.h",
459 "mn_server");
460
461 jb_object_add_sources(object,
462 "MN:About:Dialog",
463 "MN:Autodetect:Mailbox:Properties",
464 "MN:Compact:Message:View",
465 "MN:Dialog",
466 "MN:File:Chooser:Button",
467 "MN:Mail:Icon",
468 "MN:Mail:Icon:Widget",
469 "MN:Mailbox",
470 "MN:Mailbox:Properties",
471 "MN:Mailbox:Properties:Dialog",
472 "MN:Mailbox:View",
473 "MN:Mailboxes",
474 "MN:Message",
475 "MN:Message:View",
476 "MN:Popup",
477 "MN:Popups",
478 "MN:Properties:Dialog",
479 "MN:Server",
480 "MN:Shell",
481 "MN:Sound:File:Chooser:Dialog",
482 "MN:Sound:Player",
483 "MN:Standard:Message:View",
484 "MN:Test:Mailbox",
485 "MN:Text:Table",
486 "MN:Tooltips",
487 "eggtrayicon",
488 "mn-conf",
489 "mn-decls.h",
490 "mn-locked-callback",
491 "mn-main.c",
492 "mn-non-linear-range",
493 "mn-stock",
494 "mn-util",
495 "mn-vfs",
496 "mn-xml",
497 "nautilus-cell-renderer-pixbuf-emblem",
498 NULL);
499
500 if (jb_variable_get_bool("mbox"))
501 jb_object_add_source(object, "MN:Mbox:Mailbox:Backend");
502
503 if (jb_variable_get_bool("mozilla"))
504 jb_object_add_source(object, "MN:Mozilla:Mailbox:Backend");
505
506 if (jb_variable_get_bool("mbox") || jb_variable_get_bool("mozilla"))
507 jb_object_add_source(object, "MN:Base:Mbox:Mailbox:Backend");
508
509 if (jb_variable_get_bool("mh"))
510 jb_object_add_source(object, "MN:MH:Mailbox:Backend");
511
512 if (jb_variable_get_bool("maildir"))
513 jb_object_add_sources(object,
514 "MN:Maildir:Mailbox:Backend",
515 "MN:Maildir:Message",
516 NULL);
517
518 if (jb_variable_get_bool("pop3"))
519 jb_object_add_sources(object,
520 "MN:POP3:Mailbox",
521 "MN:POP3:Mailbox:Properties",
522 "mn-md5",
523 NULL);
524
525 if (jb_variable_get_bool("imap"))
526 jb_object_add_sources(object,
527 "MN:IMAP:Mailbox",
528 "MN:IMAP:Mailbox:Properties",
529 NULL);
530
531 if (jb_variable_get_bool("pop3") || jb_variable_get_bool("imap"))
532 jb_object_add_sources(object,
533 "MN:Auth:Combo:Box",
534 "MN:PI:Mailbox",
535 "MN:PI:Mailbox:Properties",
536 "mn-client-session",
537 NULL);
538
539 if (jb_variable_get_bool("pop3")
540 || jb_variable_get_bool("imap")
541 || jb_variable_get_bool("gmail")
542 || jb_variable_get_bool("yahoo")
543 || jb_variable_get_bool("hotmail"))
544 {
545 jb_compile_options_add_package(object->compile_options, "gnome-keyring");
546 jb_object_add_sources(object,
547 "MN:Authenticated:Mailbox",
548 "MN:Authenticated:Mailbox:Properties",
549 "mn-keyring",
550 NULL);
551 }
552
553 if (jb_variable_get_bool("sylpheed"))
554 jb_object_add_sources(object,
555 "MN:Sylpheed:Mailbox:Backend",
556 "MN:Sylpheed:Message",
557 NULL);
558
559 if (jb_variable_get_bool("maildir") || jb_variable_get_bool("sylpheed"))
560 jb_object_add_source(object, "MN:VFS:Message");
561
562 if (jb_variable_get_bool("gmail"))
563 jb_object_add_sources(object,
564 "MN:Gmail:Mailbox",
565 "MN:Gmail:Mailbox:Properties",
566 NULL);
567
568 if (jb_variable_get_bool("yahoo"))
569 jb_object_add_sources(object,
570 "MN:Yahoo:Mailbox",
571 "MN:Yahoo:Mailbox:Properties",
572 NULL);
573
574 if (jb_variable_get_bool("hotmail"))
575 jb_object_add_sources(object,
576 "MN:Hotmail:Mailbox",
577 "MN:Hotmail:Mailbox:Properties",
578 NULL);
579
580 if (jb_variable_get_bool("yahoo") || jb_variable_get_bool("hotmail"))
581 jb_object_add_sources(object,
582 "MN:Webmail:Mailbox",
583 "MN:Webmail:Mailbox:Properties",
584 NULL);
585
586 if (jb_variable_get_bool("mbox")
587 || jb_variable_get_bool("mozilla")
588 || jb_variable_get_bool("mh")
589 || jb_variable_get_bool("maildir")
590 || jb_variable_get_bool("sylpheed"))
591 jb_object_add_sources(object,
592 "MN:Custom:VFS:Mailbox",
593 "MN:Reentrant:Mailbox",
594 "MN:System:VFS:Mailbox",
595 "MN:System:VFS:Mailbox:Properties",
596 "MN:VFS:Mailbox",
597 "MN:VFS:Mailbox:Backend",
598 NULL);
599
600 if (jb_variable_get_bool("hotmail")
601 || jb_variable_get_bool("imap")
602 || jb_variable_get_bool("maildir")
603 || jb_variable_get_bool("mbox")
604 || jb_variable_get_bool("mh")
605 || jb_variable_get_bool("mozilla")
606 || jb_variable_get_bool("pop3")
607 || jb_variable_get_bool("sylpheed")
608 || jb_variable_get_bool("yahoo"))
609 {
610 jb_compile_options_add_cppflags(object->compile_options, "-DWITH_GMIME=1");
611 jb_compile_options_add_package(object->compile_options, "gmime");
612 jb_object_add_sources(object,
613 "mn-message-mime",
614 "MN:GMime:Stream:VFS",
615 NULL);
616 }
617
618 if (jb_variable_get_bool("ssl"))
619 {
620 jb_compile_options_add_package(object->compile_options, "openssl");
621 jb_object_add_source(object, "mn-ssl");
622 }
623
624 if (jb_variable_get_bool("sasl"))
625 {
626 jb_compile_options_add_package(object->compile_options, "sasl2");
627 jb_object_add_source(object, "mn-sasl");
628 }
629
630 if (jb_variable_get_bool("evolution"))
631 {
632 JBObject *plugin;
633
634 jb_group_add_resource(group, JB_GROUP_RESOURCE(jb_template_new("org-jylefort-mail-notification.eplug.in")));
635 jb_group_add_data_file(group, "org-jylefort-mail-notification.eplug", "$evolution-plugin-dir");
636
637 jb_compile_options_add_cflags(object->compile_options, "$evolution-plugin-cflags");
638
639 jb_group_add_dbus_interface(group,
640 "org.freedesktop.DBus.Properties",
641 "mn-dbus-properties-client-dbus.h",
642 NULL,
643 NULL);
644 jb_group_add_dbus_interface(group,
645 "org.gnome.MailNotification.Evolution",
646 "mn-evolution-client-dbus.h",
647 NULL,
648 NULL);
649
650 jb_object_add_sources(object,
651 "MN:Evolution:Client",
652 "MN:Evolution:Folder:Tree:Client",
653 "MN:Evolution:Mailbox",
654 "MN:Evolution:Mailbox:Properties",
655 "MN:Evolution:Message",
656 "mn-evolution.h",
657 NULL);
658
659 plugin = JB_OBJECT(jb_module_new("liborg-jylefort-mail-notification"));
660
661 jb_install_options_set_installdir(plugin->install_options, "$evolution-plugin-dir");
662
663 jb_compile_options_add_package(plugin->compile_options, "gettext");
664 jb_compile_options_add_package(plugin->compile_options, "evolution-plugin");
665 jb_compile_options_add_package(plugin->compile_options, "dbus");
666
667 jb_group_add_dbus_interface(group,
668 "org.gnome.MailNotification.Evolution",
669 NULL,
670 "mn-evolution-server-dbus.h",
671 "mn_evolution_server");
672 jb_group_add_dbus_interface(group,
673 "org.gnome.MailNotification.Evolution.FolderTree",
674 NULL,
675 "mn-evolution-folder-tree-server-dbus.h",
676 "mn_evolution_folder_tree_server");
677
678 jb_object_add_sources(plugin,
679 "MN:Evolution:Folder:Tree:Server",
680 "MN:Evolution:Server",
681 "mn-evolution-plugin",
682 "mn-evolution.h",
683 NULL);
684
685 jb_group_add_resource(group, JB_GROUP_RESOURCE(plugin));
686 }
687
688 jb_group_add_resource(group, JB_GROUP_RESOURCE(object));
689
690 jb_group_add(group);
691
692 /*** ui ********************************************************************/
693
694 group = jb_group_new("ui");
695
696 jb_group_add_data_files(group,
697 "mailbox-properties-dialog.glade", "$pkgdatadir",
698 "properties-dialog.glade", "$pkgdatadir",
699 NULL);
700
701 jb_group_add(group);
702
703 if (jb_variable_get_bool("regression-tests"))
704 {
705 group = jb_group_new("tests");
706
707 add_vfs_test(group, "smallblock", 4);
708 add_vfs_test(group, "largeblock", 16384);
709
710 jb_group_add(group);
711 }
712 }
713
714 JB_MAIN("mail-notification", "5.4", "Mail Notification")