[gimp/meson: 805/805] Merge branch 'master' into meson. Backport autotools modifs into Meson files.



commit 4936c7cb12e770eabbfe309a5c45a3492b29a1bc
Merge: 78c8693 1750d97
Author: Félix Piédallu <felix piedallu me>
Date:   Fri Feb 2 16:10:54 2018 +0100

    Merge branch 'master' into meson. Backport autotools modifs into Meson files.

 .gitignore                                         |   52 +
 INSTALL.in                                         |   13 +-
 Makefile.am                                        |   41 +
 NEWS                                               |   80 +-
 app/.gitignore                                     |    1 -
 app/Makefile.am                                    |   52 +-
 app/actions/debug-commands.c                       |   26 +-
 app/actions/filters-actions.c                      |   25 +
 app/actions/filters-commands.c                     |   31 +-
 app/actions/gimpgeglprocedure.c                    |   56 +-
 app/actions/image-actions.c                        |    2 +-
 app/actions/layers-actions.c                       |    4 +-
 app/app.c                                          |    9 +-
 app/app.h                                          |    3 +-
 app/config/gimpcoreconfig.c                        |   60 +
 app/config/gimpcoreconfig.h                        |    4 +
 app/config/gimpguiconfig.c                         |   12 +-
 app/config/gimprc-blurbs.h                         |   12 +
 app/core/gimp-gui.c                                |   11 +-
 app/core/gimp-gui.h                                |    6 +-
 app/core/gimp-internal-data.c                      |    4 +-
 app/core/gimp-transform-resize.c                   |  552 +-
 app/core/gimp-transform-utils.c                    |  253 +-
 app/core/gimp-transform-utils.h                    |   30 +-
 app/core/gimp-utils.c                              |    2 +-
 app/core/gimp.c                                    |    4 +-
 app/core/gimpbrush-load.c                          |    4 +-
 app/core/gimpbrushcache.c                          |    2 +-
 app/core/gimpbrushclipboard.c                      |    2 +-
 app/core/gimpbrushpipe-load.c                      |    2 +-
 app/core/gimpchannelpropundo.c                     |    6 +-
 app/core/gimpchannelundo.c                         |    2 +-
 app/core/gimpcontext.c                             |    2 +-
 app/core/gimpdrawable-transform.c                  |   26 +-
 app/core/gimpdrawablemodundo.c                     |    2 +-
 app/core/gimpdrawablestack.c                       |    4 +-
 app/core/gimpdrawableundo.c                        |    4 +-
 app/core/gimpfilteredcontainer.c                   |    2 +-
 app/core/gimpfilterstack.c                         |    4 +-
 app/core/gimpfloatingselectionundo.c               |    6 +-
 app/core/gimpgrouplayer.c                          |    4 +-
 app/core/gimpgrouplayerundo.c                      |    6 +-
 app/core/gimpguideundo.c                           |    2 +-
 app/core/gimpimage-arrange.c                       |    5 +-
 app/core/gimpimage-convert-indexed.c               |   12 +-
 app/core/gimpimage-merge.c                         |   33 +-
 app/core/gimpimage-rotate.c                        |   17 +-
 app/core/gimpimage.c                               |    6 +-
 app/core/gimpimageundo.c                           |    8 +-
 app/core/gimpitem.c                                |    4 +-
 app/core/gimpitempropundo.c                        |    6 +-
 app/core/gimpitemstack.c                           |    4 +-
 app/core/gimpitemtree.c                            |    8 +-
 app/core/gimpitemundo.c                            |    2 +-
 app/core/gimplayermaskpropundo.c                   |    6 +-
 app/core/gimplayermaskundo.c                       |    4 +-
 app/core/gimplayerpropundo.c                       |    6 +-
 app/core/gimplayerstack.c                          |    6 +-
 app/core/gimplayerundo.c                           |    2 +-
 app/core/gimpmaskundo.c                            |    2 +-
 app/core/gimppatternclipboard.c                    |    2 +-
 app/core/gimppdbprogress.c                         |    4 +-
 app/core/gimpsamplepointundo.c                     |    2 +-
 app/core/gimptoolpreset.c                          |    2 +-
 app/core/gimpundo.c                                |    2 +-
 app/dialogs/about-dialog.c                         |    2 -
 app/dialogs/dialogs-constructors.c                 |   10 +
 app/dialogs/dialogs-constructors.h                 |    4 +
 app/dialogs/dialogs.c                              |    2 +
 app/dialogs/preferences-dialog.c                   |  123 +-
 app/display/gimpcanvasboundary.c                   |   67 +-
 app/display/gimpcanvashandle.c                     |    3 +
 app/display/gimpcanvastransformguides.c            |  246 +-
 app/display/gimpcanvastransformguides.h            |    6 +-
 app/display/gimpcanvastransformpreview.c           | 1110 +--
 app/display/gimpdisplayshell-callbacks.c           |   11 +
 app/display/gimpdisplayshell-render.c              |    1 -
 app/display/gimpdisplayshell.c                     |    4 +-
 app/display/gimpstatusbar.c                        |    2 +-
 app/display/gimptoolcompass.c                      |    2 +-
 app/display/gimptoolhandlegrid.c                   |  265 +-
 app/display/gimptooltransformgrid.c                |   35 +-
 app/display/gimptoolwidget.c                       |    5 +-
 app/display/gimptoolwidget.h                       |    3 +-
 app/errors.c                                       |  317 +-
 app/errors.h                                       |    3 +-
 app/gegl/gimp-gegl-apply-operation.c               |   11 +-
 app/gegl/gimp-gegl-apply-operation.h               |    1 -
 app/gimp-version.c                                 |  217 +
 app/{version.h => gimp-version.h}                  |   15 +-
 app/gui/gui-message.c                              |  118 +-
 app/gui/gui-message.h                              |    3 +-
 app/gui/splash.c                                   |  208 +-
 app/main.c                                         |   50 +-
 app/meson.build                                    |   24 +-
 app/operations/gimpoperationbrightnesscontrast.c   |    4 +-
 app/operations/gimpoperationcurves.c               |    4 +-
 app/operations/gimpoperationlevels.c               |    4 +-
 app/operations/gimpoperationthreshold.c            |    2 +-
 app/pdb/message-cmds.c                             |    2 +-
 app/plug-in/gimppluginmanager-call.c               |    6 +-
 app/plug-in/gimppluginmanager.c                    |    6 +-
 app/sanity.c                                       |    4 +-
 app/signals.c                                      |  106 +-
 app/signals.h                                      |    2 +-
 app/tools/Makefile.am                              |    2 +
 app/tools/gimpbrightnesscontrasttool.c             |    2 +-
 app/tools/gimpcurvestool.c                         |    9 +-
 app/tools/gimpgenerictransformtool.c               |  187 +
 app/tools/gimpgenerictransformtool.h               |   60 +
 app/tools/gimphandletransformtool.c                |  191 +-
 app/tools/gimphandletransformtool.h                |   10 +-
 app/tools/gimplevelstool.c                         |    9 +-
 app/tools/gimpmeasuretool.c                        |   19 +-
 app/tools/gimppainttool.c                          |    6 +-
 app/tools/gimpperspectivetool.c                    |  133 +-
 app/tools/gimpperspectivetool.h                    |    8 +-
 app/tools/gimpscaletool.c                          |    4 +
 app/tools/gimpthresholdtool.c                      |    2 +-
 app/tools/gimptool.c                               |   10 +-
 app/tools/gimptransformoptions.c                   |  126 +-
 app/tools/gimptransformtool.c                      |   36 +-
 app/tools/gimptransformtool.h                      |    1 +
 app/tools/gimpunifiedtransformtool.c               |  132 +-
 app/tools/gimpunifiedtransformtool.h               |    8 +-
 app/tools/meson.build                              |    1 +
 app/tools/tools-types.h                            |    1 +
 app/version.c                                      |  150 -
 app/widgets/Makefile.am                            |    2 +
 app/widgets/gimpaction-history.c                   |   13 +-
 app/widgets/gimpaction.c                           |   14 +
 app/widgets/gimpcontainereditor.c                  |    7 +-
 app/widgets/gimpcriticaldialog.c                   |  477 +
 app/widgets/gimpcriticaldialog.h                   |   69 +
 app/widgets/gimpdashboard.c                        |  407 +-
 app/widgets/gimphelp-ids.h                         |    1 +
 app/widgets/gimpmeter.c                            |  252 +-
 app/widgets/gimpmeter.h                            |  134 +-
 app/widgets/meson.build                            |    1 +
 app/widgets/widgets-types.h                        |    1 +
 build/flatpak/org.gimp.GIMP-dev.json               |    1 -
 build/flatpak/org.gimp.GIMP-nightly.json           |    1 -
 build/windows/installer/gimp3264.iss               |    2 +
 build/windows/installer/lang/Makefile.am           |    2 +
 configure.ac                                       |   22 +-
 desktop/.gitignore                                 |    3 +-
 desktop/Makefile.am                                |    4 +-
 desktop/meson.build                                |   11 +-
 ...data.xml.in => org.gimp.GIMP.appdata.xml.in.in} |   47 +-
 desktop/test-appdata.sh                            |    6 +-
 devel-docs/release-howto.txt                       |   10 +-
 devel-docs/release-stats.sh                        |  130 +
 libgimp/gimp.c                                     |   72 +
 libgimp/gimp.def                                   |    4 +
 libgimp/gimp.h                                     |    7 +
 libgimp/gimpimagemetadata.c                        |   22 +-
 libgimpbase/gimpdatafiles.c                        |    2 +-
 libgimpbase/gimpmetadata.c                         |    7 +-
 libgimpbase/gimpprotocol.c                         |   12 +-
 libgimpbase/gimpprotocol.h                         |    8 +-
 libgimpmath/gimpmath.def                           |    1 -
 libgimpmath/gimpmatrix.c                           |   36 -
 libgimpmath/gimpmatrix.h                           |    6 -
 libgimpwidgets/gimpcolorscales.c                   |  230 +-
 libgimpwidgets/gimpcolorscales.h                   |    4 -
 libgimpwidgets/gimpcolorselect.c                   |  185 +-
 libgimpwidgets/gimpcolorselector.c                 |  123 +-
 libgimpwidgets/gimpcolorselector.h                 |   15 +-
 libgimpwidgets/gimpwidgets.def                     |    5 +-
 libgimpwidgets/gimpwidgetsenums.c                  |   32 +
 libgimpwidgets/gimpwidgetsenums.h                  |   19 +
 menus/image-menu.xml.in                            |    8 +-
 meson.build                                        |   54 +-
 pdb/README                                         |    4 +-
 pdb/groups/message.pdb                             |    2 +-
 plug-ins/common/file-compressor.c                  |    5 +-
 plug-ins/common/file-gegl.c                        |   14 +
 plug-ins/common/file-gih.c                         |    6 +-
 plug-ins/common/file-png.c                         |   42 +-
 plug-ins/common/file-svg.c                         |    2 +-
 plug-ins/file-jpeg/jpeg-save.c                     |   23 +-
 plug-ins/file-jpeg/jpeg-save.h                     |    1 +
 plug-ins/file-jpeg/jpeg.c                          |    9 +-
 plug-ins/file-psd/psd-save.c                       |    6 +
 plug-ins/file-tiff/file-tiff.c                     |    8 +-
 plug-ins/file-webp/file-webp-save.c                |   26 +-
 plug-ins/file-webp/file-webp-save.h                |   16 +-
 plug-ins/file-webp/file-webp.c                     |   28 +-
 plug-ins/metadata/metadata-editor.c                |  296 +-
 plug-ins/pygimp/plug-ins/python-console.py         |    9 +
 plug-ins/screenshot/screenshot-kwin.c              |    9 +-
 po-libgimp/eu.po                                   | 1904 ++-
 po-libgimp/fr.po                                   | 2367 +++--
 po-libgimp/pl.po                                   |  117 +-
 po-plug-ins/ca.po                                  |  922 +-
 po-plug-ins/eu.po                                  | 7979 +++++------
 po-plug-ins/fr.po                                  | 4995 +++++---
 po-plug-ins/pl.po                                  |  117 +-
 po-plug-ins/sv.po                                  |  110 +-
 po-python/eu.po                                    |  154 +-
 po-script-fu/eu.po                                 | 2524 ++--
 po-windows-installer/LINGUAS                       |    2 +
 po-windows-installer/POTFILES.skip                 |    1 +
 po-windows-installer/ca.po                         |    6 +-
 po-windows-installer/el.po                         |  399 +
 po-windows-installer/eu.po                         |  402 +
 po-windows-installer/tr.po                         |  123 +-
 po/POTFILES.in                                     |   11 +-
 po/POTFILES.skip                                   |    1 +
 po/ca.po                                           | 4357 ++++---
 po/de.po                                           | 5282 +++++---
 po/es.po                                           | 2778 +++--
 po/eu.po                                           | 1810 ++--
 po/fr.po                                           |14858 +++++++++++++-------
 po/pl.po                                           | 2105 ++--
 po/ru.po                                           | 3040 +++--
 themes/Dark/gtkrc                                  |    8 +
 themes/Darker/gtkrc                                |    8 +
 themes/Gray/gtkrc                                  |    8 +
 themes/Light/gtkrc                                 |    8 +
 themes/Lighter/gtkrc                               |    8 +
 tools/Makefile.am                                  |   34 +-
 tools/gimp-debug-resume.c                          |   10 +-
 tools/gimpdebug.c                                  |  137 +
 tools/meson.build                                  |   26 +-
 225 files changed, 39943 insertions(+), 25326 deletions(-)
---
diff --cc .gitignore
index f636766,5273caf..0bbc1bd
--- a/.gitignore
+++ b/.gitignore
@@@ -1,5 -1,52 +1,57 @@@
+ *.la
+ *.lo
+ *.o
+ *~
+ /*.config
+ /*.creator
+ /*.creator.user
+ /*.files
+ /*.includes
+ /ChangeLog
+ /INSTALL
+ /Makefile
+ /Makefile.in
+ /aclocal.m4
+ /authors.md
+ /autom4te.cache
+ /compile
+ /config.cache
+ /config.guess
+ /config.h
+ /config.h.in
+ /config.log
+ /config.status
+ /config.status.lineno
+ /config.sub
+ /configure
+ /cscope.files
+ /cscope.out
+ /depcomp
+ /gimp-2.0.pc
+ /gimp-zip
+ /gimpthumb-2.0.pc
+ /gimpui-2.0.pc
+ /git-version.h
+ /gtk-doc.make
+ /install-sh
+ /intltool-extract
+ /intltool-extract.in
+ /intltool-merge
+ /intltool-merge.in
+ /intltool-modules
+ /intltool-update
+ /intltool-update.in
+ /libtool
+ /ltmain.sh
+ /missing
+ /mkinstalldirs
+ /py-compile
+ /stamp-h
+ /stamp-h.in
+ /stamp-h1
+ /test-driver
 +/build/archlinux/build
 +/build/archlinux/gimp*
 +/build/archlinux/src
 +/build/archlinux/pkg
 +/build_m
diff --cc app/meson.build
index 9448045,0000000..dd78045
mode 100644,000000..100644
--- a/app/meson.build
+++ b/app/meson.build
@@@ -1,181 -1,0 +1,159 @@@
 +rootAppInclude = include_directories('.')
 +
- gitversion_h1 = vcs_tag(
-   input : 'git-version.h.in',
-   output: 'git-version.h.in.1',
-   command: [ 'git', 'describe', '--always', ],
-   replace_string: '@GIMP_GIT_VERSION@',
-   fallback: '',
- )
- gitversion_h2 = vcs_tag(
-   input : gitversion_h1,
-   output: 'git-version.h.in.2',
-   command: [ 'git', 'rev-parse', '--short', 'HEAD', ],
-   replace_string: '@GIMP_GIT_VERSION_ABBREV@',
-   fallback: '',
- )
- gitversion_h = vcs_tag(
-   input : gitversion_h2,
-   output: 'git-version.h',
-   command: [ 'git', 'log', '-n1', '--date=format:%Y', '--pretty=%cd', ],
-   replace_string: '@GIMP_GIT_LAST_COMMIT_YEAR@',
-   fallback: '',
- )
- 
 +app_mkenums_custom_target_command = [
 +  gimp_mkenums,
 +  '--fhead','#include "config.h"\n'
 +          + '#include <gio/gio.h>\n'
 +          + '#include "libgimpbase/gimpbase.h"\n'
 +          + '#include "core/core-enums.h"\n'
 +          + '#include "@INPUT@"\n'
 +          + '#include "gimp-intl.h"\n',
 +  gimp_mkenums_custom_target_commonargs,
 +]
 +
 +subdir('actions')
 +subdir('core')
 +subdir('dialogs')
 +subdir('display')
 +subdir('file')
 +subdir('gegl')
 +subdir('gui')
 +subdir('menus')
 +subdir('operations')
 +subdir('paint')
 +subdir('pdb')
 +subdir('plug-in')
 +subdir('propgui')
 +subdir('text')
 +subdir('tools')
 +subdir('vectors')
 +subdir('widgets')
 +subdir('xcf')
 +
 +
 +app_debug_files = files(
 +  'gimp-debug.c',
 +  'gimp-log.c',
 +)
 +
 +# Top-level library
 +app_cflags = [
 +  '-DG_LOG_DOMAIN="Gimp"',
 +  '-DGIMP_APP_GLUE_COMPILATION',
 +]
 +
 +libapp_sources = [
 +  'app.c',
 +  'errors.c',
 +  'gimp-debug.c',
 +  'gimp-log.c',
++  'gimp-version.c',
 +  'language.c',
 +  'sanity.c',
 +  'signals.c',
 +  'tests.c',
 +  'unique.c',
-   'version.c',
 +  gitversion_h,
 +  gimpdbusservice_gen,
 +]
 +
 +libapp = static_library('app',
 +  libapp_sources,
 +  include_directories: [ rootInclude, rootAppInclude, configInclude, ],
 +  c_args: app_cflags,
 +  dependencies: [
 +    gegl, gdk_pixbuf, gtk2,
 +  ],
 +)
 +
 +
 +# Those subdirs need to link againts the first ones
 +subdir('config')
 +subdir('tests')
 +
 +
 +
 +app_links = [
 +  libappconfig,
 +  libappcore,
 +  libappfile,
 +  libappgegl,
 +  libappinternalprocs,
 +  libapplayermodes,
 +  libapplayermodeslegacy,
 +  libappoperations,
 +  libapppaint,
 +  libapppdb,
 +  libappplugin,
 +  libapptext,
 +  libappvectors,
 +  libappxcf,
 +  libgimpbase,
 +  libgimpcolor,
 +  libgimpconfig,
 +  libgimpmath,
 +  libgimpmodule,
 +  libgimpthumb,
 +]
 +
 +app_gui_links = [
 +  libappactions,
 +  libappdialogs,
 +  libappdisplay,
 +  libappgui,
 +  libappmenus,
 +  libapppropgui,
 +  libapptools,
 +  libappwidgets,
 +  libgimpwidgets,
 +]
 +
 +app_deps = [
 +  gio, gtk2, pangocairo, pangoft2, gegl, lcms, gexiv2,
 +]
 +
 +# Executables
 +
 +rc_name = 'gimp-'+ app_version
 +rc_file = platform_win32 ? windows.compile_resources(
 +  gimp_app_rc,
 +  args: [
 +    '--define', 'ORIGINALFILENAME_STR="@0@"'.format(rc_name+'.exe'),
 +    '--define', 'INTERNALNAME_STR="@0@"'    .format(rc_name),
 +    '--define', 'TOP_SRCDIR="@0@"'          .format(meson.source_root()),
 +  ],
 +  include_directories: [
 +    appInclude,
 +  ],
 +) : []
 +
 +gimpconsole_exe = executable('gimp-console-'+app_version,
 +  libapp_sources + [ 'main.c', rc_file, ],
 +  c_args: app_cflags + [ '-DGIMP_CONSOLE_COMPILATION', ],
 +  include_directories: [ rootInclude, ],
 +  dependencies: app_deps,
 +  link_with: app_links,
 +  install: true,
 +)
 +
 +rc_name = 'gimp-console-'+ app_version
 +rc_file = platform_win32 ? windows.compile_resources(
 +  gimp_app_rc,
 +  args: [
 +    '--define', 'ORIGINALFILENAME_STR="@0@"'.format(rc_name+'.exe'),
 +    '--define', 'INTERNALNAME_STR="@0@"'    .format(rc_name),
 +    '--define', 'TOP_SRCDIR="@0@"'          .format(meson.source_root()),
 +  ],
 +  include_directories: [
 +    appInclude,
 +  ],
 +) : []
 +
 +gimpmain_exe = executable('gimp-'+app_version,
 +  libapp_sources + [ 'main.c', rc_file, ],
 +  c_args: app_cflags + [ ],
 +  include_directories: [ rootInclude, ],
 +  dependencies: app_deps,
 +  link_with: app_links + app_gui_links,
 +  install: true,
 +)
diff --cc app/tools/meson.build
index 5fb21f8,0000000..5e5110b
mode 100644,000000..100644
--- a/app/tools/meson.build
+++ b/app/tools/meson.build
@@@ -1,124 -1,0 +1,125 @@@
 +
 +apptoolsenums = custom_target('tools-enums.c',
 +  input : [ 'tools-enums.h', ],
 +  output: [ 'tools-enums.c', ],
 +  command: app_mkenums_custom_target_command,
 +  capture: true,
 +)
 +
 +libapptools_sources = [
 +  'gimp-tools.c',
 +  'gimpairbrushtool.c',
 +  'gimpalignoptions.c',
 +  'gimpaligntool.c',
 +  'gimpblendoptions.c',
 +  'gimpblendtool-editor.c',
 +  'gimpblendtool.c',
 +  'gimpbrightnesscontrasttool.c',
 +  'gimpbrushtool.c',
 +  'gimpbucketfilloptions.c',
 +  'gimpbucketfilltool.c',
 +  'gimpbycolorselecttool.c',
 +  'gimpcageoptions.c',
 +  'gimpcagetool.c',
 +  'gimpcloneoptions-gui.c',
 +  'gimpclonetool.c',
 +  'gimpcoloroptions.c',
 +  'gimpcolorpickeroptions.c',
 +  'gimpcolorpickertool.c',
 +  'gimpcolortool.c',
 +  'gimpconvolvetool.c',
 +  'gimpcropoptions.c',
 +  'gimpcroptool.c',
 +  'gimpcurvestool.c',
 +  'gimpdodgeburntool.c',
 +  'gimpdrawtool.c',
 +  'gimpeditselectiontool.c',
 +  'gimpellipseselecttool.c',
 +  'gimperasertool.c',
 +  'gimpfilteroptions.c',
 +  'gimpfiltertool-settings.c',
 +  'gimpfiltertool-widgets.c',
 +  'gimpfiltertool.c',
 +  'gimpflipoptions.c',
 +  'gimpfliptool.c',
 +  'gimpforegroundselectoptions.c',
 +  'gimpforegroundselecttool.c',
 +  'gimpforegroundselecttoolundo.c',
 +  'gimpfreeselecttool.c',
 +  'gimpfuzzyselecttool.c',
 +  'gimpgegltool.c',
++  'gimpgenerictransformtool.c',
 +  'gimpguidetool.c',
 +  'gimphandletransformoptions.c',
 +  'gimphandletransformtool.c',
 +  'gimphealtool.c',
 +  'gimphistogramoptions.c',
 +  'gimpinkoptions-gui.c',
 +  'gimpinktool.c',
 +  'gimpiscissorsoptions.c',
 +  'gimpiscissorstool.c',
 +  'gimplevelstool.c',
 +  'gimpmagnifyoptions.c',
 +  'gimpmagnifytool.c',
 +  'gimpmeasureoptions.c',
 +  'gimpmeasuretool.c',
 +  'gimpmoveoptions.c',
 +  'gimpmovetool.c',
 +  'gimpmybrushoptions-gui.c',
 +  'gimpmybrushtool.c',
 +  'gimpnpointdeformationoptions.c',
 +  'gimpnpointdeformationtool.c',
 +  'gimpoperationtool.c',
 +  'gimppaintbrushtool.c',
 +  'gimppaintoptions-gui.c',
 +  'gimppainttool.c',
 +  'gimppenciltool.c',
 +  'gimpperspectiveclonetool.c',
 +  'gimpperspectivetool.c',
 +  'gimprectangleoptions.c',
 +  'gimprectangleselectoptions.c',
 +  'gimprectangleselecttool.c',
 +  'gimpregionselectoptions.c',
 +  'gimpregionselecttool.c',
 +  'gimprotatetool.c',
 +  'gimpsamplepointtool.c',
 +  'gimpscaletool.c',
 +  'gimpseamlesscloneoptions.c',
 +  'gimpseamlessclonetool.c',
 +  'gimpselectionoptions.c',
 +  'gimpselectiontool.c',
 +  'gimpsheartool.c',
 +  'gimpsmudgetool.c',
 +  'gimpsourcetool.c',
 +  'gimptextoptions.c',
 +  'gimptexttool-editor.c',
 +  'gimptexttool.c',
 +  'gimpthresholdtool.c',
 +  'gimptilehandleriscissors.c',
 +  'gimptool-progress.c',
 +  'gimptool.c',
 +  'gimptoolcontrol.c',
 +  'gimptooloptions-gui.c',
 +  'gimptransformoptions.c',
 +  'gimptransformtool.c',
 +  'gimptransformtoolundo.c',
 +  'gimpunifiedtransformtool.c',
 +  'gimpvectoroptions.c',
 +  'gimpvectortool.c',
 +  'gimpwarpoptions.c',
 +  'gimpwarptool.c',
 +  'tool_manager.c',
 +  apptoolsenums,
 +  appcoremarshal,
 +]
 +
 +libapptools = static_library('apptools',
 +  libapptools_sources,
 +  include_directories: [ rootInclude, rootAppInclude, ],
 +  c_args: [
 +    '-DG_LOG_DOMAIN="Gimp-Tools"',
 +  ],
 +  dependencies: [
 +    gegl, gtk2,
 +  ],
 +)
diff --cc app/widgets/meson.build
index 3a18395,0000000..1a910d6
mode 100644,000000..100644
--- a/app/widgets/meson.build
+++ b/app/widgets/meson.build
@@@ -1,238 -1,0 +1,239 @@@
 +
 +appwidgetsenums = custom_target('widgets-enums.c',
 +  input : [ 'widgets-enums.h', ],
 +  output: [ 'widgets-enums.c', ],
 +  command: app_mkenums_custom_target_command,
 +  capture: true,
 +)
 +
 +
 +libappwidgets_sources = [
 +  'gimpaction-history.c',
 +  'gimpaction.c',
 +  'gimpactioneditor.c',
 +  'gimpactionfactory.c',
 +  'gimpactiongroup.c',
 +  'gimpactionview.c',
 +  'gimpblobeditor.c',
 +  'gimpbrusheditor.c',
 +  'gimpbrushfactoryview.c',
 +  'gimpbrushselect.c',
 +  'gimpbuffersourcebox.c',
 +  'gimpbufferview.c',
 +  'gimpcairo-wilber.c',
 +  'gimpcellrendererbutton.c',
 +  'gimpcellrendererdashes.c',
 +  'gimpcellrendererviewable.c',
 +  'gimpchanneltreeview.c',
 +  'gimpcircle.c',
 +  'gimpclipboard.c',
 +  'gimpcolorbar.c',
 +  'gimpcolordialog.c',
 +  'gimpcolordisplayeditor.c',
 +  'gimpcoloreditor.c',
 +  'gimpcolorframe.c',
 +  'gimpcolorhistory.c',
 +  'gimpcolormapeditor.c',
 +  'gimpcolorpanel.c',
 +  'gimpcolorselectorpalette.c',
 +  'gimpcombotagentry.c',
 +  'gimpcomponenteditor.c',
 +  'gimpcontainerbox.c',
 +  'gimpcontainercombobox.c',
 +  'gimpcontainereditor.c',
 +  'gimpcontainerentry.c',
 +  'gimpcontainergridview.c',
 +  'gimpcontainericonview.c',
 +  'gimpcontainerpopup.c',
 +  'gimpcontainertreestore.c',
 +  'gimpcontainertreeview-dnd.c',
 +  'gimpcontainertreeview.c',
 +  'gimpcontainerview-utils.c',
 +  'gimpcontainerview.c',
 +  'gimpcontrollereditor.c',
 +  'gimpcontrollerinfo.c',
 +  'gimpcontrollerkeyboard.c',
 +  'gimpcontrollerlist.c',
 +  'gimpcontrollermouse.c',
 +  'gimpcontrollers.c',
 +  'gimpcontrollerwheel.c',
++  'gimpcriticaldialog.c',
 +  'gimpcursor.c',
 +  'gimpcurveview.c',
 +  'gimpdashboard.c',
 +  'gimpdasheditor.c',
 +  'gimpdataeditor.c',
 +  'gimpdatafactoryview.c',
 +  'gimpdeviceeditor.c',
 +  'gimpdeviceinfo-coords.c',
 +  'gimpdeviceinfo.c',
 +  'gimpdeviceinfoeditor.c',
 +  'gimpdevicemanager.c',
 +  'gimpdevices.c',
 +  'gimpdevicestatus.c',
 +  'gimpdial.c',
 +  'gimpdialogfactory.c',
 +  'gimpdnd-xds.c',
 +  'gimpdnd.c',
 +  'gimpdock.c',
 +  'gimpdockable.c',
 +  'gimpdockbook.c',
 +  'gimpdockcolumns.c',
 +  'gimpdockcontainer.c',
 +  'gimpdocked.c',
 +  'gimpdockwindow.c',
 +  'gimpdocumentview.c',
 +  'gimpdrawabletreeview.c',
 +  'gimpdynamicseditor.c',
 +  'gimpdynamicsfactoryview.c',
 +  'gimpdynamicsoutputeditor.c',
 +  'gimpeditor.c',
 +  'gimpenumaction.c',
 +  'gimperrorconsole.c',
 +  'gimperrordialog.c',
 +  'gimpexportdialog.c',
 +  'gimpfgbgeditor.c',
 +  'gimpfgbgview.c',
 +  'gimpfiledialog.c',
 +  'gimpfileprocview.c',
 +  'gimpfilleditor.c',
 +  'gimpfontselect.c',
 +  'gimpfontview.c',
 +  'gimpgradienteditor.c',
 +  'gimpgradientselect.c',
 +  'gimpgrideditor.c',
 +  'gimphandlebar.c',
 +  'gimphelp.c',
 +  'gimphistogrambox.c',
 +  'gimphistogrameditor.c',
 +  'gimphistogramview.c',
 +  'gimpiconpicker.c',
 +  'gimpiconsizescale.c',
 +  'gimpimagecommenteditor.c',
 +  'gimpimageeditor.c',
 +  'gimpimageparasiteview.c',
 +  'gimpimageprofileview.c',
 +  'gimpimagepropview.c',
 +  'gimpimageview.c',
 +  'gimpitemtreeview.c',
 +  'gimplanguagecombobox.c',
 +  'gimplanguageentry.c',
 +  'gimplanguagestore-parser.c',
 +  'gimplanguagestore.c',
 +  'gimplayermodebox.c',
 +  'gimplayermodecombobox.c',
 +  'gimplayertreeview.c',
 +  'gimpmenudock.c',
 +  'gimpmenufactory.c',
 +  'gimpmessagebox.c',
 +  'gimpmessagedialog.c',
 +  'gimpmeter.c',
 +  'gimpnavigationview.c',
 +  'gimpopendialog.c',
 +  'gimpoverlaybox.c',
 +  'gimpoverlaychild.c',
 +  'gimpoverlaydialog.c',
 +  'gimpoverlayframe.c',
 +  'gimppaletteeditor.c',
 +  'gimppaletteselect.c',
 +  'gimppaletteview.c',
 +  'gimppanedbox.c',
 +  'gimppatternfactoryview.c',
 +  'gimppatternselect.c',
 +  'gimppdbdialog.c',
 +  'gimppickablebutton.c',
 +  'gimppickablepopup.c',
 +  'gimppixbuf.c',
 +  'gimppluginview.c',
 +  'gimppolar.c',
 +  'gimppopup.c',
 +  'gimpprefsbox.c',
 +  'gimpprocedureaction.c',
 +  'gimpprogressbox.c',
 +  'gimpprogressdialog.c',
 +  'gimppropwidgets.c',
 +  'gimpradioaction.c',
 +  'gimprender.c',
 +  'gimpsamplepointeditor.c',
 +  'gimpsavedialog.c',
 +  'gimpscalebutton.c',
 +  'gimpsearchpopup.c',
 +  'gimpselectiondata.c',
 +  'gimpselectioneditor.c',
 +  'gimpsessioninfo-aux.c',
 +  'gimpsessioninfo-book.c',
 +  'gimpsessioninfo-dock.c',
 +  'gimpsessioninfo-dockable.c',
 +  'gimpsessioninfo.c',
 +  'gimpsessionmanaged.c',
 +  'gimpsettingsbox.c',
 +  'gimpsettingseditor.c',
 +  'gimpsizebox.c',
 +  'gimpspinscale.c',
 +  'gimpstringaction.c',
 +  'gimpstrokeeditor.c',
 +  'gimpsymmetryeditor.c',
 +  'gimptagentry.c',
 +  'gimptagpopup.c',
 +  'gimptemplateeditor.c',
 +  'gimptemplateview.c',
 +  'gimptextbuffer-serialize.c',
 +  'gimptextbuffer.c',
 +  'gimptexteditor.c',
 +  'gimptextproxy.c',
 +  'gimptextstyleeditor.c',
 +  'gimptexttag.c',
 +  'gimpthumbbox.c',
 +  'gimptoggleaction.c',
 +  'gimptoolbox-color-area.c',
 +  'gimptoolbox-dnd.c',
 +  'gimptoolbox-image-area.c',
 +  'gimptoolbox-indicator-area.c',
 +  'gimptoolbox.c',
 +  'gimptooleditor.c',
 +  'gimptooloptionseditor.c',
 +  'gimptoolpalette.c',
 +  'gimptoolpreseteditor.c',
 +  'gimptoolpresetfactoryview.c',
 +  'gimptranslationstore.c',
 +  'gimpuimanager.c',
 +  'gimpundoeditor.c',
 +  'gimpvectorstreeview.c',
 +  'gimpview-popup.c',
 +  'gimpview.c',
 +  'gimpviewablebox.c',
 +  'gimpviewablebutton.c',
 +  'gimpviewabledialog.c',
 +  'gimpviewrenderer-frame.c',
 +  'gimpviewrenderer-utils.c',
 +  'gimpviewrenderer.c',
 +  'gimpviewrendererbrush.c',
 +  'gimpviewrendererbuffer.c',
 +  'gimpviewrendererdrawable.c',
 +  'gimpviewrenderergradient.c',
 +  'gimpviewrendererimage.c',
 +  'gimpviewrendererimagefile.c',
 +  'gimpviewrendererlayer.c',
 +  'gimpviewrendererpalette.c',
 +  'gimpviewrenderervectors.c',
 +  'gimpwidgets-constructors.c',
 +  'gimpwidgets-utils.c',
 +  'gimpwindow.c',
 +  'gimpwindowstrategy.c',
 +  'gtkhwrapbox.c',
 +  'gtkwrapbox.c',
 +  appwidgetsenums,
 +  appcoremarshal,
 +]
 +
 +
 +libappwidgets = static_library('appwidgets',
 +  libappwidgets_sources,
 +  include_directories: [ rootInclude, rootAppInclude, ],
 +  c_args: [
 +    '-DG_LOG_DOMAIN="Gimp-Widgets"',
 +  ],
 +  dependencies: [
 +    gegl, gtk2,
 +  ],
 +)
diff --cc desktop/meson.build
index 5e3f6a5,0000000..96393ea
mode 100644,000000..100644
--- a/desktop/meson.build
+++ b/desktop/meson.build
@@@ -1,92 -1,0 +1,99 @@@
 +sizes = [
 +  '16',
 +  '22',
 +  '24',
 +  '32',
 +  '48',
 +  '64',
 +  '256',
 +]
 +
 +foreach size : sizes
 +  sizedir = size+'x'+size
 +  install_data(join_paths(sizedir, 'gimp.png'),
 +    install_dir: join_paths(
 +      get_option('datadir'), 'icons', 'hicolor', sizedir, 'apps'
 +    )
 +  )
 +endforeach
 +
 +desktopfilename = 'gimp.desktop'
 +
 +desktop_conf = configuration_data()
 +desktop_conf.set('GIMP_APP_VERSION', app_version)
 +desktop_conf.set('GIMP_COMMAND', gimp_command)
 +desktop_conf.set('GIMP_VERSION', gimp_version)
 +desktop_conf.set('MIME_TYPES', ';'.join(MIMEtypes))
 +
 +desktopfilein = configure_file(
 +  input : desktopfilename+'.in.in',
 +  output: desktopfilename+'.in',
 +  configuration: desktop_conf,
 +)
 +
 +desktopfile = custom_target(desktopfilename,
 +  input : [ desktopfilein, ],
 +  output: [ desktopfilename, ],
 +  command: [
 +    intltool_merge,
 +    po_dir,
 +    '@INPUT@',
 +    '@OUTPUT@',
 +    '--desktop-style',
 +    '--utf8',
 +    '--cache='+join_paths('@OUTDIR@', 'intltool-merge-cache'),
 +  ],
 +  install: true,
 +  install_dir: join_paths(get_option('datadir'), 'applications'),
 +)
 +
- appdatafilename = 'gimp.appdata.xml'
++appdatafilename = 'org.gimp.GIMP.appdata.xml'
 +appdatafile = custom_target(appdatafilename,
-   input : [ appdatafilename+'.in', ],
++  input : [ appdatafilename+'.in.in', ],
 +  output: [ appdatafilename, ],
 +  command: [
 +    intltool_merge,
 +    po_dir,
 +    '@INPUT@',
 +    '@OUTPUT@',
 +    '--xml-style',
 +    '--utf8',
 +    '--cache='+join_paths('@OUTDIR@', 'intltool-merge-cache'),
 +  ],
 +  install: true,
 +  install_dir: join_paths(get_option('datadir'), 'appdata'),
 +)
 +
 +appdatafilename = 'gimp-data-extras.metainfo.xml'
 +appdatafile = custom_target(appdatafilename,
 +  input : [ appdatafilename+'.in', ],
 +  output: [ appdatafilename, ],
 +  command: [
 +    intltool_merge,
 +    po_dir,
 +    '@INPUT@',
 +    '@OUTPUT@',
 +    '--xml-style',
 +    '--utf8',
 +    '--cache='+join_paths('@OUTDIR@', 'intltool-merge-cache'),
 +  ],
 +  install: true,
 +  install_dir: join_paths(get_option('datadir'), 'appdata'),
 +)
 +
 +custom_target('validate-desktop',
 +  input : [ desktopfile, ],
 +  output: [ 'validate-desktop' ],
 +  command: [
 +    desktop_validate, '@INPUT@',
 +  ],
 +  build_always: false,
 +  build_by_default: false,
 +)
++
++test('test-appdata',
++  find_program('test-appdata.sh'),
++  env: [
++    'GIMP_TESTING_ABS_TOP_BUILDDIR='+ meson.build_root(),
++  ],
++)
diff --cc meson.build
index 9c2c424,0000000..fd62442
mode 100644,000000..100644
--- a/meson.build
+++ b/meson.build
@@@ -1,1071 -1,0 +1,1099 @@@
 +# Meson build file
 +
 +# http://bugzilla.gnome.org/enter_bug.cgi?product=GIMP
 +project('gimp', ['c', 'cpp'], version: '2.9.9',
 +  meson_version: '>=0.44.0',
 +  default_options: [
 +    'sysconfdir=/etc',
 +    'localstatedir=/var',
 +    'sharedstatedir=/var/lib'
 +  ],
 +)
 +
 +conf = configuration_data()
 +
 +pkgconfig = import('pkgconfig')
 +i18n      = import('i18n')
 +gnome     = import('gnome')
 +pythonmod = import('python3')
 +
 +cc        = meson.get_compiler('c')
 +cxx       = meson.get_compiler('cpp')
 +prefix    = get_option('prefix')
 +buildtype = get_option('buildtype')
 +
 +profiling = get_option('profiling')
 +ansi      = get_option('ansi')
 +
 +################################################################################
 +# Project info
 +
 +prettyname = 'GIMP'
 +full_name  = 'GNU Image Manipulation Program'
 +
 +# Making releases on the stable branch:
 +#   micro_version += 1;
 +#   interface_age += 1;
 +#
 +# For a description of libtool version variables, see:
 +# devel-docs/libtool-instructions.txt
 +
 +version = meson.project_version().split('.')
 +major_version = version[0].to_int()
 +minor_version = version[1].to_int()
 +micro_version = version[2].to_int()
 +interface_age = 0
 +
 +api_version   = '@0@.0'  .format(major_version)
 +app_version   = '@0@.@1@'.format(major_version, minor_version)
 +user_version  = '@0@.@1@'.format(major_version, minor_version)
 +gimp_version  = meson.project_version()
 +
 +gimp_command  = 'gimp-' + app_version
 +gimp_api_name = 'gimp-' + api_version
 +package_string= prettyname + ' ' + gimp_version
 +
 +
 +# TODO cleanup all this versions mess
 +binary_age = 100 * minor_version + micro_version
 +
 +lt_current = 100 * minor_version + micro_version - interface_age
 +lt_revision = interface_age
 +lt_age = binary_age - interface_age
 +lt_version_info = '@0@:@1@:@2@'.format(lt_current, lt_revision, lt_age)
 +lt_current_minus_age = lt_current - lt_age
 +
 +so_version = '@0@.@1@.@2@'.format(lt_revision, lt_current, lt_current_minus_age)
 +
 +
 +stable = (minor_version % 2 == 0)
 +conf.set10('GIMP_UNSTABLE', not stable)
 +
 +versionconfig = configuration_data()
 +versionconfig.set('GIMP_FULL_NAME',     full_name)
 +versionconfig.set('GIMP_MAJOR_VERSION', major_version)
 +versionconfig.set('GIMP_MINOR_VERSION', minor_version)
 +versionconfig.set('GIMP_MICRO_VERSION', micro_version)
 +versionconfig.set('GIMP_VERSION',       gimp_version)
 +versionconfig.set('GIMP_API_VERSION',   api_version)
 +
 +################################################################################
 +# Host system detection
 +
 +host_cpu = host_machine.cpu().to_lower()
 +message('Architecture: ' + host_cpu)
 +
 +if   host_cpu.startswith('i') and host_cpu.endswith('86')
 +  have_x86 = true
 +  conf.set10('ARCH_X86',    true)
 +elif host_cpu == 'x86_64'
 +  have_x86 = true
 +  conf.set10('ARCH_X86',    true)
 +  conf.set10('ARCH_X86_64', true)
 +elif host_cpu == 'ppc' or host_cpu == 'powerpc'
 +  have_ppc = true
 +  conf.set10('ARCH_PPC',    true)
 +elif host_cpu == 'ppc64' or host_cpu == 'powerpc64'
 +  have_ppc = true
 +  conf.set10('ARCH_PPC',    true)
 +  conf.set10('ARCH_PPC64',  true)
 +else
 +  error('Unknown host architecture')
 +endif
 +
 +
 +host_os = host_machine.system().to_lower()
 +message('Host os: ' + host_os)
 +
 +platform_win32= host_os.contains('mingw') or host_os.contains('cygwin') or host_os.contains('windows')
 +platform_osx  = host_os.contains('darwin')
 +
 +conf.set('PLATFORM_OSX',  platform_osx)
 +
 +if platform_win32
 +  windows = import('windows')
 +endif
 +
 +################################################################################
 +# Dependencies
 +math              = cc.find_library('m')
 +
 +atk               = dependency('atk',                version: '>=2.2.0')
 +
- babl_minver       = '>=0.1.38'
++babl_minver       = '>=0.1.42'
 +babl              = dependency('babl',               version: babl_minver)
 +
 +cairo_minver      = '>=1.12.2'
 +cairo             = dependency('cairo',              version: cairo_minver)
 +
 +dbus_glib         = dependency('dbus-glib-1')
 +
 +fontconfig_minver = platform_win32 ? '>=2.11.1'         : '>=2.2.0'
 +# fontconfig_name   = platform_win32 ? 'fontconfig_win32' : 'fontconfig'
 +fontconfig_name   = 'fontconfig'
 +fontconfig        = dependency(fontconfig_name,      version: fontconfig_minver)
 +
 +freetype2         = dependency('freetype2',          version: '>=2.1.7')
 +
 +gdk_pixbuf_minver = '>=2.30.8'
 +gdk_pixbuf        = dependency('gdk-pixbuf-2.0',     version: gdk_pixbuf_minver)
 +
 +gegl_minver       = '>=0.3.27'
 +gegl              = dependency('gegl-0.3',           version: gegl_minver)
 +
 +gexiv2            = dependency('gexiv2',             version: '>=0.10.6')
 +
 +gio               = dependency('gio-2.0')
 +gio_specific_name = platform_win32 ? 'gio-windows-2.0' : 'gio-unix-2.0'
 +gio_specific      = dependency(gio_specific_name)
 +
 +glib              = dependency('glib-2.0',           version: '>=2.54.2')
 +gobject           = dependency('gobject-2.0',        version: '>=2.54.2')
 +gmodule           = dependency('gmodule-no-export-2.0')
 +
 +gtk2_minver       = '>=2.24.10'
 +gtk2              = dependency('gtk+-2.0',           version: gtk2_minver)
 +
 +harfbuzz          = dependency('harfbuzz',           version: '>=0.9.19')
 +lcms              = dependency('lcms2',              version: '>=2.8')
 +
 +libmypaint_name   = platform_win32 ? 'libmypaint' : 'libmypaint-1.3'
 +libmypaint        = dependency(libmypaint_name,      version: '>=1.3.0')
 +libmypaint_brushes= dependency('mypaint-brushes-1.0',required: false)
 +pangocairo        = dependency('pangocairo',         version: '>=1.29.4')
 +pangoft2          = dependency('pangoft2',           version: '>=1.29.4')
 +rsvg              = dependency('librsvg-2.0',        version: '>=2.40.6')
 +
 +# xgettext           = dependency('xgettext',           version: '>=0.19')
 +
 +# Mypaint-brushes not available on MingW
 +mypaint_brushes = libmypaint_brushes.found() ? [
 +  libmypaint_brushes,
 +] : []
 +mypaint_args    = libmypaint_brushes.found() ? [] : [
 +  '-DMYPAINT_BRUSHES_DIR="/usr/share/mypaint-data/1.0/brushes"',
 +]
 +
 +
 +################################################################################
 +# Check for GLib Networking
 +
 +glib_networking_works_run = cc.run(
 +  '''#include <gio/gio.h>
 +  int main() {
 +    return !g_tls_backend_supports_tls (g_tls_backend_get_default ());
 +  }''',
 +  dependencies: gio,
 +)
 +glib_networking_works =(glib_networking_works_run.compiled()
 +                    and glib_networking_works_run.returncode() == 0)
 +
 +if not glib_networking_works
 +  error('Test for glib-networking failed. This is required.')
 +# TODO check if cross-compiling
 +endif
 +
 +################################################################################
 +# Check if Pango is built with a recent fontconfig
 +
 +pango_check_run = cc.run(
 +  '''#include <fontconfig/fontconfig.h>
 +  int main() {
 +    FcObjectSet *os; os = FcObjectSetBuild (FC_FAMILY, FC_WIDTH);
 +  }''',
 +  dependencies: fontconfig,
 +)
 +pango_check =(pango_check_run.compiled()
 +          and pango_check_run.returncode() == 0)
 +
 +if not pango_check
 +  message('''
 +  *** You have a fontconfig >= fontconfig_required_version installed on your system, but your
 +  *** Pango library is using an older version. This old version is probably in
 +  *** /usr/X11R6. Look at the above output, and note that the result for
 +  *** FONTCONFIG_CFLAGS is not in the result for PANGOCAIRO_CFLAGS, and that
 +  *** there is likely an extra -I line, other than the ones for GLIB,
 +  *** Freetype, and Pango itself. That's where your old fontconfig files are.
 +  *** Rebuild pango, and make sure that it uses the newer fontconfig. The
 +  *** easiest way be sure of this is to simply get rid of the old fontconfig.
 +  *** When you rebuild pango, make sure the result for FONTCONFIG_CFLAGS is
 +  *** the same as the result here.''')
 +endif
 +
 +# Check for Dr. Mingw
 +# TODO check if that works
 +have_drmingw = false
 +if platform_win32
 +  exchndl = cc.find_library('exchndl')
 +  if exchndl.found()
 +    have_drmingw = cc.has_function(
 +      'ExcHndlSetLogFileNameA',
 +      prefix: '',
 +      dependencies: exchndl,
 +    )
 +  endif
 +endif
 +
 +# Check for finite or isfinite
 +conf.set('HAVE_FINITE',   cc.has_function('finite',   prefix: '#include <math.h>'))
 +conf.set('HAVE_ISFINITE', cc.has_function('isfinite', prefix: '#include <math.h>'))
 +
 +# Check for compiler CPU extensions
 +cpuext_args = [
 +  '-mfpmath=sse',
 +  '-mmmx',
 +  '-msse',
 +  '-msse2',
 +  '-msse4.1',
 +]
 +add_project_arguments(cc .get_supported_arguments(cpuext_args), language: 'c')
 +add_project_arguments(cxx.get_supported_arguments(cpuext_args), language: 'cpp')
 +
 +conf.set10('USE_MMX',                   cc.has_argument('-mmmx'))
 +conf.set10('USE_SSE',                   cc.has_argument('-msse'))
 +conf.set10('COMPILE_SSE2_INTRINISICS',  cc.has_argument('-msse2'))
 +conf.set10('COMPILE_SSE4_1_INTRINISICS',cc.has_argument('-msse4.1'))
 +
 +
 +# TODO altivec
 +has_altivec = cc.has_argument('-faltivec')
 +cc.has_argument('-maltivec')
 +cc.has_argument('-mabi=altivec')
 +
 +# TODO shared memory handling
 +
 +# OpenMP
 +conf.set10('ENABLE_MP', get_option('enable-openmp'))
 +
 +# Check if X11
 +enable_doc_shooter = false
 +
 +if gtk2.get_pkgconfig_variable('target') == 'x11'
 +  x11   = dependency('x11')
 +  xmu   = dependency('xmu')
 +  xt    = dependency('xt')
 +  xext  = dependency('xext')
 +  xfixes= dependency('xfixes')
 +
 +  enable_doc_shooter = true
 +
 +  x11_headers   = [ 'X11/Xmu/WinUtil.h', 'X11/extensions/shape.h', ]
 +  x11_functions = [ 'XmuClientWindow', 'XShapeGetRectangles', ]
 +  foreach header : x11_headers
 +    if not cc.has_header(header, dependencies: [ xext, xmu ])
 +      error('x11 install does not provide required header ' + header)
 +    endif
 +  endforeach
 +  foreach function : x11_functions
 +    if not cc.has_function(function, dependencies: [ xext, xmu ])
 +      error('x11 install does not provide required function ' + function)
 +    endif
 +  endforeach
 +  have_xlibs = true
 +else
 +  x11    = dependency('', required: false)
 +  xmu    = dependency('', required: false)
 +  xt     = dependency('', required: false)
 +  xext   = dependency('', required: false)
 +  xfixes = dependency('', required: false)
 +  have_xlibs = false
 +endif
 +
 +# Print support
 +have_print      = get_option('with-print')
 +have_screenshot = get_option('with-screenshot')
 +if have_print and not have_xlibs
 +  error('Printing requires x libs')
 +endif
 +if have_screenshot and not have_xlibs
 +  error('Screenshot requires x libs')
 +endif
 +
++if not cc.has_header('execinfo.h')
++  error('The compiler does not provide required header ' + header)
++endif
++
 +################################################################################
 +# MIME types
 +# The list of MIME types that are supported by plug-ins
 +
 +MIMEtypes = [
 +  'image/bmp',
 +  'image/g3fax',
 +  'image/gif',
 +  'image/svg+xml',
 +  'image/x-compressed-xcf',
 +  'image/x-fits',
 +  'image/x-gimp-gbr',
 +  'image/x-gimp-gih',
 +  'image/x-gimp-pat',
 +  'image/x-pcx',
 +  'image/x-portable-anymap',
 +  'image/x-portable-bitmap',
 +  'image/x-portable-graymap',
 +  'image/x-portable-pixmap',
 +  'image/x-psd',
 +  'image/x-sgi',
 +  'image/x-tga',
 +  'image/x-xbitmap',
 +  'image/x-xcf',
 +  'image/x-xwindowdump',
 +]
 +
 +
 +
 +libtiff = dependency('libtiff-4', required: false)
 +if libtiff.found()
 +  MIMEtypes += 'image/tiff'
 +endif
 +
 +
 +libjpeg = dependency('libjpeg', required: false)
 +if libjpeg.found()
 +  MIMEtypes += 'image/jpeg'
 +endif
 +
 +
 +zlib = dependency('zlib', required: false)
 +if zlib.found()
 +  MIMEtypes += 'image/x-psp'
 +endif
 +
 +
 +bz2 = cc.find_library('bz2', required: false)
 +
 +
 +liblzma = dependency('liblzma', version: '>=5.0.0', required: false)
 +
 +
 +if get_option('with-ghostscript')
 +  ghostscript = cc.find_library('gs')
 +  MIMEtypes += 'application/postscript'
 +else
 +  ghostscript = dependency('', required: false)
 +endif
 +
 +
 +libpng = dependency('libpng', version: '>=1.6.25', required: false)
 +if libpng.found()
 +  MIMEtypes += [ 'image/png', 'image/x-icon']
 +endif
 +
 +
 +if get_option('with-mng')
 +  libmng = cc.find_library('mng')
 +else
 +  libmng = dependency('', required: false)
 +endif
 +
 +
 +if get_option('with-aa')
 +  libaa = cc.find_library('aa')
 +else
 +  libaa = dependency('', required: false)
 +endif
 +
 +
 +if get_option('with-xpm')
 +  libxpm = dependency('xpm')
 +  MIMEtypes += 'image/x-xpixmap'
 +else
 +  libxpm = dependency('', required: false)
 +endif
 +
 +
 +if get_option('with-openexr')
 +  openexr = dependency('OpenEXR', version: '>=1.6.1')
 +  MIMEtypes += 'image/x-exr'
 +else
 +  openexr = dependency('', required: false)
 +endif
 +
 +
 +if get_option('with-webp')
 +  webp_deps = [
 +    dependency('libwebp',     version: '>=0.6.0'),
 +    dependency('libwebpmux',  version: '>=0.6.0'),
 +    dependency('libwebpdemux',version: '>=0.6.0'),
 +  ]
 +  webp = declare_dependency(
 +    dependencies: webp_deps,
 +    version: webp_deps[0].version(),
 +  )
 +  MIMEtypes += 'image/x-webp'
 +else
 +  webp = dependency('', required: false)
 +endif
 +
 +
 +if get_option('with-webkit')
 +  webkit = dependency('webkit-1.0', version: '>=1.6.1')
 +else
 +  webkit = dependency('', required: false)
 +endif
 +
 +
 +if get_option('with-poppler')
++  # All modern distributions have at least this version and CJK/Cyrillic
++  # support should not be considered as "second-zone citizen".
 +  poppler = [
 +    dependency('poppler-glib', version: '>=0.44.0'),
 +    dependency('poppler-data', version: '>=0.4.7'),
 +  ]
 +else
 +  poppler = dependency('', required: false)
 +endif
 +
 +
 +if get_option('with-cairo-pdf')
 +  cairopdf = dependency('cairo-pdf', version: '>=1.12.2')
 +else
 +  cairopdf = dependency('', required: false)
 +endif
 +
 +
 +# PDF import support is a granted feature.
 +MIMEtypes += 'application/pdf'
 +
 +
 +if get_option('with-wmf')
 +  wmf = [ cc.find_library('wmf'), cc.find_library('wmflite') ]
 +  wmf = dependency('libwmf', version: '>=0.2.8')
 +  MIMEtypes += [ 'image/x-wmf', ]
 +else
 +  wmf = dependency('', required: false)
 +endif
 +
 +
 +if get_option('with-jasper')
 +  jasper = cc.find_library('jasper')
 +  MIMEtypes += [ 'image/jp2', 'image/jpeg2000', 'image/jpx', ]
 +else
 +  jasper =
 +endif
 +
 +
 +if get_option('with-xmc')
 +  xmc = dependency('xcursor')
 +  MIMEtypes += [ 'image/x-xcursor', ]
 +else
 +  xmc = dependency('', required: false)
 +endif
 +
 +
 +if get_option('with-alsa')
 +  alsa = dependency('alsa', version: '>=1.0.0')
 +else
 +  alsa = dependency('', required: false)
 +endif
 +
 +
 +have_linuxinput = false
 +if get_option('with-linux-input')
 +  if not cc.has_header('linux/input.h')
 +    error('linux/input.h header not found.')
 +  endif
 +  have_linuxinput = true
 +endif
 +
 +# DirectX DirectInput
 +have_directXinput = false
 +directx_sdk_path = get_option('with-directx-sdk')
 +if directx_sdk_path != '' and platform_win32
 +  if directx_sdk_path.contains(' ')
 +    message('Warning: The DirectX SDK should be accessible through a path without spaces. Use MSYS mounts.'
 +        + '\nIgnoring your with-directx-sdk switch.'
 +    )
 +  elif directx_sdk_path.contains('\\')
 +    message('Warning: Use plain (forward) slashes only for the DirectX SDK path.'
 +        + '\nIgnoring your with-directx-sdk switch.'
 +    )
 +  else
 +    have_directXinput = true
 +    conf.set10('HAVE_DX_DINPUT', have_directXinput)
 +    dxguid = cc.find_library('dxguid',
 +      dirs: join_paths(directx_sdk_path, 'Lib', 'x86'),
 +    )
 +    directx = declare_dependency(link_with: dxguid,
 +      include_directories: join_paths(directx_sdk_path, 'Include'),
 +    )
 +  endif
 +endif
 +
 +
 +if get_option('with-gudev')
 +  gudev = dependency('gudev-1.0', version: '>=167')
 +else
 +  gudev = dependency('', required: false)
 +endif
 +
 +
 +# sendmail TODO
 +have_email = true
 +
 +# perl
 +perl = find_program('perl5', 'perl', 'perl5.005', 'perl5.004', 'perl')
 +
 +
 +# python
 +have_python = false
 +if get_option('with-python')
 +  python2 = find_program('python2')
 +  pygobjectcodegen = find_program('pygobject-codegen-2.0')
 +
 +  libpython2= dependency('python2',       version: '>=2.5.0')
 +  pygobject = dependency('pygobject-2.0', version: '>=2.10.4')
 +  pygtk2    = dependency('pygtk-2.0',     version: '>=2.10.4')
 +  pycairo   = dependency('pycairo',       version: '>=1.0.2')
 +
 +  pygtk_defsdir = pygtk2.get_pkgconfig_variable('defsdir')
 +  have_python = true
 +endif
 +
 +
 +# Script-fu
 +have_scriptfu = get_option('with-script-fu')
 +
 +
 +# Check for GTK Mac Integration
 +gtk_mac_integration_ok = false
 +if platform_osx and (gtk2.get_pkgconfig_variable('target') == 'xquartz')
 +  gtk2_macos   = dependency('gtk-mac-integration-gtk2', version: '>=2.0.0', required: false)
 +  if not gtk2_macos.found()
 +    gtk2_macos = dependency('gtk-mac-integration'     , version: '>=2.0.0', required: false)
 +  endif
 +  gtk_mac_integration_ok = gtk2_macos.found()
 +endif
 +
 +# Check for XML tools
 +xmllint = find_program('xmllint', required: false)
 +xsltproc= find_program('xsltproc',required: false)
 +intltool_merge = find_program('intltool-merge')
 +desktop_validate = find_program('desktop-file-validate')
 +gdk_pixbuf_csource = find_program('gdk-pixbuf-csource')
 +
 +
 +# Check for vector icons
 +# TODO
 +have_vector_icons = true
 +# if get_option('with-vec-icons')
 +#   # shared-mime-info is needed to correctly detect SVG files
 +#   # (except on Windows, apparently).
 +#   shared_mime_info = dependency('shared-mime-info', required: false)
 +#   if shared_mime_info.found() or platform_win32
 +#
 +#   endif
 +# endif
 +
 +if get_option('with-xvfb-run')
 +  xvfb_run = find_program('xvfb-run')
 +else
 +  xvfb_run = dependency('', required: false)
 +endif
 +
 +
 +if get_option('with-appdata-test')
 +  appstream_util = find_program('appstream-util')
 +else
 +  appstream_util = dependency('', required: false)
 +endif
 +
 +
 +if get_option('with-gtk-doc')
 +  gtkdoc_scan = find_program('gtkdoc-scan', required : true)
 +else
 +  gtkdoc_scan = dependency('', required: false)
 +endif
 +
 +enable_default_bin = get_option('enable-default-bin')
 +enable_console_bin = get_option('enable-console-bin')
 +
 +
 +# Possibly change default gimpdir from $XDG_CONFIG_HOME/GIMP/gimp_user_version
 +gimpdir = get_option('gimpdir')
 +if gimpdir == ''
 +  # Default value
 +  gimpdir = meson.project_name().to_upper()
 +endif
 +
 +gimpdatadir    = join_paths(get_option('datadir'),    meson.project_name(), api_version)
 +gimpplugindir  = join_paths(get_option('libdir'),     meson.project_name(), api_version)
 +gimpsysconfdir = join_paths(get_option('sysconfdir'), meson.project_name(), api_version)
 +gimpmanpagedir = gimpdir
 +localedir      = join_paths(get_option('datadir'), 'locale')
 +
 +
 +
 +# Disable deprecated APIs
 +add_project_arguments([
 +  '-DGIMP_DISABLE_DEPRECATED',
 +  '-DBABL_DISABLE_DEPRECATED',
 +  '-DGSEAL_ENABLE'
 +  ],
 +  language: 'c',
 +)
 +
 +if glib.version().version_compare('>=2.43')
 +  add_project_arguments([
 +    '-DG_DISABLE_DEPRECATED',
 +    ],
 +    language: 'c',
 +  )
 +endif
 +if gtk2.version().version_compare('>=2.26')
 +  add_project_arguments([
 +    '-DGDK_DISABLE_DEPRECATED',
 +    '-DGTK_DISABLE_DEPRECATED',
 +    ],
 +    language: 'c',
 +  )
 +endif
 +if glib.version().version_compare('>=1.32')
 +  add_project_arguments([
 +    '-DPANGO_DISABLE_DEPRECATED',
 +    ],
 +    language: 'c',
 +  )
 +endif
 +
 +
 +# Require multihead safe API
 +add_project_arguments([
 +  '-DGDK_MULTIHEAD_SAFE',
 +  '-DGTK_MULTIHEAD_SAFE',
 +  ],
 +  language: 'c',
 +)
 +
 +
 +# Check for internal tools
 +defcheck            = find_program(join_paths('tools', 'defcheck.py'))
 +extract_vector_icon = find_program(join_paths('tools', 'extract-vector-icon.sh'))
 +generate_changelog  = find_program(join_paths('tools', 'generate_changelog.sh'))
 +generate_news       = find_program(join_paths('tools', 'generate-news'))
 +gimppath2svg        = find_program(join_paths('tools', 'gimppath2svg.py'))
 +module_dependencies = find_program(join_paths('tools', 'module-dependencies.py'))
 +
 +gimp_mkenums        = find_program(join_paths('tools', 'gimp-mkenums'))
 +gimp_mkenums_custom_target_commonargs = [
 +  '--fprod','/* enumerations from "@basename@" */\n',
 +  '--vhead','GType\n'+
 +            '@enum_name@_get_type (void)\n'+
 +            '{\n'+
 +            '  static const G@Type@Value values[] =\n'+
 +            '  {',
 +  '--vprod','    { @VALUENAME@, "@VALUENAME@", "@valuenick@" },',
 +  '--vtail','    { 0, NULL, NULL }\n'+
 +            '  };\n',
 +  '--dhead','  static const Gimp@Type@Desc descs[] =\n'+
 +            '  {',
 +  '--dprod','    { @VALUENAME@, @valuedesc@, @valuehelp@ },@if (\'@valueabbrev@\' ne \'NULL\')@\n'+
 +            '    /* Translators: this is an abbreviated version of @valueudesc@.\n'+
 +            '       Keep it short. */\n'+
 +            '    { @VALUENAME@, @valueabbrev@, NULL },@endif@',
 +  '--dtail','    { 0, NULL, NULL }\n'+
 +            '  };\n'+
 +            '\n'+
 +            '  static GType type = 0;\n'+
 +            '\n'+
 +            '  if (G_UNLIKELY (! type))\n'+
 +            '    {\n'+
 +            '      type = g_@type@_register_static ("@EnumName@", values);\n'+
 +            '      gimp_type_set_translation_context (type, "@enumnick@");\n'+
 +            '      gimp_@type@_set_value_descriptions (type, descs);\n'+
 +            '    }\n'+
 +            '\n'+
 +            '  return type;\n'+
 +            '}\n',
 +  '@INPUT@',
 +]
 +
 +
 +################################################################################
 +# Localisation
 +gettext_package = 'gimp20'
 +
 +conf.set_quoted('GETTEXT_PACKAGE',gettext_package)
 +
 +# localedir = join_paths(get_option('prefix'), get_option('localedir'))
 +
 +
 +################################################################################
 +# ISO codes
 +
 +isocodes = dependency('iso-codes')
 +isocodes_prefix = isocodes.get_pkgconfig_variable('prefix')
 +isocodes_location = join_paths(isocodes_prefix,get_option('datadir'),'xml','iso-codes')
 +isocodes_localedir= join_paths(isocodes_prefix,get_option('datadir'),'locale')
 +
 +
 +################################################################################
 +# CFlags
 +
 +if profiling and cc.get_id() == 'gcc'
 +  add_project_arguments     ('-pg', language: [ 'c', 'cpp', ])
 +  add_project_link_arguments('-pg', language: [ 'c', 'cpp', ])
 +endif
 +
 +if ansi
 +  add_project_arguments('-ansi', '-pedantic', language: 'c')
 +endif
 +
 +add_project_arguments(
 +  '-fdiagnostics-show-option',
 +  '-fno-common',
 +
 +  '-Wmissing-prototypes',
 +  '-Werror=missing-prototypes',
 +
 +  '-Wdeclaration-after-statement',
 +  '-Wformat-security',
 +  '-Winit-self',
 +  # '-Wlogical-op',
 +  '-Wmissing-declarations',
 +  '-Wmissing-format-attribute',
 +  '-Wold-style-definition',
 +  '-Wpointer-arith',
 +  '-Wreturn-type',
 +  # '-Wstrict-prototypes',
 +  '-Wtype-limits',
 +
 +  # '--omg-optimized',
 +  # '--disable-instructions',
 +  language: [ 'c', 'cpp', ],
 +)
 +
 +# Ensure MSVC-compatible struct packing convention is used when
 +# compiling for Win32 with gcc.
 +if platform_win32
 +  add_project_arguments(
 +    cc.first_supported_argument('-fnative-struct', '-mms-bitfields'),
 +    language: [ 'c', 'cpp' ],
 +      )
 +endif
 +
 +has_nl_measurement = cc.has_function(
 +  'nl_langinfo',
 +  prefix: '#include<langinfo.h>',
 +)
 +
 +################################################################################
 +# Set/regroup common CFlags for subdirs
 +
 +# Global arguments
 +# Should be moved into config.h someday
 +
 +config_defines = [
 +  # Compiler
 +  '-DCC='                   +'"'+ cc.get_id()           +'"',
 +  '-DCC_VERSION='           +'"'+ cc.version()          +'"',
 +
 +  # Names
 +  '-DGIMP_PACKAGE='         +'"'+ meson.project_name()  +'"',
 +  '-DPACKAGE_STRING='       +'"'+ package_string        +'"',
 +  '-DGIMP_COMMAND='         +'"'+ gimp_command          +'"',
 +
 +  # Versions
 +  '-DGIMP_APP_VERSION='     +'"'+ app_version           +'"',
 +  '-DGIMP_DATA_VERSION='    +'"'+ api_version           +'"',
 +  '-DGIMP_PLUGIN_VERSION='  +'"'+ api_version           +'"',
 +  '-DGIMP_SYSCONF_VERSION=' +'"'+ api_version           +'"',
 +  '-DGIMP_USER_VERSION='    +'"'+ user_version          +'"',
 +  '-DGIMP_APP_VERSION_STRING="' + app_version           +'"',
 +
 +  # Directories
 +  '-DPREFIX='               +'"'+ prefix                +'"',
 +  '-DEXEC_PREFIX='          +'"'+ prefix                +'"',
 +  '-DGIMPDIR='              +'"'+ gimpdir               +'"',
 +  '-DGIMPSYSCONFDIR='       +'"'+ gimpsysconfdir        +'"',
 +  '-DGIMPDATADIR='          +'"'+ join_paths(prefix, gimpdatadir)    +'"',
 +  '-DGIMPPLUGINDIR='        +'"'+ join_paths(prefix, gimpplugindir)  +'"',
 +  '-DPLUGINDIR='            +'"'+ join_paths(prefix, gimpplugindir)  +'"',
 +  '-DLOCALEDIR='            +'"'+ join_paths(prefix, localedir)      +'"',
 +
 +  '-DLOCALSTATEDIR='        +'"'+ get_option('localstatedir')        +'"',
 +  '-DSHAREDSTATEDIR='       +'"'+ get_option('sharedstatedir')       +'"', # HUH ? /usr/com
 +  '-DSYSCONFDIR='           +'"'+ get_option('sysconfdir')           +'"',
 +  '-DBINDIR='               +'"'+ join_paths(prefix, get_option('bindir'))       +'"',
 +  '-DDATAROOTDIR='          +'"'+ join_paths(prefix, get_option('datadir'))      +'"',
 +  '-DINFODIR='              +'"'+ join_paths(prefix, get_option('infodir'))      +'"',
 +  '-DLIBDIR='               +'"'+ join_paths(prefix, get_option('libdir'))       +'"',
 +  '-DLIBEXECDIR='           +'"'+ join_paths(prefix, get_option('libexecdir'))   +'"',
 +  '-DMANDIR='               +'"'+ join_paths(prefix, get_option('mandir'))       +'"',
 +  '-DSBINDIR='              +'"'+ join_paths(prefix, get_option('sbindir'))      +'"',
 +  '-DSYSDATADIR='           +'"'+ join_paths(prefix, get_option('datadir'))      +'"',
 +
 +  # Third-party/Misc
 +  '-DISO_CODES_LOCATION='   +'"'+ isocodes_location  +'"',
 +  '-DISO_CODES_LOCALEDIR='  +'"'+ isocodes_localedir +'"',
 +
 +  '-DHAVE_CONFIG_H',
 +]
 +
 +
 +if platform_osx
 +  # libgimp_cflags += '-xobjective-c'
 +  # libgimp_lflags += ['-framework', 'Cocoa']
 +endif
 +
 +add_project_arguments(
 +  config_defines,
 +  language: [ 'c', 'cpp', ],
 +)
 +
 +rootInclude = include_directories('.')
 +appInclude  = include_directories('app')
 +
++
++configure_file(
++  input : 'INSTALL.in',
++  output: 'INSTALL',
++  configuration: conf
++)
++
++configure_file(
++  output: 'config.h',
++  configuration: conf
++)
++
++gitversion_h1 = vcs_tag(
++  input : 'app/git-version.h.in',
++  output: 'git-version.h.in.1',
++  command: [ 'git', 'describe', '--always', ],
++  replace_string: '@GIMP_GIT_VERSION@',
++  fallback: '',
++)
++gitversion_h2 = vcs_tag(
++  input : gitversion_h1,
++  output: 'git-version.h.in.2',
++  command: [ 'git', 'rev-parse', '--short', 'HEAD', ],
++  replace_string: '@GIMP_GIT_VERSION_ABBREV@',
++  fallback: '',
++)
++gitversion_h = vcs_tag(
++  input : gitversion_h2,
++  output: 'git-version.h',
++  command: [ 'git', 'log', '-n1', '--date=format:%Y', '--pretty=%cd', ],
++  replace_string: '@GIMP_GIT_LAST_COMMIT_YEAR@',
++  fallback: '',
++)
++
 +################################################################################
 +# Subdirs
 +subdir('build/windows')
 +
 +# Tools (need libgimpbase now)
 +subdir('libgimpbase')
 +subdir('tools')
 +
 +# Translations
 +subdir('po')
 +subdir('po-libgimp')
 +subdir('po-plug-ins')
 +subdir('po-python')
 +subdir('po-script-fu')
 +subdir('po-tags')
 +subdir('po-tips')
 +# subdir('po-windows-installer')
 +
 +# Data / Desktop / xml files
 +subdir('cursors')
 +subdir('data')
 +subdir('desktop')
 +subdir('etc')
 +subdir('icons')
 +subdir('m4macros')
 +subdir('menus')
 +subdir('themes')
 +
 +# Libraries (order here is important!)
 +subdir('libgimpcolor')
 +subdir('libgimpmath')
 +subdir('libgimpconfig')
 +subdir('libgimpmodule')
 +subdir('libgimpthumb')
 +subdir('libgimpwidgets')
 +subdir('libgimp')
 +
 +# Executables, plugins
 +subdir('modules')
 +subdir('plug-ins')
 +subdir('app')
 +
 +subdir('pdb')
 +
 +# subdir('build/windows/installer')
 +# subdir('po-windows-installer')
 +
 +# Docs
 +subdir('devel-docs')
 +subdir('docs')
 +
 +
- # configure_file(
- #   input : 'INSTALL.in',
- #   output: 'INSTALL',
- #   configuration: conf
- # )
- 
- configure_file(
-   output: 'config.h',
-   configuration: conf
- )
- 
- 
 +pkgconfig.generate(filebase: 'gimp-' + api_version,
 +  name: prettyname,
 +  description: 'GIMP Library',
 +  version: gimp_version,
 +  requires: [
 +    'gdk-pixbuf-2.0 ' + gdk_pixbuf_minver,
 +    'cairo '          + cairo_minver,
 +    'gegl-0.3 '       + gegl_minver,
 +  ],
 +  libraries: [
 +    '-L${libdir}',
 +    '-lgimp-'       + api_version,
 +    '-lgimpmath-'   + api_version,
 +    '-lgimpconfig-' + api_version,
 +    '-lgimpcolor-'  + api_version,
 +    '-lgimpbase-'   + api_version,
 +  ],
 +  subdirs: [
 +    gimp_api_name,
 +  ],
 +  variables: [
 +    'datarootdir='    +'${prefix}/'+ get_option('datadir'),
 +    'gimpdatadir='    +'${prefix}/'+ gimpdatadir,
 +    'gimplibdir='     +'${prefix}/'+ gimpplugindir,
 +    'gimpsysconfdir=' + gimpsysconfdir,
 +    'gimplocaledir='  +'${prefix}/'+ localedir,
 +  ],
 +)
 +pkgconfig.generate(filebase: 'gimpthumb-' + api_version,
 +  name: 'GIMP Thumb',
 +  description: 'GIMP Thumbnail Library',
 +  version: gimp_version,
 +  requires: [
 +    'gdk-pixbuf-2.0 ' + gdk_pixbuf_minver,
 +  ],
 +  libraries: [
 +    '-L${libdir}',
 +    '-lgimpthumb-'  + api_version,
 +  ],
 +  subdirs: [
 +    gimp_api_name,
 +  ],
 +)
 +pkgconfig.generate(filebase: 'gimpui-' + api_version,
 +  name: 'GIMP UI',
 +  description: 'GIMP User Interface Library',
 +  version: gimp_version,
 +  requires: [
 +    'gimp-' + api_version + ' >= ' + app_version,
 +    'gtk+-2.0 ' + gtk2_minver,
 +  ],
 +  libraries: [
 +    '-L${libdir}',
 +    '-lgimpui-'  + api_version,
 +    '-lgimpwidgets-' + api_version,
 +    '-lgimpmodule-'  + api_version,
 +  ],
 +  subdirs: [
 +    gimp_api_name,
 +  ],
 +)
 +
 +
 +# Print a summary of features enabled/disabled:
 +
 +message('''
 +Extra Binaries:
 +  gimp-console:        @0@'''.format(enable_console_bin) +'''
 +
 +Optional Features:
 +  Language selection:  @0@'''.format(isocodes.found()) +'''
 +  Vector icons:        @0@'''.format(have_vector_icons) +'''
 +  Dr. Mingw (Win32):   @0@'''.format(have_drmingw) +'''
 +
 +Optional Plug-Ins:
 +  Ascii Art:           @0@'''.format(libaa.found()) +'''
 +  Ghostscript:         @0@'''.format(ghostscript.found()) +'''
 +  Help Browser:        @0@'''.format(webkit.found()) +'''
 +  JPEG 2000:           @0@'''.format(jasper.found()) +'''
 +  MNG:                 @0@'''.format(libmng.found()) +'''
 +  OpenEXR:             @0@'''.format(openexr.found()) +'''
 +  WebP:                @0@'''.format(webp.found()) +'''
 +  PDF (export):        @0@'''.format(cairopdf.found()) +'''
 +  Print:               @0@'''.format(have_print) +'''
 +  Python 2:            @0@'''.format(have_python) +'''
 +  Script-Fu:           @0@'''.format(have_scriptfu) +'''
 +  TWAIN (Win32):       @0@'''.format(platform_win32) +'''
 +  Webpage:             @0@'''.format(webkit.found()) +'''
 +  WMF:                 @0@'''.format(wmf.found()) +'''
 +  X11 Mouse Cursor:    @0@'''.format(xmc.found()) +'''
 +  XPM:                 @0@'''.format(libxpm.found()) +'''
 +  Email:               @0@'''.format(have_email) +'''
 +
 +Optional Modules:
 +  ALSA (MIDI Input):   @0@'''.format(alsa.found()) +'''
 +  Linux Input:         @0@'''.format(have_linuxinput) +''' (GUdev support: @0@'''.format(gudev.found()) 
+''')
 +  DirectInput (Win32): @0@'''.format(have_directXinput) +'''
 +
 +Tests:
 +  Use xvfb-run         @0@'''.format(xvfb_run.found()) +'''
 +  Test appdata         @0@'''.format(appstream_util.found()) +'''
 +'''
 +)
 +
 +
 +# Miscelaneous targets
 +
 +if xsltproc.found()
 +  custom_target('AUTHORS',
 +    input : [ 'authors.xsl', 'authors.xml', ],
 +    output: 'AUTHORS',
 +    command: [
 +      xsltproc.path(),
 +      '-o', '@OUTPUT@',
 +      '@INPUT@',
 +    ],
 +    build_by_default: false,
 +  )
 +  custom_target('authors.md',
 +    input : [ 'authors4gimp-web.xsl', 'authors.xml', ],
 +    output: 'authors.md',
 +    command: [
 +      xsltproc.path(),
 +      '--stringparam', 'today', '`date --iso-8601=seconds`',
 +      '-o', '@OUTPUT@',
 +      '@INPUT@',
 +    ],
 +    build_by_default: false,
 +  )
 +endif
 +
 +if xmllint.found()
 +  custom_target('validate-authors',
 +    input : [ 'authors.xml', ],
 +    output: [ 'validate-authors', ],
 +    command: [
 +      xmllint.path(),
 +      '--noout',
 +      '--valid', '@INPUT@',
 +    ],
 +    build_by_default: false,
 +  )
 +endif
 +
 +# TODO this python script is waiting for autotools directory/files structure
 +custom_target('check-defs',
 +  input : [ ],
 +  output: [ 'check-defs', ],
 +  command: [
 +    python2.path(),
 +    join_paths(meson.source_root(), 'tools','defcheck.py'),
 +    meson.source_root(),
 +  ],
 +  build_by_default: false,
 +)
 +
 +
 +custom_target('Changelog',
 +  input : [ ],
 +  output: [ 'Changelog', ],
 +  command: [
 +    join_paths(meson.source_root(), 'tools','generate_changelog.sh'),
 +    meson.source_root(),
 +    '@OUTPUT@'
 +  ],
 +  build_by_default: false,
 +)
diff --cc tools/meson.build
index 9ec481f,0000000..2502fcf
mode 100644,000000..100644
--- a/tools/meson.build
+++ b/tools/meson.build
@@@ -1,45 -1,0 +1,65 @@@
 +
 +if platform_win32
-   gimp_debug_resume = executable('gimp-debug-resume', 'gimp-debug-resume.c')
++  gimp_debug_resume = executable('gimp-debug-resume',
++    'gimp-debug-resume.c',
++  )
 +endif
 +
 +
- gimptool = executable('gimptool-2.0',
++gimptool = executable('gimptool-' + api_version,
 +  'gimptool.c',
- 
 +  include_directories: rootInclude,
 +  dependencies: [
 +    gtk2,
 +  ],
 +  link_with: [
 +    libgimpbase,
 +  ],
 +  install: true,
 +)
 +
 +
++gimp_debug = executable('gimpdebug-' + api_version,
++  [
++    '../app/gimp-version.c',
++    '../app/gimp-version.h',
++    '../app/widgets/gimpcriticaldialog.c',
++    'gimpdebug.c',
++  ],
++  include_directories: [
++    rootInclude,
++    appInclude,
++  ],
++  dependencies: [
++    fontconfig,
++    gegl,
++    gio,
++    gtk2,
++  ],
++)
++
 +executable('kernelgen',
 +  'kernelgen.c',
 +  include_directories: rootInclude,
 +  install: false,
 +)
 +
 +executable('test-clipboard',
 +  'test-clipboard.c',
 +  include_directories: rootInclude,
 +  dependencies: [
 +    gtk2,
 +  ],
 +  install: false,
 +)
 +
 +if have_vector_icons
 +  invert_svg = generator(
 +    executable('invert-svg',
 +      'invert-svg.c',
 +      dependencies: gio,
 +    ),
 +    output: '@BASENAME@',
 +    arguments: [ '@INPUT@', '@OUTPUT@' ],
 +  )
 +endif


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]