summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Dixon <6b8b4567@gmail.com>2010-10-25 23:14:05 +0100
committerMichael Meeks <michael.meeks@novell.com>2010-10-26 11:15:24 +0100
commit53a31ce229ec426331e2cca61e48789d8f86781c (patch)
treeb65963e534cfd932504b99e2266367ccc1081519
parentd479d45dec347eabfaf83a0635b3d31adc76f235 (diff)
Add zenity systray support to the build.
Adds also a configure option '--enable-zenity' used to enable this feature.
-rw-r--r--configure.in18
-rw-r--r--set_soenv.in1
-rwxr-xr-xsolenv/bin/build.pl54
3 files changed, 73 insertions, 0 deletions
diff --git a/configure.in b/configure.in
index e63c29984..d9111cdae 100644
--- a/configure.in
+++ b/configure.in
@@ -945,6 +945,10 @@ AC_ARG_WITH(max-jobs,
can get up to CPUS*max_jobs. Defaults to 1, unless
you configure --enable-icecream - then to 10.
],,)
+AC_ARG_ENABLE(zenity,
+[ --enable-zenity Display a icon in the notification area during
+ build.
+],,)
BUILD_TYPE="OOo"
@@ -7465,6 +7469,20 @@ fi
AC_SUBST(VERBOSE)
dnl ===================================================================
+dnl Use zenity during build
+dnl ===================================================================
+AC_MSG_CHECKING([whether to use zenity during build])
+if test "$enable_zenity" = "yes"; then
+ ENABLE_ZENITY=TRUE
+ AC_MSG_RESULT([yes])
+else
+ ENABLE_ZENITY=FALSE
+ AC_MSG_RESULT([no])
+fi
+AC_SUBST(ENABLE_ZENITY)
+
+
+dnl ===================================================================
dnl Hook up OOos nodep environmental variable to automake's equivalent
dnl --enable-dependency-tracking configure option
dnl ===================================================================
diff --git a/set_soenv.in b/set_soenv.in
index 430003f4b..342657368 100644
--- a/set_soenv.in
+++ b/set_soenv.in
@@ -1838,6 +1838,7 @@ ToFile( "WITHOUT_PPDS", "@WITHOUT_PPDS@", "e" );
ToFile( "WITH_BINFILTER", "@WITH_BINFILTER@", "e" );
ToFile( "BUILD_TYPE", "@BUILD_TYPE@", "e" );
ToFile( "VERBOSE", "@VERBOSE@", "e" );
+ToFile( "ENABLE_ZENITY", "@ENABLE_ZENITY@", "e" );
ToFile( "ENABLE_EVOAB2", "@ENABLE_EVOAB2@", "e" );
ToFile( "GOBJECT_CFLAGS", "@GOBJECT_CFLAGS@", "e" );
ToFile( "GOBJECT_LIBS", "@GOBJECT_LIBS@", "e" );
diff --git a/solenv/bin/build.pl b/solenv/bin/build.pl
index 6148c33c1..50a4c3619 100755
--- a/solenv/bin/build.pl
+++ b/solenv/bin/build.pl
@@ -42,6 +42,7 @@
use Fcntl;
use POSIX qw(:errno_h);
use Sys::Hostname;
+ use IPC::Open3;
use lib ("$ENV{SOLARENV}/bin/modules");
use SourceConfig;
@@ -208,10 +209,17 @@
%module_deps_hash_pids = ();
my @argv = @ARGV;
my $source_config_file;
+ my $zenity_pid = 0;
+ my $zenity_in = '';
+ my $zenity_out = '';
+ my $zenity_err = '';
### main ###
get_options();
+ zenity_open();
+ zenity_tooltip("Starting build.");
+
# my $temp_html_file = CorrectPath($tmp_dir. '/' . $ENV{INPATH}. '.build.html');
get_build_modes();
%deliver_env = ();
@@ -1704,6 +1712,8 @@ sub cancel_build {
print " http://wiki.documentfoundation.org/Development\n";
print "\n";
+ zenity_set_message("LibreOffice Build Failed!");
+
if (!$broken_modules_number || !$build_all_parents) {
while (children_number()) {
handle_dead_children(1);
@@ -2132,9 +2142,47 @@ sub print_announce {
$announce_string .= $echo . $text;
$announce_string .= $echo . "=============\n";
print $announce_string;
+ my $total_modules = scalar(keys %build_lists_hash);
+ my $modules_started = scalar(keys %module_announced) + 1;
+ zenity_tooltip("($modules_started/$total_modules) $text");
$module_announced{$Prj}++;
};
+sub zenity_open {
+ if (defined $ENV{ENABLE_ZENITY}) {
+ my $zenity_pid = open3($zenity_in, $zenity_out, $zenity_err,
+ "/bin/env zenity --notification --listen");
+ };
+};
+
+sub zenity_close {
+ if (defined $ENV{ENABLE_ZENITY}) {
+ sleep(1); # Give Zenity a chance to show the message.
+ kill 1, $zenity_pid;
+ };
+};
+
+sub zenity_icon {
+ if (defined $ENV{ENABLE_ZENITY}) {
+ my $filename = shift;
+ print $zenity_in "icon: $filename\n";
+ };
+};
+
+sub zenity_tooltip {
+ if (defined $ENV{ENABLE_ZENITY}) {
+ my $text = shift;
+ print $zenity_in "tooltip: LibreOffice Build: $text\n";
+ };
+};
+
+sub zenity_message {
+ if (defined $ENV{ENABLE_ZENITY}) {
+ my $text = shift;
+ print $zenity_in "message: $text\n";
+ };
+};
+
sub are_all_dependent {
my $build_queue = shift;
my $folder = '';
@@ -2732,6 +2780,12 @@ sub do_exit {
# close_server_socket();
my $exit_code = shift;
$build_finished++;
+ if ($exit_code) {
+ zenity_message("LibreOffice Build Failed!")
+ } else {
+ zenity_message("LibreOffice Build Success!")
+ };
+ zenity_close();
generate_html_file(1);
if ( $^O eq 'os2' )
{