GNOME Bugzilla – Bug 71514
GUI / Functionality Separation
Last modified: 2004-12-22 21:47:04 UTC
Both file scope wise and in use, particulary so that the GUI
version of the tool uses the pdb whenever possible
(for finding bugs, and for macro recording)
The core and the GUI have to reside in separate subdirectories.
GUI/functionality separation actually one of the main goals for 1.4
and I think we've already come a long way towards it in the gimp-1.3
We are close to the point where you can build a version of The Gimp
that is not even linked to GTK+. Stay tuned.
This will definitely happen soon in the 1.3 line.
What else need to happen before we can declare this feature request
There needs to be a second toplevel makefile target which
creates a "gimp-console" binary that does not link against GTK+.
I was feeling brave last night and I had a look at this.
This seems very non-trivial. The auto* work is done, but many of the
files that are linked into gimp-console use gtk stuff. It's not a
monsteer job,, but I don't think that it should be a blocker to 2.0.
Is there any opposition to bumping this (the actual creation of a
command-line app) to 2.2?
I agree that this should be bumped to 2.2 The current gimp-1.3
executable already works completely w/o a other windowing system like
X11. Creating a binary that doesn't even link to gtk+ would of course
be elite but it's not a blocker.
Fixed in CVS:
2004-07-12 Michael Natterer <firstname.lastname@example.org>
Made the gimp-console binary compile.
Finishes core/GUI separation and fixes bug #71514:
* configure.in: removed the crazy-hacker warning for
* app/Makefile.am: for gimp-console, copy app_procs.c to
app_procs_console.c and compile it instead of app_procs.c with
* app/app_procs.[ch]: added some #ifndef GIMP_CONSOLE_COMPILATION
to skip GUI stuff for the gimp-console case.
Renamed app_gui_libs_init() to app_libs_init(), renamed
app_gui_abort() to app_abort() and added app_exit() so everything
that needs #ifdefs lives here now.
* app/main.c: changed accordingly.
* app/gui/gui.c (gui_abort): really abort (call exit()).