We must only generate a git-version.h if we have a .git dir or if we
have no git-version.h at all. Otherwise building from a tarball will
destroy the distributed git-version.h.
Also remove #define GIMP_GIT_LAST_COMMIT_YEAR, we don't use it.
Use `git describe` for verbose version, it provides more info than
just the commit ID, and it feels sane to use an existing command for
this. Note that the commit ID is prefixed with 'g'.
This step moves the %.rc.o pattern rule to a small include file in the
build/windows/ directory. Michael Natterer suggested this approach in
order to minimize the changes done to each executable's Makefile.am.
Eventually all executables will have the manifest and version resources
linked. In this initial step, the current resources are moved from the
app/ directory to a global build/windows directory.
Previously, git-version.h always recorded the latest commit on the
master branch. This change should record the current commit (which is
what gets built) regardless of the branch.
I've checked that it does "the right thing" regarding multi-parent
merges by checking out such a merge commit, generating git-version.h and
comparing it to the commit sha1 in the log.
In order to make a clear separation between the core modules and the
UI modules, move the necessary enums from display-enums.h and
widgets-enums.h to config-enums.h and the files
gimpdisplayoptions.[ch] from the display to the config module. This
removes the config -> display dependency.
This change has three main benefits
* It lets us remove includes of display files from the config module
* We don't have to link gimp-console and test-config with a subset of
object files from the display module
* It is reflected in devel-docs/gimp-module-dependencies.svg that the
application is made up of core modules and UI modules and that no
core module depends on any UI module
Add a VERSIONINFO resource to gimp.rc.in, use windres to create object files
for gimp and gimp-console with file-specific information.
Finally, add gimp.rc to .gitignore.
This resource file can potentially be used for all other exectuables and
shared objects, but some adjustments can become necessary.
Enable us to have regression testing by introducing a core testing
framework that uses the GLib JUnit-like test library.
Do this by adding a new subdir app/tests that will contain all our
tests (it contains one trivial test already). Also add app/tests.[ch]
with a new function gimp_init_for_testing() so that test cases can
easily setup the core object system.
Clean up subsystem linking dependencies by
* Rearranging LDADD entries to better match architectural layers
* Being clear about why we need to pass -u in LDFLAGS some times
* Adding FIXMEs when we have broken dependencies
* Introducing a helper variable so we can share LDADD between
gimp-console and gimp
2008-10-26 Michael Natterer <mitch@gimp.org>
Merge on-canvas GSoC project:
* configure.in: check for pangocairo.
* app/Makefile.am
* app/text/Makefile.am: add its CFLAGS and LIBS.
* app/text/gimptext-bitmap.[ch]
* app/text/gimptext-private.h
* app/text/gimptext-vectors.[ch]
* app/text/gimptextlayer.c
* app/text/gimptextlayout-render.c
* app/text/gimptextlayout.c: port to pangocairo.
* menus/Makefile.am
* menus/text-tool-menu.xml
* app/menus/menus.c
* app/actions/Makefile.am
* app/actions/actions.c
* app/actions/text-tool-actions.[ch]
* app/actions/text-tool-commands.[ch]: add a context menu for the
text tool similar to GtkEntry's context menu.
* app/tools/gimprectangletool.[ch]: add "narrow-mode" property.
* app/tools/gimptextoptions.[ch]
* app/widgets/gimptexteditor.[ch]: take a text buffer for the
standalone text editor window instead of creating one internally.
* app/tools/gimptexttool.[ch]: all the new wonderful on-canvas
text editing logic. Wheee!
svn path=/trunk/; revision=27419
2008-10-18 Sven Neumann <sven@gimp.org>
Applied patch from Alexia Death as attached to bug #471344:
* app/core/Makefile.am
* app/core/gimpcoords-interpolate.[ch]: new files with
interpolation code taken from ...
* app/vectors/gimpbezierstroke.c: ... here.
* app/Makefile.am (AM_LDFLAGS): make it link.
svn path=/trunk/; revision=27314
2008-10-13 Sven Neumann <sven@gimp.org>
* app/Makefile.am
* app/signals.[ch]: new files with code split out of main.c.
* app/main.c: changed accordingly.
svn path=/trunk/; revision=27270
2008-08-07 Tor Lillqvist <tml@novell.com>
* configure.in: Define WIN32_LARGE_ADDRESS_AWARE as
-Wl,--large-address-aware on 32-bit Windows, empty
otherwise. AC_SUBST() it.
* app/Makefile.am (win32_ldflags): Use WIN32_LARGE_ADDRESS_AWARE
instead of hardcoding the switch, as it isn't valid, and would be
pointless, when building a 64-bit GIMP.
svn path=/trunk/; revision=26411
2008-07-17 Tor Lillqvist <tml@novell.com>
* app/Makefile.am (win32_ldflags): Use -Wl,--large-address-aware
on Windows so that we can use more that 2 GB user data space (if
available; i.e. if running on a 64-bit OS, or a 32-bit OS booted
with /3GB). See discussion in bug #522073.
svn path=/trunk/; revision=26220
2008-07-11 Sven Neumann <sven@gimp.org>
* app/Makefile.am
* app/unique.[ch]: new files containing functionality to check
for
an already running instance of GIMP of notifying it about files
to
open. Code split out of main.c.
* app/main.c: changed accordingly.
svn path=/trunk/; revision=26117
2008-05-20 Michael Natterer <mitch@gimp.org>
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimpimagemapconfig.[ch]: new GimpViewable subclass
which has a "time" property. Sets the object's name to a date
string if a time != 0 gets set. Has a compare function which first
sorts the objects with a timestamp in MRU order and then the
objects without timestamp by name.
* app/gegl/gimpbrightnesscontrastconfig.[ch]
* app/gegl/gimpcolorbalanceconfig.[ch]
* app/gegl/gimpcolorizeconfig.[ch]
* app/gegl/gimpcurvesconfig.[ch]
* app/gegl/gimphuesaturationconfig.[ch]
* app/gegl/gimplevelsconfig.[ch]
* app/gegl/gimpposterizeconfig.[ch]
* app/gegl/gimpthresholdconfig.[ch]: derive from GimpImageMapConfig.
* app/tools/gimpimagemaptool.c: sort the settings container with
above compare function.
* app/tools/gimpimagemaptool-settings.c: add utility functions
for loading and saving the settings container. In the settings
combo, add a separator between MRU items and favorites.
* app/Makefile.am: make the thing link.
svn path=/trunk/; revision=25724
2008-05-09 Simon Budig <simon@gimp.org>
* app/core/gimpscanconvert.[ch]: removed Libart usage,
replaced with Cairo. Dashed strokes do not yet work again, will
happen tomorrow. Also the blending modes need a second look at.
Also removed deprecated API which made it unnecessarily complicated.
* app/tools/gimpiscissorstool.c: use the current API.
* app/core/Makefile.am
* app/Makefile.am
* configure.in: removed libart dependency, added cairo dependency
where necessary.
svn path=/trunk/; revision=25591
2008-02-26 Sven Neumann <sven@gimp.org>
* app/Makefile.am (gimp_2_5_LDFLAGS): don't assume that global
AM_LDFLAGS and per-target LD_FLAGS would sum up and explicitly
add
AM_LDFLAGS to gimp_2_5_LDFLAGS.
svn path=/trunk/; revision=24987
2008-02-26 Tor Lillqvist <tml@novell.com>
* app/version.[ch]: New files. Rename gimp_show_version() to
gimp_version_show() and move here. When given both --version and
--verbose, print build-time and run-time versions of the most
important dependencies.
* app/Makefile.am: Add them.
* app/main.c: Call gimp_version_show().
* app/Makefile.am: Use -mwindows only for the GUI gimp, not for
gimp-console.
svn path=/trunk/; revision=24968
2007-12-29 Øyvind Kolås <pippin@gimp.org>
Added adapter GEGL operations for reading and writing to TileManagers.
* configure.in:
* app/Makefile.am: added gegl subdir.
* app/gegl/Makefile.am: added.
* app/gegl/gimpops.c: (gimp_gegl_ops_init):
* app/gegl/gimpoptilesink.[ch]: adapter GEGL operation for writing to
GIMP tile managers.
* app/gegl/gimpoptilesource.[ch]: adapter GEGL operation for reading
from GIMP tile managers.
* app/main.c: (main): call gimp_gegl_ops_init()
* app/gegl/gegl/: added some headers from GEGL that are not installed
since they are not public API yet.
svn path=/trunk/; revision=24458
2007-11-15 Michael Natterer <mitch@gimp.org>
* app/Makefile.am
* app/gimp-log.[ch]: new files implementing a log facility which
can be enabled using the GIMP_LOG environment variable.
* app/main.c: initialize it.
* app/display/gimpdisplayshell-callbacks.c: use it instead of
private debugging macros that need to be enabled at compile time.
svn path=/trunk/; revision=24160
2007-10-31 Michael Natterer <mitch@gimp.org>
* configure.in
* app/Makefile.am
* tools/Makefile.am: bump some more hardcoded 2.4 to 2.5
svn path=/trunk/; revision=24017
2007-09-03 Michael Natterer <mitch@gimp.org>
* Made 2.4.0-rc2 release.
* app/Makefile.am (dist-dump-gimprc): added some sed voodoo to
make sure the num-processors in the distributed gimprc and its
manpage don't depend on the machine that does make dist.
svn path=/trunk/; revision=23453
2007-08-30 Michael Natterer <mitch@gimp.org>
First version of global menubar support for OSX. Work in progress.
* app/gui/Makefile.am
* app/gui/sync-menu.[ch]: new files containing code that takes
a GtkMenuShell and proxies it in the OSX global menubar. Taken
from http://developer.imendio.com/projects/gtk-macosx/menubar
* app/gui/gui.c: put the global image popup menu to the menubar.
* app/dialogs/preferences-dialog.c
* app/display/gimpdisplayshell.c
* app/widgets/gimptoolbox.c: #ifdef out all menubars in windows.
* app/Makefile.am (AM_LDFLAGS): add $(CARBON_LDFLAGS)
svn path=/trunk/; revision=23408
2007-08-15 Sven Neumann <sven@gimp.org>
* configure.in: bumped the version to 2.4.0-rc1.
* README
* INSTALL: updated for the GIMP 2.4 release candidate(s).
* data/images/gimp-splash.png: added splash screen for the 2.4
release candidate(s).
* app/Makefile.am
* tools/Makefile.am: adjust targets for 2.4.
svn path=/trunk/; revision=23281
2007-06-25 Sven Neumann <sven@gimp.org>
* configure.in: removed extra check for gthread and fold it into
the GLIB and GTK checks.
* */Makefile.am: changed accordingly.
* app/main.c (main): always call g_thread_init().
svn path=/trunk/; revision=22832
2007-04-18 Sven Neumann <sven@gimp.org>
* app/plug-in/Makefile.am
* app/plug-in/gimppluginmanager.[ch]
* app/plug-in/gimppluginmanager-restore.[ch]: moved
gimp_plug_in_manager_restore() to it's own file.
* app/core/gimp.c: changed accordingly.
* app/Makefile.am (LDFLAGS): convince the linker to do its job.
svn path=/trunk/; revision=22286
2007-01-30 Michael Natterer <mitch@gimp.org>
* app/vectors/Makefile.am
* app/vectors/vectors-types.h
* app/vectors/gimpvectorspropundo.[ch]: new undo class which
implements GIMP_UNDO_VECTORS_REPOSITION.
* app/core/gimpimage-undo-push.c: use it here.
* app/Makefile.am: another lame linker hack to make it build with
the new file that is not used in app/vectors/ itself.
svn path=/trunk/; revision=21818
2007-01-19 Sven Neumann <sven@gimp.org>
* INSTALL
* configure.in: check for D-Bus GLib bindings.
* app/Makefile.am
* app/main.c: check if an interactive GIMP instance proposes
itself on the D-Bus and delegate to it. Allow this behaviour to be
overridden by using the --new-instance command-line option.
* app/widgets/Makefile.am
* app/widgets/gimpdbusservice.[ch]
* app/widgets/dbus-service.xml: added an object that offers a
D-Bus service.
* app/gui/Makefile.am
* app/gui/gui.c: connect to the D-Bus and export the GimpDBusService.
svn path=/trunk/; revision=21737
2006-10-27 Sven Neumann <sven@gimp.org>
* libgimpconfig/gimpcolorconfig-enums.[ch]
* libgimpconfig/gimpcolorconfig.c
* libgimpconfig/gimpconfig.def: removed unused enum
GimpColorFileOpenBehaviour.
* app/core/core-enums.[ch]: added enum GimpColorProfilePolicy.
* app/config/gimpcoreconfig.[ch]
* app/config/gimprc-blurbs.h: added property
"color-profile-policy".
* app/plug-in/Makefile.am
* app/plug-in/plug-in-icc-profile.[ch]: new files that wrap
usage
of the lcms plug-in.
* app/file/file-open.c: implement the user-configured policy for
embedded color profiles.
* app/widgets/gimpimageprofileview.c: use the wrapper to call
the
plug-in-icc-profile-info procedure.
* app/widgets/gimptoolbox-dnd.c: pass TRUE for "attach_comment"
parameter to gimp_create_image().
* app/core/gimptemplate.c
* app/file/Makefile.am: cosmetic changes.
* app/Makefile.am: some resorting to make the beast link again.
2006-08-05 Michael Natterer <mitch@gimp.org>
* app/pdb/gimp-pdb-compat.[ch]: added
gimp_pdb_compat_procs_register().
* app/pdb/gimp-pdb.[ch]: removed these files.
* app/pdb/gimppdb.c
* app/core/gimp.c: changed accordingly.
* app/pdb/Makefile.am: build a separate libappinternal-procs.a
* app/Makefile.am: link it.
2006-04-27 Michael Natterer <mitch@gimp.org>
* app/Makefile.am (SUBDIRS): changed order of subdirs to match the
bottom-up module dependency order more closely.
2006-02-19 Manish Singh <yosh@gimp.org>
* m4macros/binreloc.m4: introduce automake conditional USE_BINRELOC.
* app/Makefile.am: ... and use the above here, so that -rpath is only
specified when binreloc functionality is enabled. Fixes bug #331677.
2005-12-28 Sven Neumann <sven@gimp.org>
* app/Makefile.am
* app/about.h: new file collecting some strings about the app.
* app/main.c
* app/dialogs/about-dialog.c
* app/dialogs/user-install-dialog.c: use the defines from about.h.
2005-11-06 Sven Neumann <sven@gimp.org>
Added support for binary relocation by means of binreloc, largely
based on a patch by Hongli Lai:
* m4macros/Makefile.am
* m4macros/binreloc.m4: new file providing a macro to check for
binreloc support.
* acinclude.m4
* configure.in: use the macro.
* libgimpbase/Makefile.am
* libgimpbase/gimpreloc.[ch]: new files providing binreloc support
on Linux.
* libgimpbase/gimpenv.[ch]: use binreloc, provide a function to
initialize the environment machinery.
* libgimpbase/gimpbase.def: updated.
* app/Makefile.am: fiddle with the LDFLAGS for binreloc.
* app/main.c (main): gimp_env_init(FALSE).
* libgimp/gimp.c (gimp_main): gimp_env_init(TRUE).
2005-11-05 Sven Neumann <sven@gimp.org>
* app/Makefile.am: removed unused variable scriptdata.
* app/plug-in/plug-ins.c (plug_ins_init): Fixed progress value for
plug-in query and initialization.
* plug-ins/common/uniteditor.c (new_unit_dialog): use a
GtkMessageDialog instead of g_message(). Some string changes.
2005-03-19 Manish Singh <yosh@gimp.org>
* app/config/Makefile.am: actually link test program with
libgimpconfig.
* app/Makefile.am
* libgimpwidgets/Makefile.am: reordered library link order to be
consistent with shared library dependencies.
* plug-ins/common/mkgen.pl: Cosmetic fix to the generated Makefile.am.
* plug-ins/common/Makefile.am: regenerated.
2004-11-06 Sven Neumann <sven@gimp.org>
New Win32 icons contributed by Jernej Simoncic:
* app/Makefile.am
* app/makefile.msc
* app/gimp.rc
* app/fileicon.ico: added new file icon for the Win32 build.
* app/wilber.ico: nicer application icon for the Win32 build.
2004-10-25 Sven Neumann <sven@gimp.org>
* configure.in
* app/Makefile.am
* tools/Makefile.am: bumped version to 2.2.0-pre1, set app version
to 2.2, reset other versions to 2.0. Changed library versioning so
we install with the same soname as gimp-2.0 again.
2004-09-20 Michael Natterer <mitch@gimp.org>
* app/Makefile.am (gimp_2_1_LDFLAGS): removed all -u hacks.
(gimp_2_1_LDADD)
(gimp_console_2_1_LDADD): reordered .a files correctly. The core
seems to be cleaned up enough to have proper dependencies now.