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 development tree.
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 resolved? Dave.
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? Dave.
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 <mitch@gimp.org> Made the gimp-console binary compile. Finishes core/GUI separation and fixes bug #71514: * configure.in: removed the crazy-hacker warning for --enable-gimp-console. * app/Makefile.am: for gimp-console, copy app_procs.c to app_procs_console.c and compile it instead of app_procs.c with -DGIMP_CONSOLE_COMPILATION * 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()).