Gimp/plug-ins/script-fu/scripts/meson.build
bootchk 98bf051e7a Fix #10044 more natural binding of PDB return values
Allow (script-fu-use-v3) in script, or in SF Console.

Definitive description is in script-fu/docs/using-v3-binding.md

Makes SF interpret v3 of SF dialect.
  - marshals single return value from PDB without wrapping in list
  - marshals boolean return value from PDB as #t #f instead of integers
  - marshals boolean to PDB from #t and #f or TRUE and FALSE
  - marshals void return from PDB as () instead of (#t), but that is moot.

The version of SF dialect is distinct from the version of the PDB API.

Dialect v3 is opt-in: the initial dialect of all SF tools remains v2.

Commit also allows #t,#f for defaults of SF-TOGGLE instead of TRUE, FALSE
but that is an independent enhancement (but closely related.)

Affects interpreter state of the current process.
Not an attribute per se of a plugin.
While in this state, a plugin should not call PDB procedures
which are themselves v2 script plugins,
or a few utility scripts in script-fu-util.scm,
but that is rarely needed.

Does not remove symbols TRUE and FALSE from dialect.

A script can also call (script-fu-use-v2) to revert.
That is also discouraged but useful e.g. for testing.
2024-03-09 07:21:50 -05:00

83 lines
1.8 KiB
Meson

subdir('images')
# scripts interpreted by extension-script-fu, installed to /scripts
scripts = [
'add-bevel.scm',
'addborder.scm',
'blend-anim.scm',
'burn-in-anim.scm',
'carve-it.scm',
'chrome-it.scm',
'circuit.scm',
'clothify.scm',
'coffee.scm',
'difference-clouds.scm',
'distress-selection.scm',
'drop-shadow.scm',
'font-map.scm',
'fuzzyborder.scm',
'gimp-online.scm',
'gradient-example.scm',
'guides-from-selection.scm',
'guides-new-percent.scm',
'guides-new.scm',
'guides-remove-all.scm',
'lava.scm',
'line-nova.scm',
'mkbrush.scm',
'old-photo.scm',
'palette-export.scm',
'paste-as-brush.scm',
'paste-as-pattern.scm',
'perspective-shadow.scm',
'plug-in-compat.init',
'reverse-layers.scm',
'ripply-anim.scm',
'round-corners.scm',
'script-fu-compat.init',
'script-fu-set-cmap.scm',
'script-fu-util.scm',
'script-fu.init',
'selection-round.scm',
'slide.scm',
'spinning-globe.scm',
'tileblur.scm',
'unsharp-mask.scm',
'waves-anim.scm',
'weave.scm',
'xach-effect.scm',
'clothify-v3.scm'
]
if not stable
scripts += [
'contactsheet.scm',
'test-sphere.scm',
'test-v3.scm',
]
endif
install_data(
scripts,
install_dir: gimpdatadir / 'scripts',
)
# scripts interpreted by gimp-script-fu-interpreter
# Each installed in subdirectory of /plug-in
# Each have a shebang and executable permission.
# Like other interpreted plugins.
# Lacking a shebang, a .interp file is needed to associate .scm suffix
scripts_independent = [
{ 'name': 'ts-helloworld' },
{ 'name': 'test-sphere-v3' },
]
foreach plugin : scripts_independent
name = plugin.get('name')
srcs = plugin.get('srcs', name + '.scm')
install_data(srcs,
install_dir: gimpplugindir / 'plug-ins' / name,
install_mode: 'rwxr-xr-x')
endforeach