From 452f9a39516d49bcd1047fcb1ca585caf68c9fe7 Mon Sep 17 00:00:00 2001 From: Bruno Lopes Date: Fri, 28 Nov 2025 18:20:18 -0300 Subject: [PATCH] build, extensions, plug-ins: Add support to MSVC's resource compiler too This allows us to support both rc.exe (MSVC) and windres.exe (GNU) --- app/meson.build | 10 ++++------ build/windows/gimp-plug-ins.rc.in | 4 ++-- build/windows/gimp.rc.in | 8 ++++---- extensions/goat-exercises/meson.build | 9 ++++----- meson.build | 10 ++++++++++ plug-ins/common/meson.build | 5 ++--- plug-ins/file-bmp/meson.build | 5 ++--- plug-ins/file-dds/meson.build | 5 ++--- plug-ins/file-exr/meson.build | 5 ++--- plug-ins/file-faxg3/meson.build | 5 ++--- plug-ins/file-fits/meson.build | 5 ++--- plug-ins/file-fli/meson.build | 5 ++--- plug-ins/file-icns/meson.build | 5 ++--- plug-ins/file-ico/meson.build | 5 ++--- plug-ins/file-jpeg/meson.build | 5 ++--- plug-ins/file-psd/meson.build | 5 ++--- plug-ins/file-raw/meson.build | 5 ++--- plug-ins/file-sgi/meson.build | 5 ++--- plug-ins/file-tiff/meson.build | 5 ++--- plug-ins/file-webp/meson.build | 5 ++--- plug-ins/filter-browser/meson.build | 5 ++--- plug-ins/flame/meson.build | 5 ++--- plug-ins/fractal-explorer/meson.build | 5 ++--- plug-ins/gfig/meson.build | 5 ++--- plug-ins/gimpressionist/meson.build | 5 ++--- plug-ins/gradient-flare/meson.build | 5 ++--- plug-ins/help-browser/meson.build | 5 ++--- plug-ins/help/meson.build | 5 ++--- plug-ins/ifs-compose/meson.build | 5 ++--- plug-ins/imagemap/meson.build | 5 ++--- plug-ins/lighting/meson.build | 5 ++--- plug-ins/map-object/meson.build | 5 ++--- plug-ins/metadata/meson.build | 10 ++++------ plug-ins/pagecurl/meson.build | 5 ++--- plug-ins/print/meson.build | 5 ++--- plug-ins/script-fu/interpreter/meson.build | 5 ++--- plug-ins/script-fu/meson.build | 11 +++++------ plug-ins/script-fu/server/meson.build | 11 +++++------ plug-ins/selection-to-path/meson.build | 5 ++--- plug-ins/twain/meson.build | 5 ++--- 40 files changed, 102 insertions(+), 131 deletions(-) diff --git a/app/meson.build b/app/meson.build index 2d366184d1..fb6efb55e7 100644 --- a/app/meson.build +++ b/app/meson.build @@ -166,9 +166,8 @@ if platform_windows console_rc_file = windows.compile_resources( gimp_app_console_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(console_rc_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(console_rc_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', console_rc_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', console_rc_name), ], include_directories: [ rootInclude, appInclude, @@ -184,9 +183,8 @@ if platform_windows gui_rc_file = windows.compile_resources( gimp_app_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(gui_rc_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(gui_rc_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', gui_rc_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', gui_rc_name), ], include_directories: [ rootInclude, appInclude, diff --git a/build/windows/gimp-plug-ins.rc.in b/build/windows/gimp-plug-ins.rc.in index a9adcd42a3..760acbeee5 100644 --- a/build/windows/gimp-plug-ins.rc.in +++ b/build/windows/gimp-plug-ins.rc.in @@ -63,5 +63,5 @@ BEGIN END #include "winuser.h" -1 ICON QUOTE(TOP_SRCDIR) "/gimp-data/images/logo/plug-ins.ico" -CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST QUOTE(TOP_SRCDIR) "/build/windows/gimp.manifest" +1 ICON "gimp-data/images/logo/plug-ins.ico" +CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "build/windows/gimp.manifest" diff --git a/build/windows/gimp.rc.in b/build/windows/gimp.rc.in index a4690c0e1f..ac74f05431 100644 --- a/build/windows/gimp.rc.in +++ b/build/windows/gimp.rc.in @@ -64,7 +64,7 @@ BEGIN END #include "winuser.h" -1 ICON QUOTE(TOP_SRCDIR) "/gimp-data/images/logo/gimp.ico" -2 ICON QUOTE(TOP_SRCDIR) "/gimp-data/images/logo/fileicon-xcf.ico" -3 ICON QUOTE(TOP_SRCDIR) "/gimp-data/images/logo/fileicon.ico" -CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST QUOTE(TOP_SRCDIR) "/build/windows/gimp.manifest" +1 ICON "gimp-data/images/logo/gimp.ico" +2 ICON "gimp-data/images/logo/fileicon-xcf.ico" +3 ICON "gimp-data/images/logo/fileicon.ico" +CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "build/windows/gimp.manifest" diff --git a/extensions/goat-exercises/meson.build b/extensions/goat-exercises/meson.build index 3006624eca..92a3e9b8c8 100644 --- a/extensions/goat-exercises/meson.build +++ b/extensions/goat-exercises/meson.build @@ -1,7 +1,7 @@ # C version extension_name = 'org.gimp.extension.goat-exercises' -plug_in_name = 'goat-exercise' +plugin_name = 'goat-exercise' plugin_sources = [ 'goat-exercise-c.c', @@ -11,9 +11,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plug_in_name + '-c.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plug_in_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'-c.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, @@ -21,7 +20,7 @@ if platform_windows ) endif -exe = executable(plug_in_name + '-c', +exe = executable(plugin_name + '-c', plugin_sources, dependencies: [ libgimpui_dep, diff --git a/meson.build b/meson.build index 91769a5a89..54a8cd6b8d 100644 --- a/meson.build +++ b/meson.build @@ -200,6 +200,16 @@ if platform_windows # AC_CHECK_PROG(ms_librarian, lib.exe, yes, no) # AM_CONDITIONAL(MS_LIB_AVAILABLE, test "x$ms_librarian" = xyes) # compiler_args += '-Wl,--large-address-aware' + + if cc.get_argument_syntax() == 'msvc' + # MSVC's rc.exe style: /DKey=Value' + rc_define_flag = [] + rc_define_fmt = '/D@0@=@1@' + else + # GNU's windres.exe style: --define Key="Value" + rc_define_flag = ['--define'] + rc_define_fmt = '@0@="@1@"' + endif endif # on OSX ObjC and C sources are mixed so adding objc to the linkflags diff --git a/plug-ins/common/meson.build b/plug-ins/common/meson.build index 512ed86120..420e4d1cdd 100644 --- a/plug-ins/common/meson.build +++ b/plug-ins/common/meson.build @@ -211,9 +211,8 @@ foreach plugin : common_plugins_list plugin_sources += windows.compile_resources( plugin_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/file-bmp/meson.build b/plug-ins/file-bmp/meson.build index cb7303ddf7..3de7ade65e 100644 --- a/plug-ins/file-bmp/meson.build +++ b/plug-ins/file-bmp/meson.build @@ -21,9 +21,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/file-dds/meson.build b/plug-ins/file-dds/meson.build index d72cd83d02..edc1268e7c 100644 --- a/plug-ins/file-dds/meson.build +++ b/plug-ins/file-dds/meson.build @@ -16,9 +16,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/file-exr/meson.build b/plug-ins/file-exr/meson.build index e5d483af9f..12bb079c29 100644 --- a/plug-ins/file-exr/meson.build +++ b/plug-ins/file-exr/meson.build @@ -12,9 +12,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/file-faxg3/meson.build b/plug-ins/file-faxg3/meson.build index 48ff38b2c7..e442c1d781 100644 --- a/plug-ins/file-faxg3/meson.build +++ b/plug-ins/file-faxg3/meson.build @@ -10,9 +10,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/file-fits/meson.build b/plug-ins/file-fits/meson.build index aced4f971a..9205113588 100644 --- a/plug-ins/file-fits/meson.build +++ b/plug-ins/file-fits/meson.build @@ -10,9 +10,8 @@ if cfitsio_dep.found() plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/file-fli/meson.build b/plug-ins/file-fli/meson.build index 3785aeeb19..76104be821 100644 --- a/plug-ins/file-fli/meson.build +++ b/plug-ins/file-fli/meson.build @@ -10,9 +10,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/file-icns/meson.build b/plug-ins/file-icns/meson.build index cda5e890e8..070fb0fef9 100644 --- a/plug-ins/file-icns/meson.build +++ b/plug-ins/file-icns/meson.build @@ -12,9 +12,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/file-ico/meson.build b/plug-ins/file-ico/meson.build index 2bff388e22..9a049ba7f3 100644 --- a/plug-ins/file-ico/meson.build +++ b/plug-ins/file-ico/meson.build @@ -12,9 +12,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/file-jpeg/meson.build b/plug-ins/file-jpeg/meson.build index 5bbec5af6e..636af48a56 100644 --- a/plug-ins/file-jpeg/meson.build +++ b/plug-ins/file-jpeg/meson.build @@ -14,9 +14,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/file-psd/meson.build b/plug-ins/file-psd/meson.build index 2e7fe73976..2194166da3 100644 --- a/plug-ins/file-psd/meson.build +++ b/plug-ins/file-psd/meson.build @@ -15,9 +15,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/file-raw/meson.build b/plug-ins/file-raw/meson.build index f896c2fed6..6738b170ee 100644 --- a/plug-ins/file-raw/meson.build +++ b/plug-ins/file-raw/meson.build @@ -23,9 +23,8 @@ foreach plugin_name : file_raw_exes plugin_sources += windows.compile_resources( plugin_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/file-sgi/meson.build b/plug-ins/file-sgi/meson.build index 038bb292b8..9062b47a73 100644 --- a/plug-ins/file-sgi/meson.build +++ b/plug-ins/file-sgi/meson.build @@ -10,9 +10,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/file-tiff/meson.build b/plug-ins/file-tiff/meson.build index a525f471f1..416e5be751 100644 --- a/plug-ins/file-tiff/meson.build +++ b/plug-ins/file-tiff/meson.build @@ -12,9 +12,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/file-webp/meson.build b/plug-ins/file-webp/meson.build index d5f90a2964..79364a75a1 100644 --- a/plug-ins/file-webp/meson.build +++ b/plug-ins/file-webp/meson.build @@ -14,9 +14,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/filter-browser/meson.build b/plug-ins/filter-browser/meson.build index 36f4e8a852..92e97ce9ea 100644 --- a/plug-ins/filter-browser/meson.build +++ b/plug-ins/filter-browser/meson.build @@ -9,9 +9,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/flame/meson.build b/plug-ins/flame/meson.build index 2bb55d794f..1c87b82d65 100644 --- a/plug-ins/flame/meson.build +++ b/plug-ins/flame/meson.build @@ -12,9 +12,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/fractal-explorer/meson.build b/plug-ins/fractal-explorer/meson.build index 808db1e504..ee18befcab 100644 --- a/plug-ins/fractal-explorer/meson.build +++ b/plug-ins/fractal-explorer/meson.build @@ -12,9 +12,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/gfig/meson.build b/plug-ins/gfig/meson.build index 58e630a19f..9716058f5c 100644 --- a/plug-ins/gfig/meson.build +++ b/plug-ins/gfig/meson.build @@ -32,9 +32,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/gimpressionist/meson.build b/plug-ins/gimpressionist/meson.build index 819041f863..e94ac817d4 100644 --- a/plug-ins/gimpressionist/meson.build +++ b/plug-ins/gimpressionist/meson.build @@ -30,9 +30,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/gradient-flare/meson.build b/plug-ins/gradient-flare/meson.build index fefe3d3423..edb06ddbb5 100644 --- a/plug-ins/gradient-flare/meson.build +++ b/plug-ins/gradient-flare/meson.build @@ -11,9 +11,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/help-browser/meson.build b/plug-ins/help-browser/meson.build index 8a925e6dd7..a275901557 100644 --- a/plug-ins/help-browser/meson.build +++ b/plug-ins/help-browser/meson.build @@ -18,9 +18,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/help/meson.build b/plug-ins/help/meson.build index 09e3d7fc73..2910b9bc3e 100644 --- a/plug-ins/help/meson.build +++ b/plug-ins/help/meson.build @@ -14,9 +14,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/ifs-compose/meson.build b/plug-ins/ifs-compose/meson.build index fb48f375be..638f0fa025 100644 --- a/plug-ins/ifs-compose/meson.build +++ b/plug-ins/ifs-compose/meson.build @@ -16,9 +16,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/imagemap/meson.build b/plug-ins/imagemap/meson.build index cf9a404f6f..d3e55cbf32 100644 --- a/plug-ins/imagemap/meson.build +++ b/plug-ins/imagemap/meson.build @@ -72,9 +72,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/lighting/meson.build b/plug-ins/lighting/meson.build index 11a107211d..e9268ece83 100644 --- a/plug-ins/lighting/meson.build +++ b/plug-ins/lighting/meson.build @@ -17,9 +17,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/map-object/meson.build b/plug-ins/map-object/meson.build index 3ab6110eba..be4883f028 100644 --- a/plug-ins/map-object/meson.build +++ b/plug-ins/map-object/meson.build @@ -16,9 +16,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/metadata/meson.build b/plug-ins/metadata/meson.build index ea01ee0828..b160150606 100644 --- a/plug-ins/metadata/meson.build +++ b/plug-ins/metadata/meson.build @@ -18,9 +18,8 @@ if platform_windows plugin_sources += windows.compile_resources( plugin_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, @@ -59,9 +58,8 @@ if platform_windows plugin_sources += windows.compile_resources( plugin_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/pagecurl/meson.build b/plug-ins/pagecurl/meson.build index 09a357be2c..65af3b98e5 100644 --- a/plug-ins/pagecurl/meson.build +++ b/plug-ins/pagecurl/meson.build @@ -42,9 +42,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/print/meson.build b/plug-ins/print/meson.build index 1b878526b8..b19183969b 100644 --- a/plug-ins/print/meson.build +++ b/plug-ins/print/meson.build @@ -18,9 +18,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/script-fu/interpreter/meson.build b/plug-ins/script-fu/interpreter/meson.build index 5d17d31895..e6ea790cf3 100644 --- a/plug-ins/script-fu/interpreter/meson.build +++ b/plug-ins/script-fu/interpreter/meson.build @@ -14,9 +14,8 @@ if not meson.is_cross_build() plugin_sources += windows.compile_resources( plugin_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(executable_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(executable_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', executable_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', executable_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/script-fu/meson.build b/plug-ins/script-fu/meson.build index d37a4d3315..704285515c 100644 --- a/plug-ins/script-fu/meson.build +++ b/plug-ins/script-fu/meson.build @@ -17,7 +17,7 @@ if not stable or not release or gimp_version.endswith('+git') endif -executable_name = 'script-fu' +plugin_name = 'script-fu' # script-fu.c registers registers many PDB procs in the PDB. # Several source files implement the PDB procedures of type PLUGIN, of similar names. @@ -37,9 +37,8 @@ if not meson.is_cross_build() plugin_sources += windows.compile_resources( plugin_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(executable_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(executable_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, @@ -70,7 +69,7 @@ if not meson.is_cross_build() # libscriptfu is installed to standard place; no rpath necessary - plugin_exe = executable(executable_name, + plugin_exe = executable(plugin_name, plugin_sources, dependencies: [ libgimpui_dep, @@ -86,6 +85,6 @@ if not meson.is_cross_build() link_with : [libscriptfuconsole, libscriptfu ], win_subsystem: 'windows', install: true, - install_dir: gimpplugindir / 'plug-ins' / executable_name) + install_dir: gimpplugindir / 'plug-ins' / plugin_name) plugin_executables += [plugin_exe.full_path()] endif diff --git a/plug-ins/script-fu/server/meson.build b/plug-ins/script-fu/server/meson.build index 2d295d21ec..52679200cd 100644 --- a/plug-ins/script-fu/server/meson.build +++ b/plug-ins/script-fu/server/meson.build @@ -1,7 +1,7 @@ scriptfuInclude = include_directories('..') -executable_name = 'script-fu-server' +plugin_name = 'script-fu-server' plugin_sourcecode = [ 'script-fu-server.c', @@ -14,9 +14,8 @@ if not meson.is_cross_build() plugin_sources += windows.compile_resources( plugin_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(executable_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(executable_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, @@ -30,7 +29,7 @@ if not meson.is_cross_build() # Note the server rolls its own log, no need for a different G_LOG_DOMAIN - plugin_exe = executable(executable_name, + plugin_exe = executable(plugin_name, plugin_sources, dependencies: [ libgimpui_dep, @@ -46,5 +45,5 @@ if not meson.is_cross_build() link_with : libscriptfu, win_subsystem: 'windows', install: true, - install_dir: gimpplugindir / 'plug-ins' / executable_name) + install_dir: gimpplugindir / 'plug-ins' / plugin_name) endif diff --git a/plug-ins/selection-to-path/meson.build b/plug-ins/selection-to-path/meson.build index 99ebeeb531..25db3346af 100644 --- a/plug-ins/selection-to-path/meson.build +++ b/plug-ins/selection-to-path/meson.build @@ -16,9 +16,8 @@ if platform_windows plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude, diff --git a/plug-ins/twain/meson.build b/plug-ins/twain/meson.build index 2f0dfd1218..8ebe789938 100644 --- a/plug-ins/twain/meson.build +++ b/plug-ins/twain/meson.build @@ -15,9 +15,8 @@ plugin_sources = plugin_sourcecode plugin_sources += windows.compile_resources( gimp_plugins_rc, args: [ - '--define', 'ORIGINALFILENAME_STR="@0@"'.format(plugin_name+'.exe'), - '--define', 'INTERNALNAME_STR="@0@"' .format(plugin_name), - '--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()), + rc_define_flag, rc_define_fmt.format('ORIGINALFILENAME_STR', plugin_name+'.exe'), + rc_define_flag, rc_define_fmt.format('INTERNALNAME_STR', plugin_name), ], include_directories: [ rootInclude, appInclude,