Mercurial > hg > octave-lyh
diff gui/src/octave-gui.cc @ 15139:bfc220d1de67 gui
include gui in default Octave binary
* Makefile.am (GUIDIR): New variable.
(SUBDIRS): Use it in the list instead of @GUIDIR@. List $(GUIDIR)
before src.
* gui/src/Makefile.am (bin_PROGRAMS): Delete.
(octlib_LTLIBRARIES): New variable.
(liboctgui_la_SOURCES): Rename from octave_gui_SOURCES.
(liboctgui_la_CPPFLAGS): Rename from octave_gui_CPPFLAGS.
(liboctgui_la_LIBADD): Rename from octave_gui_LDADD.
Don't include Octave libraries in the list.
Do include Qt libraries in the list.
(liboctgui_la_LDFLAGS): Rename from octave_gui_LDFLAGS.
Only include -L@QT_LIBDIR@ option in the list.
(moc_%.cpp): Use $(liboctgui_la_CPPFLAGS) in rules, not
$(octave_gui_CPPFLAGS).
* octave-gui.h: New file.
* octave-gui.cc: Include it.
(dissociate_terminal): In parent, wait for child process and exit with
exit status of child.
(octave_start_gui): Rename from main.
* run-octave.in: Start with GUI by default. Rename -gui option -cli
to allow running octave-cli binary.
* main.cc, main-cli.cc: New files.
* main.c: Delete.
* src/Makefile (bin_PROGRAMS): Include octave-cli in the list.
(OCTAVE_CORE_LIBS): New variable.
(octave_cli_SOURCES, octave_cli_LDADD, octave_cli_LDFLAGS):
New variables.
(octave_SOURCES): Define to main.cc, not main.c.
(octave_CPPFLAGS): New variable.
(octave_LDFLAGS): Include -DENABLE_GUI=1 in the list.
(octave_LDADD): Use $(OCTAVE_CORE_LIBS) and link with GUI lib.
* octave.cc (force_gui_option, no_gui_option): New static variables.
(octave_starting_gui): New function.
(usage_string): Update for new options.
(FORCE_GUI_OPTION, NO_GUI_OPTION): New macros.
(long_opts): Include "force-gui" and "no-gui" options in the list.
(octave_main): Handle FORCE_GUI_OPTION and NO_GUI_OPTION cases.
Error if both --force-gui and --no-gui are used.
* octave.h (octave_starting_gui): Provide decl.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 10 Aug 2012 10:27:32 -0400 |
parents | 16a6b0a6855d |
children | 9e62d5a3a45e |
line wrap: on
line diff
--- a/gui/src/octave-gui.cc +++ b/gui/src/octave-gui.cc @@ -21,6 +21,7 @@ #include "welcome-wizard.h" #include "resource-manager.h" #include "main-window.h" +#include "octave-gui.h" // Dissociate from the controlling terminal, if any. @@ -28,6 +29,7 @@ dissociate_terminal (void) { #if ! defined (Q_OS_WIN32) || defined (Q_OS_CYGWIN) + pid_t pid = fork (); if (pid < 0) @@ -46,15 +48,22 @@ } } else - exit (0); + { + // Parent + + int status; + + waitpid (pid, &status, 0); + + exit (WIFEXITED (status) ? WEXITSTATUS (status) : 127); + } + #endif } int -main (int argc, char *argv[]) +octave_start_gui (int argc, char *argv[]) { - octave_initialize_interpreter (argc, argv, 0); - dissociate_terminal (); QApplication application (argc, argv);