mirror of
https://gitlab.gnome.org/GNOME/gimp
synced 2024-10-21 03:52:33 +00:00
a74a8997b4
2002-05-03 Michael Natterer <mitch@gimp.org> * devel-docs/Makefile.am * devel-docs/includes.txt: new file documenting the core's include policy. * HACKING: mention it here. * libgimptool/gimptooltypes.h: removed GimpToolOptions here. * app/core/core-types.h: and added it here. This is a temp hack needed because GimpToolInfo needs to know the GimpToolOptions type. * libgimpproxy/gimpproxytypes.h: regenerated. * libgimptool/gimptoolmodule.h: don't include gimptooltypes.h here... * libgimptool/gimptoolmodule.c: ...but here. * app/config/gimpconfig-params.c: include "libgimpbase/gimpbase.h" entirely, not single files from it. * app/core/gimp.c * app/core/gimpcontext.c * app/core/gimpcoreconfig.c * app/core/gimpdatafactory.c * app/core/gimpdocuments.c * app/core/gimpdrawable-blend.c * app/core/gimpdrawable-bucket-fill.c * app/core/gimpdrawable-offset.c * app/core/gimpdrawable-transform.c * app/core/gimpdrawable.c * app/core/gimpedit.c * app/core/gimpimage-convert.c * app/core/gimpimage-crop.c * app/core/gimpimage-duplicate.c * app/core/gimpimage-guides.c * app/core/gimpimage-mask.c * app/core/gimpimage-merge.c * app/core/gimpimage-new.c * app/core/gimpimage-projection.c * app/core/gimpimage-qmask.c * app/core/gimpimage-resize.c * app/core/gimpimage-scale.c * app/core/gimpimage.c * app/core/gimpitem.c * app/core/gimpmodules.c * app/core/gimppaintinfo.c * app/core/gimpparasite.c * app/core/gimppreviewcache.c * app/core/gimptoolinfo.c * app/core/gimpunit.c: include "core-types.h" and no other types file. * app/display/gimpdisplay.c * app/display/gimpdisplayshell-callbacks.c * app/display/gimpdisplayshell.c: include "tools/tools-types.h" instead of "libgimptool/gimptooltypes.h", warn about inclusion on "gui/gui-types.h" * app/file/file-open.c * app/file/file-save.c: don't include "libgimptool/gimptooltypes.h". * app/gui/about-dialog.c * app/gui/brush-select.c * app/gui/brushes-commands.c * app/gui/color-select.c * app/gui/data-commands.c * app/gui/device-status-dialog.c * app/gui/dialogs.c * app/gui/gradients-commands.c * app/gui/help-commands.c * app/gui/info-window.c * app/gui/palettes-commands.c * app/gui/patterns-commands.c * app/gui/resize-dialog.c * app/gui/tips-dialog.c * app/gui/tool-options-dialog.c: include "gui-types.h" and no other types file. * app/paint/gimpairbrush.c * app/paint/gimpclone.c * app/paint/gimpconvolve.c * app/paint/gimpdodgeburn.c * app/paint/gimperaser.c * app/paint/gimppaintbrush.c * app/paint/gimppaintcore-stroke.c * app/paint/gimppaintcore.c * app/paint/gimppaintoptions.c * app/paint/gimppencil.c * app/paint/gimpsmudge.c * app/paint/paint.c: include "paint-types.h" and no other types file. * app/pdb/pdb-types.h: don't include "libgimptool/gimptooltypes.h". * app/plug-in/plug-in-progress.c: warn about inclusion of "display/display-types.h" * app/tools/tools-types.h: include "libgimptool/gimptooltypes.h". * app/tools/gimpairbrushtool.c * app/tools/gimpbezierselecttool.c * app/tools/gimpblendtool.c * app/tools/gimpbrightnesscontrasttool.c * app/tools/gimpbucketfilltool.c * app/tools/gimpbycolorselecttool.c * app/tools/gimpclonetool.c * app/tools/gimpcolorbalancetool.c * app/tools/gimpcolorpickertool.c * app/tools/gimpconvolvetool.c * app/tools/gimpcroptool.c * app/tools/gimpcurvestool.c * app/tools/gimpdodgeburntool.c * app/tools/gimpdrawtool.c * app/tools/gimpeditselectiontool.c * app/tools/gimpellipseselecttool.c * app/tools/gimperasertool.c * app/tools/gimpfliptool.c * app/tools/gimpfreeselecttool.c * app/tools/gimpfuzzyselecttool.c * app/tools/gimphistogramtool.c * app/tools/gimphuesaturationtool.c * app/tools/gimpinktool.c * app/tools/gimplevelstool.c * app/tools/gimpmagnifytool.c * app/tools/gimpmeasuretool.c * app/tools/gimpmovetool.c * app/tools/gimppaintbrushtool.c * app/tools/gimppainttool.c * app/tools/gimppathtool.c * app/tools/gimppenciltool.c * app/tools/gimpperspectivetool.c * app/tools/gimpposterizetool.c * app/tools/gimprectselecttool.c * app/tools/gimprotatetool.c * app/tools/gimpscaletool.c * app/tools/gimpselectiontool.c * app/tools/gimpsheartool.c * app/tools/gimpsmudgetool.c * app/tools/gimptexttool.c * app/tools/gimpthresholdtool.c * app/tools/gimptoolcontrol.c * app/tools/gimptoolcontrol.h * app/tools/gimptransformtool.c * app/tools/gimpvectortool.c * app/tools/tools.c: include "tools-types.h" and no other types file, warn about inclusion of "gui/gui-types.h". * app/widgets/gimpcolorpanel.c * app/widgets/gimptoolbox-color-area.c: warn about inclusion of "gui/gui-types.h". * app/xcf/xcf-load.c * app/xcf/xcf.c: don't include "libgimptool/gimptooltypes.h". Split tool-safe-mode up in two files, one including libgimpproxy, one libgimp. * plug-ins/tools/Makefile.am * plug-ins/tools/tool-safe-mode-plug-in.[ch]: new files including libgimp/ stuff only. * plug-ins/tools/tool-safe-mode.[ch]: include libgimpproxy/ and libgimptool/ but don't include libgimp/ because of conflicting declarations. Unrelated: * app/tools/gimpclonetool.c: create the clone core so we don't crash. * app/gui/file-open-dialog.c: changed the way we create previews so that only out-of-date previews are created on a click in the preview area. Unconditional creation can still be forced by <Ctrl>+click. Changed the tooltip to document this.
131 lines
4.8 KiB
Plaintext
131 lines
4.8 KiB
Plaintext
Requirements
|
|
------------
|
|
If you want to hack on the GIMP project, it will make your life easier
|
|
to have the following packages (or newer versions) installed:
|
|
|
|
- GNU autoconf 2.13
|
|
- GNU automake 1.4
|
|
- GNU libtool 1.3.4
|
|
|
|
These should be available by ftp from prep.ai.mit.edu or any of the
|
|
fine GNU mirrors. Beta software can be found at alpha.gnu.org.
|
|
|
|
- pkg-config 0.7.0 (or a newer version)
|
|
|
|
Available from http://www.freedesktop.org/software/pkgconfig/.
|
|
|
|
- intltoolize 0.17 (or newer version)
|
|
|
|
Available from ftp://ftp.gnome.org/pub/GNOME/stable/sources/intltool/.
|
|
|
|
These are the additional requirements if you want to compile from CVS.
|
|
The file INSTALL lists the various libraries we depend on.
|
|
|
|
|
|
Compilation
|
|
-----------
|
|
If you are accessing gimp via CVS, then you will need to take several
|
|
steps to get it to compile. You can do all these steps at once
|
|
by running:
|
|
|
|
cvsroot/gimp# ./autogen.sh
|
|
|
|
Basically this does the following for you:
|
|
|
|
cvsroot/gimp# aclocal; automake -a; autoconf
|
|
cvsroot/gimp# glib-gettextize; intltoolize
|
|
|
|
The above commands create the "configure" script. Now you
|
|
can run the configure script in cvsroot/gimp to create all
|
|
the Makefiles.
|
|
|
|
Before running autogen.sh or configure, make sure you have libtool in
|
|
your path. Also make sure glib-2.0.m4 glib-gettext.m4, gtk-2.0.m4,
|
|
pkg.m4 and intltool.m4 are either installed in the same
|
|
$prefix/share/aclocal relative to your automake/aclocal installation
|
|
or call autogen.sh with
|
|
|
|
'ACLOCAL_FLAGS="-I $prefix/share/aclocal" ./autogen.sh'.
|
|
|
|
Note that autogen.sh runs configure for you. If you wish to pass
|
|
options like --prefix=/usr to configure you can give those options to
|
|
autogen.sh and they will be passed on to configure.
|
|
|
|
|
|
CVS
|
|
---
|
|
GIMP is available from GNOME CVS. You can also grab glib, pango, atk,
|
|
libart, gtk+ as well as intltool and gtk-doc from the same CVS server.
|
|
You can use the following commands to get them from the anonymous CVS
|
|
server:
|
|
|
|
$ export CVSROOT=':pserver:anonymous@anoncvs.gimp.org:/cvs/gnome'
|
|
$ cvs login
|
|
(there is no password, just hit return)
|
|
$ cvs -z3 checkout <module>
|
|
|
|
The interesting module are: glib, atk, pango, gtk+, libart_lgpl,
|
|
intltool, gtk-doc
|
|
|
|
|
|
Patches
|
|
-------
|
|
Please submit patches to the gimp-developer@lists.xcf.berkeley.edu
|
|
mailing list. It's also a good idea to file a bug-report at
|
|
http://bugzilla.gnome.org/ and attach your patch to it. All kinds
|
|
of contributions are appreciated.
|
|
|
|
Large patches can also be uploaded to ftp://ftp.gimp.org/incoming/
|
|
Follow the rules there for naming your patches.
|
|
|
|
|
|
Autogenerated Files
|
|
-------------------
|
|
Please notice that some files in the source are generated from other
|
|
sources. All those files have a short notice about being autogenerated
|
|
somewhere at the top. Among them are the files ending in _pdb.[ch] in
|
|
the libgimp directory and the files ending in _cmds.c in the app/pdb
|
|
subdirectory. Those are generated from the respective .pdb files in
|
|
tools/pdbgen/pdb. The list of contributors is used in several files
|
|
which are for that reason generated from the file contributors in
|
|
tools/authorsgen.
|
|
|
|
|
|
Hackordnung
|
|
-----------
|
|
We encourage you to follow the GIMP coding style throughout the GIMP
|
|
project. For the core components (application and libs) this coding
|
|
style is enforced. The GIMP coding style is defined as follows:
|
|
|
|
Function names are lowercase, words separated by underscores.
|
|
Macros and enums are all uppercase, words seperated by underscores.
|
|
Types are all words capitalized, no separators between words.
|
|
|
|
All functions in header files need to be prototyped.
|
|
|
|
Indentation rules are GNU coding style, in particular:
|
|
- 2 characters indentation level
|
|
- Do not use tabs (of course your editor can use tabs, but it
|
|
should write them to file as 8 spaces each).
|
|
- Opening brackets are on a new line and indented one level.
|
|
- Function header have the return type on one line, the name
|
|
starting in the first column of the following line. All
|
|
parameters are prototyped and there's a new line for each.
|
|
|
|
Try to make use of GLib's object system as much as possible. Do not
|
|
create wrappers around functions of parent classes. If you end up
|
|
duplicating code, try to create a common parent class and implement
|
|
the common methods there.
|
|
|
|
Don't include headers in headers except where unavoidable (e.g. for
|
|
deriving objects). Opaque typedefs go to app/base/base-types.h,
|
|
app/core/core-types.h etc. See devel-docs/includes.txt for a
|
|
detailed description of the include policy.
|
|
|
|
Don't use the GTK wrappers around the GLib object and signal system.
|
|
|
|
One goal of the 1.3 development branch is to make the GIMP code more
|
|
readable and understandable. Please help us to achieve this goal by
|
|
cleaning up the present code and make sure that all new code follows
|
|
the coding guidelines.
|