2017-11-01 21:27:13 +08:00
|
|
|
pdbgen_backup = false
|
|
|
|
pdbgen_groups = false
|
|
|
|
|
|
|
|
pdb_names = [
|
|
|
|
'brush_select',
|
|
|
|
'brush',
|
|
|
|
'brushes',
|
|
|
|
'buffer',
|
|
|
|
'channel',
|
|
|
|
'context',
|
|
|
|
'debug',
|
|
|
|
'display',
|
|
|
|
'drawable_color',
|
|
|
|
'drawable_edit',
|
2023-08-27 07:02:37 +08:00
|
|
|
'drawable_select',
|
2017-11-01 21:27:13 +08:00
|
|
|
'drawable',
|
|
|
|
'dynamics',
|
|
|
|
'edit',
|
2019-09-11 23:10:47 +08:00
|
|
|
'file',
|
2017-11-01 21:27:13 +08:00
|
|
|
'floating_sel',
|
2022-09-06 07:28:35 +08:00
|
|
|
'font',
|
2017-11-01 21:27:13 +08:00
|
|
|
'font_select',
|
|
|
|
'fonts',
|
|
|
|
'gimp',
|
|
|
|
'gimprc',
|
|
|
|
'gradient_select',
|
|
|
|
'gradient',
|
|
|
|
'gradients',
|
app, libgimp, pdb, plug-ins: new GimpGroupLayer class in libgimp.
Also:
- renaming gimp_layer_group_new() to gimp_group_layer_new() in order to keep the
same name as in core code (i.e. GimpGroupLayer, not GimpLayerGroup).
- renaming gimp_image_merge_layer_group() to gimp_group_layer_merge()
- new functions: gimp_procedure_add_group_layer_argument(),
gimp_procedure_add_group_layer_aux_argument() and
gimp_procedure_add_group_layer_return_value().
This can be tested, e.g. in Python with these calls:
```py
i = Gimp.get_images()[0]
g = Gimp.GroupLayer.new(i, "hello")
i.insert_layer(g, None, 1)
g2 = Gimp.GroupLayer.new(i, "world")
i.insert_layer(g2, g, 1)
g.merge()
```
This was work started long ago, stored in an old stash which I finally
finish now! :-)
2024-07-06 23:24:11 +08:00
|
|
|
'group_layer',
|
2017-11-01 21:27:13 +08:00
|
|
|
'help',
|
|
|
|
'image_color_profile',
|
|
|
|
'image_convert',
|
|
|
|
'image_grid',
|
|
|
|
'image_guides',
|
|
|
|
'image_sample_points',
|
|
|
|
'image_select',
|
|
|
|
'image_transform',
|
|
|
|
'image_undo',
|
|
|
|
'image',
|
|
|
|
'item_transform',
|
|
|
|
'item',
|
|
|
|
'layer',
|
|
|
|
'message',
|
|
|
|
'paint_tools',
|
|
|
|
'palette_select',
|
|
|
|
'palette',
|
|
|
|
'palettes',
|
2024-07-09 07:39:51 +08:00
|
|
|
'path',
|
2017-11-01 21:27:13 +08:00
|
|
|
'pattern_select',
|
|
|
|
'pattern',
|
|
|
|
'patterns',
|
|
|
|
'pdb',
|
|
|
|
'plug_in_compat',
|
|
|
|
'plug_in',
|
|
|
|
'progress',
|
2023-05-31 22:12:04 +08:00
|
|
|
'resource',
|
2017-11-01 21:27:13 +08:00
|
|
|
'selection',
|
|
|
|
'text_layer',
|
|
|
|
'text_tool',
|
|
|
|
'unit',
|
|
|
|
]
|
|
|
|
|
|
|
|
pdb_sources = []
|
|
|
|
foreach name : pdb_names
|
|
|
|
pdb_sources += files('groups' / name + '.pdb')
|
|
|
|
endforeach
|
|
|
|
|
|
|
|
|
|
|
|
enum_headers = [
|
2022-08-31 07:07:27 +08:00
|
|
|
meson.project_source_root() + '/libgimpbase/gimpbaseenums.h',
|
|
|
|
meson.project_source_root() + '/libgimpconfig/gimpconfigenums.h',
|
|
|
|
meson.project_source_root() + '/app/operations/operations-enums.h',
|
|
|
|
meson.project_source_root() + '/app/core/core-enums.h',
|
|
|
|
meson.project_source_root() + '/app/paint/paint-enums.h'
|
2017-11-01 21:27:13 +08:00
|
|
|
]
|
|
|
|
|
|
|
|
# Perl environment
|
|
|
|
perlsrcdir = meson.current_source_dir()
|
|
|
|
perlbindir = meson.current_build_dir()
|
|
|
|
|
|
|
|
perl_env = [
|
|
|
|
'PDBGEN_BACKUP=' + (pdbgen_backup ? '1' : '0'),
|
|
|
|
'PDBGEN_GROUPS=' + (pdbgen_groups ? '1' : '0'),
|
2023-08-30 21:52:47 +08:00
|
|
|
'rootme=' + perlbindir,
|
|
|
|
'srcdir=' + perlsrcdir,
|
|
|
|
'destdir=' + meson.project_build_root(),
|
|
|
|
'builddir=' + meson.project_build_root(),
|
|
|
|
'topsrcdir=' + meson.project_source_root(),
|
2017-11-01 21:27:13 +08:00
|
|
|
]
|
|
|
|
|
|
|
|
groups_pl_content = '# This file is autogenerated\n'
|
|
|
|
groups_pl_content += '@groups = qw(\n'
|
|
|
|
foreach source : pdb_names
|
|
|
|
groups_pl_content += ' '+ source +'\n'
|
|
|
|
endforeach
|
|
|
|
groups_pl_content += ');\n'
|
|
|
|
|
|
|
|
|
|
|
|
# All perl files
|
|
|
|
|
|
|
|
groups_pl = custom_target('groups.pl',
|
|
|
|
input : [ ],
|
|
|
|
output: [ 'groups.pl', ],
|
|
|
|
command: [ 'echo', groups_pl_content, ],
|
|
|
|
capture: true,
|
|
|
|
)
|
|
|
|
|
2023-08-30 21:52:47 +08:00
|
|
|
enumgen_run = find_program('meson-enumgen.sh')
|
|
|
|
pdbgen_run = find_program('meson-pdbgen.sh')
|
|
|
|
enumcode_run = find_program('meson-enumcode.sh')
|
|
|
|
|
|
|
|
enums_pl = custom_target('enums.pl',
|
|
|
|
input : [ 'meson-enumgen.sh', 'enumgen.pl', 'enums-external.pl', enum_headers, ],
|
|
|
|
output: [ 'stamp-enumgen.h', ],
|
|
|
|
env: perl_env,
|
|
|
|
command: [
|
|
|
|
enumgen_run, perl, meson.project_source_root(), meson.project_build_root(),
|
|
|
|
enum_headers,
|
|
|
|
],
|
|
|
|
build_by_default: true,
|
|
|
|
)
|
|
|
|
|
|
|
|
pdbgen = custom_target('stamp-pdbgen.h',
|
|
|
|
input : [
|
|
|
|
files(
|
|
|
|
'meson-pdbgen.sh',
|
|
|
|
'pdbgen.pl',
|
|
|
|
|
|
|
|
'app.pl',
|
|
|
|
'lib.pl',
|
|
|
|
'pdb.pl',
|
|
|
|
'stddefs.pdb',
|
|
|
|
'util.pl',
|
|
|
|
),
|
|
|
|
enums_pl,
|
|
|
|
groups_pl,
|
|
|
|
pdb_sources,
|
|
|
|
],
|
|
|
|
output: [ 'stamp-pdbgen.h', ],
|
|
|
|
env: perl_env,
|
|
|
|
command: [
|
|
|
|
pdbgen_run, perl, meson.project_source_root(), meson.project_build_root()
|
|
|
|
],
|
|
|
|
build_by_default: true,
|
|
|
|
)
|
|
|
|
|
|
|
|
stamp_enumcode = custom_target('gimpenums.h',
|
|
|
|
input : [
|
|
|
|
files(
|
|
|
|
'meson-enumcode.sh',
|
|
|
|
'enumcode.pl',
|
|
|
|
'enumgen.pl',
|
|
|
|
|
|
|
|
'util.pl',
|
|
|
|
),
|
|
|
|
enums_pl,
|
|
|
|
enum_headers,
|
|
|
|
],
|
|
|
|
output: [ 'stamp-enumcode.h', ],
|
|
|
|
env: perl_env,
|
|
|
|
command: [
|
|
|
|
enumcode_run, perl, meson.project_source_root(), meson.project_build_root()
|
|
|
|
],
|
|
|
|
build_by_default: true,
|
|
|
|
)
|