Files
gimp/libgimp/meson.build
Jehan 326b2feddb extensions: do not build Vala plug-in without GObject Introspection.
Though GObject Introspection is normally not an option, the only case we
don't build it yet is when cross-compiling (as we haven't found the
right way to do it). So let's not build the Goat Exercise plug-in in
Vala in such case as we needed the introspected libgimp.
2020-10-18 00:34:02 +02:00

485 lines
11 KiB
Meson

gimpenums_notail = custom_target('gimpenums.c.notail',
input : [ 'gimpenums.h', ],
output: [ 'gimpenums.c.notail', ],
command: [
gimp_mkenums,
'--fhead','#include "config.h"\n'
+ '#include <gio/gio.h>\n'
+ '#include <gegl.h>\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',
'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',
'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()
have_gobject_introspection = false
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
have_gobject_introspection = true
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_ui', '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