gimpenums_notail = custom_target('gimpenums.c.notail', input : [ 'gimpenums.h', ], output: [ 'gimpenums.c.notail', ], command: [ gimp_mkenums, '--fhead','#include "config.h"\n' + '#include \n' + '#include \n' + '#undef GIMP_DISABLE_DEPRECATED\n' + '#include "libgimpbase/gimpbase.h"\n' + '#include "libgimpbase/gimpbase-private.h"\n' + '#include "libgimpconfig/gimpconfigenums.h"\n' + '#include "gimpenums.h"\n', libgimp_mkenums_custom_target_commonargs, '@INPUT@', ], capture: true, ) gimpenums = custom_target('gimpenums.c', input : [ gimpenums_notail, 'gimpenums.c.tail', ], output: [ 'gimpenums.c', ], command: [ 'cat', '@INPUT@' ], capture: true, ) gimpuimarshal = gnome.genmarshal('gimpuimarshal', prefix: '_gimpui_marshal', sources: 'gimpuimarshal.list', install_header: false, ) pdb_wrappers_sources = [ 'gimp_pdb.c', 'gimpbrush_pdb.c', 'gimpbrushes_pdb.c', 'gimpbrushselect_pdb.c', 'gimpbuffer_pdb.c', 'gimpchannel_pdb.c', 'gimpcontext_pdb.c', 'gimpdebug_pdb.c', 'gimpdisplay_pdb.c', 'gimpdrawable_pdb.c', 'gimpdrawablecolor_pdb.c', 'gimpdrawableedit_pdb.c', 'gimpdynamics_pdb.c', 'gimpedit_pdb.c', 'gimpfile_pdb.c', 'gimpfloatingsel_pdb.c', 'gimpfonts_pdb.c', 'gimpfontselect_pdb.c', 'gimpgimprc_pdb.c', 'gimpgradient_pdb.c', 'gimpgradients_pdb.c', 'gimpgradientselect_pdb.c', 'gimphelp_pdb.c', 'gimpimage_pdb.c', 'gimpimagecolorprofile_pdb.c', 'gimpimageconvert_pdb.c', 'gimpimagegrid_pdb.c', 'gimpimageguides_pdb.c', 'gimpimagesamplepoints_pdb.c', 'gimpimageselect_pdb.c', 'gimpimagetransform_pdb.c', 'gimpimageundo_pdb.c', 'gimpitem_pdb.c', 'gimpitemtransform_pdb.c', 'gimplayer_pdb.c', 'gimpmessage_pdb.c', 'gimppainttools_pdb.c', 'gimppalette_pdb.c', 'gimppalettes_pdb.c', 'gimppaletteselect_pdb.c', 'gimppattern_pdb.c', 'gimppatterns_pdb.c', 'gimppatternselect_pdb.c', 'gimpprogress_pdb.c', 'gimpselection_pdb.c', 'gimptextlayer_pdb.c', 'gimptexttool_pdb.c', 'gimpvectors_pdb.c', ] pdb_wrappers_headers = [ 'gimp_pdb_headers.h', 'gimp_pdb.h', 'gimpbrush_pdb.h', 'gimpbrushes_pdb.h', 'gimpbrushselect_pdb.h', 'gimpbuffer_pdb.h', 'gimpchannel_pdb.h', 'gimpcontext_pdb.h', 'gimpdebug_pdb.h', 'gimpdisplay_pdb.h', 'gimpdrawable_pdb.h', 'gimpdrawablecolor_pdb.h', 'gimpdrawableedit_pdb.h', 'gimpdynamics_pdb.h', 'gimpedit_pdb.h', 'gimpfile_pdb.h', 'gimpfloatingsel_pdb.h', 'gimpfonts_pdb.h', 'gimpfontselect_pdb.h', 'gimpgimprc_pdb.h', 'gimpgradient_pdb.h', 'gimpgradients_pdb.h', 'gimpgradientselect_pdb.h', 'gimphelp_pdb.h', 'gimpimage_pdb.h', 'gimpimagecolorprofile_pdb.h', 'gimpimageconvert_pdb.h', 'gimpimagegrid_pdb.h', 'gimpimageguides_pdb.h', 'gimpimagesamplepoints_pdb.h', 'gimpimageselect_pdb.h', 'gimpimagetransform_pdb.h', 'gimpimageundo_pdb.h', 'gimpitem_pdb.h', 'gimpitemtransform_pdb.h', 'gimplayer_pdb.h', 'gimpmessage_pdb.h', 'gimppainttools_pdb.h', 'gimppalette_pdb.h', 'gimppalettes_pdb.h', 'gimppaletteselect_pdb.h', 'gimppattern_pdb.h', 'gimppatterns_pdb.h', 'gimppatternselect_pdb.h', 'gimpprogress_pdb.h', 'gimpselection_pdb.h', 'gimptextlayer_pdb.h', 'gimptexttool_pdb.h', 'gimpvectors_pdb.h', ] libgimp_sources_introspectable = [ 'gimp.c', 'gimpbrushselect.c', 'gimpchannel.c', 'gimpdisplay.c', 'gimpdrawable.c', 'gimpfileprocedure.c', 'gimpfontselect.c', 'gimpgimprc.c', 'gimpgradientselect.c', 'gimpimage.c', 'gimpimagecolorprofile.c', 'gimpimagemetadata.c', 'gimpimagemetadata-save.c', 'gimpimageprocedure.c', 'gimpitem.c', 'gimplayer.c', 'gimplayermask.c', 'gimploadprocedure.c', 'gimppaletteselect.c', 'gimpparamspecs.c', 'gimppatternselect.c', 'gimppdb.c', 'gimpplugin.c', 'gimpprocedure.c', 'gimpprocedureconfig.c', 'gimpprogress.c', 'gimpsaveprocedure.c', 'gimpselection.c', 'gimpthumbnailprocedure.c', 'gimpvectors.c', gimpenums, pdb_wrappers_sources, ] libgimp_sources = [ libgimp_sources_introspectable, 'gimp-debug.c', 'gimp-shm.c', 'gimpgpparams.c', 'gimpparamspecs-desc.c', 'gimppdb_pdb.c', 'gimppdbprocedure.c', 'gimppixbuf.c', 'gimpplugin_pdb.c', 'gimpunit_pdb.c', 'gimpunitcache.c', 'gimptilebackendplugin.c', ] libgimp_headers_introspectable = [ # Order matters. Leave these headers at the top. 'gimp.h', 'gimptypes.h', 'gimpenums.h', # Other headers 'gimpbrushselect.h', 'gimpchannel.h', 'gimpdisplay.h', 'gimpdrawable.h', 'gimpfileprocedure.h', 'gimpfontselect.h', 'gimpgimprc.h', 'gimpgradientselect.h', 'gimpimage.h', 'gimpimagecolorprofile.h', 'gimpimagemetadata.h', 'gimpimageprocedure.h', 'gimpitem.h', 'gimplayer.h', 'gimplayermask.h', 'gimploadprocedure.h', 'gimppaletteselect.h', 'gimpparamspecs.h', 'gimppatternselect.h', 'gimppdb.h', 'gimpplugin.h', 'gimpprocedure.h', 'gimpprocedureconfig.h', 'gimpprogress.h', 'gimpsaveprocedure.h', 'gimpselection.h', 'gimpthumbnailprocedure.h', 'gimpvectors.h', pdb_wrappers_headers, ] libgimp_headers = [ libgimp_headers_introspectable, 'gimpprocedure-params.h', ] libgimpui_sources_introspectable = [ 'gimpaspectpreview.c', 'gimpbrushselectbutton.c', 'gimpdrawablepreview.c', 'gimpexport.c', 'gimpfontselectbutton.c', 'gimpgradientselectbutton.c', 'gimpimagecombobox.c', 'gimpimagemetadata-interactive.c', 'gimpitemcombobox.c', 'gimppaletteselectbutton.c', 'gimppatternselectbutton.c', 'gimpprocbrowserdialog.c', 'gimpproceduredialog.c', 'gimpprocview.c', 'gimpprogressbar.c', 'gimpselectbutton.c', 'gimpui.c', 'gimpzoompreview.c', ] libgimpui_sources = [ libgimpui_sources_introspectable, gimpuimarshal, ] libgimpui_headers_introspectable = [ # Order matters. Leave these headers at the top. 'gimpui.h', 'gimpuitypes.h', # Other headers 'gimpaspectpreview.h', 'gimpbrushselectbutton.h', 'gimpdrawablepreview.h', 'gimpexport.h', 'gimpfontselectbutton.h', 'gimpgradientselectbutton.h', 'gimpimagecombobox.h', 'gimpimagemetadata-interactive.h', 'gimpitemcombobox.h', 'gimppaletteselectbutton.h', 'gimppatternselectbutton.h', 'gimpprocbrowserdialog.h', 'gimpproceduredialog.h', 'gimpprocview.h', 'gimpprogressbar.h', 'gimpselectbutton.h', 'gimpzoompreview.h', ] libgimp_introspectable = [ libgimp_sources_introspectable, libgimp_headers_introspectable, ] libgimpui_introspectable = [ libgimpui_sources_introspectable, libgimpui_headers_introspectable, ] libgimp = library('gimp-'+ gimp_api_version, libgimp_sources, include_directories: rootInclude, dependencies: [ gegl, gexiv2, drmingw, gtk3, ], c_args: [ '-DG_LOG_DOMAIN="LibGimp"', '-DGIMP_COMPILATION', ], link_with: [ libgimpbase, libgimpcolor, libgimpconfig, ], vs_module_defs: 'gimp.def', install: true, version: so_version, ) # Define an internal dependency for ease of reuse libgimp_dep = declare_dependency( dependencies: [ cairo, gdk_pixbuf, gegl, ], link_with: [ libgimp, libgimpbase, libgimpcolor, libgimpconfig, libgimpmath, ], include_directories: rootInclude, ) libgimpui = library('gimpui-'+ gimp_api_version, libgimpui_sources, dependencies: [ libgimp_dep, gexiv2, gtk3, ], c_args: [ '-DG_LOG_DOMAIN="LibGimpUI"', '-DGIMP_COMPILATION', ], link_with: [ libgimpmodule, libgimpwidgets, ], vs_module_defs: 'gimpui.def', install: true, version: so_version, ) # Define an internal dependency for ease of reuse libgimpui_dep = declare_dependency( dependencies: [ libgimp_dep, gtk3, ], link_with: [ libgimpmodule, libgimpui, libgimpwidgets, ], include_directories: rootInclude, ) install_headers( libgimp_headers, libgimpui_headers_introspectable, subdir: gimp_api_name / 'libgimp', ) ### GObject introspection libgimp_introspectable_files = [ libgimp_introspectable, libgimpbase_introspectable, libgimpcolor_introspectable, libgimpconfig_introspectable, libgimpmath_introspectable, 'gimpparamspecs-body.c', ] libgimpui_introspectable_files = [ libgimpmodule_introspectable, libgimpui_introspectable, libgimpwidgets_introspectable, ] if meson.is_cross_build() gobject_introspection_warning = '\n '.join(['', 'GObject Introspection is disabled while cross-compiling because', 'GI tools do not manage to properly generate introspection data', 'while cross-compiling. Nevertheless we consider our introspected', 'API as a core component of GIMP, thus you are expected to build', 'this data natively.' ]) warning(gobject_introspection_warning) warnings += gobject_introspection_warning else libgimp_gir_includes = [ 'Babl-0.1', 'cairo-1.0', 'GdkPixbuf-2.0', 'Gegl-0.4', 'Gio-2.0', 'GLib-2.0', 'GObject-2.0', 'Gtk-3.0', ] gir_args = [ '-DGIMP_COMPILATION', '-DGIMP_BASE_COMPILATION', '-DGIMP_COLOR_COMPILATION', '-DGIMP_CONFIG_COMPILATION', '-DGIMP_MATH_COMPILATION', '-DGIMP_MODULE_COMPILATION', '-DGIMP_THUMB_COMPILATION', '-DGIMP_WIDGETS_COMPILATION', '-DGIMP_DISABLE_DEPRECATED', '--quiet', ] libgimp_gir = gnome.generate_gir( libgimp, libgimpbase, libgimpcolor, libgimpconfig, libgimpmath, sources: libgimp_introspectable_files, nsversion: gimp_api_version, namespace: 'Gimp', identifier_prefix: 'Gimp', symbol_prefix: 'gimp', export_packages: 'gimp-' + gimp_api_version, header: 'libgimp/gimp.h', includes: libgimp_gir_includes, extra_args: gir_args, include_directories: rootInclude, install: true, ) libgimpui_gir = gnome.generate_gir( libgimpmodule, libgimpui, libgimpwidgets, sources: libgimpui_introspectable_files, nsversion: gimp_api_version, namespace: 'GimpUi', identifier_prefix: 'Gimp', symbol_prefix: 'gimp', export_packages: 'gimp-ui-' + gimp_api_version, header: 'libgimp/gimpui.h', includes: [ libgimp_gir_includes, libgimp_gir[0] ], extra_args: gir_args, include_directories: rootInclude, install: true, ) if have_vala vapi_deps = [ 'babl-0.1', 'cairo-1.0', 'gdk-pixbuf-2.0', 'gegl-0.4', 'gio-2.0', 'glib-2.0', 'gobject-2.0', 'gtk+-3.0', ] libgimp_vapi = gnome.generate_vapi('gimp-' + gimp_api_version, sources: libgimp_gir[0], packages: vapi_deps, install: true, ) libgimpui_vapi = gnome.generate_vapi('gimp-ui-' + gimp_api_version, sources: libgimpui_gir[0], packages: vapi_deps + [ libgimp_vapi ], install: true, ) endif endif