1
1
mirror of https://gitlab.gnome.org/GNOME/gimp.git synced 2025-10-05 21:02:42 +02:00

Compare commits

...

20 Commits

Author SHA1 Message Date
Alx Sa
9243da158f Merge branch 'alxsa-lcms2-fast-float' into 'master'
Issue #9536: Enable LCMS2 Fast Float plug-in

Closes #9536

See merge request GNOME/gimp!2391
2025-10-05 18:16:17 +00:00
Bruno Lopes
ebd6e64dc8 build/linux: Fix Flatpak building after gexiv2 dep declaration 2025-10-05 14:53:41 -03:00
Bruno Lopes
4768a4283d gitlab-ci: Add comment explaining Flatpak timeout 2025-10-05 13:45:55 -03:00
Bruno Lopes
fe4a698928 gitlab-ci: Bump Flatpak timeout for 90min again for rebuilding purposes
When we bump some dependency (e.g. Poppler), even the ones which
don't link to it will be rebuild, so 30min is not enough even
with the ORAS caching.
2025-10-05 13:41:27 -03:00
Bruno Lopes
d8d73266bc build/linux: Update poppler module to 25.10
Synced from
6d4124f7b8
2025-10-04 18:51:18 -03:00
Bruno Lopes
356c2baec5 gitlab-ci, build/windows: Remove forgotten comment about fixed #12284 2025-10-04 16:16:49 -03:00
Bruno Lopes
aea7042aa1 meson: Support Windows native paths (aka backslashes) on -Dprefix
Closes: #12284
2025-10-04 16:12:00 -03:00
Alan Mortensen
97944a5415 Update Danish translation
(cherry picked from commit d81cfcc325)
2025-10-04 12:48:26 +00:00
Alx Sa
a5182a010f tools: Fix missing cursor for MyPaint Brush tool
Resolves #15001
In the MyPaint Brushes v2 port (ea8b9dc1),
I implemented a cursor_update () function from the
parent class. However, I did not call the parent's
version of the function afterwards, so the MyPaint
Brush cursor was not being redrawn. This patch
adds the call to fix the cursor display issue.
2025-10-03 22:14:52 +00:00
Øyvind Kolås
9c2c5ff183 meson, app: depend on GEGL-0.4.64 2025-10-03 23:56:36 +02:00
Bruno Lopes
f09007507f Declare gexiv2 dependency on many targets (due to gimpmetadata.h)
Our build files were relying 'sysroot' to find gexiv2.h but this is
not possible with Apple Clang om which sysroot points to macOS SDK.
So, exotic environments like Homebrew were failing. Let's fix this.
2025-10-03 18:31:53 -03:00
Bruno Lopes
2b91551f4e gitlab-ci: Complete cbe56ff3 2025-10-03 09:03:26 -03:00
Bruno Lopes
cbe56ff388 gitlab-ci: Remove dangling MSYSTEM_PREFIX on Win job names
It makes them consistent with other non-Windows jobs so
easier to read.
2025-10-02 21:37:33 -03:00
Anders Jonsson
7cec3f52b9 .gitlab: fix template typo 2025-10-03 00:54:09 +02:00
Alx Sa
81c67e5614 tools: Don't commit Filter Tool without a filter
The Filter Tool is a "hidden" tool that we switch to
when applying a filter. Like other tools, it commits when
we save our image. However, we may no longer have an
active filter in the tool when we do so (like, after applying
an NDE filter). Because we check the drawable from the
filter to confirm whether we should force NDE or not,
this can cause a CRITICAL when we try to access a now
non-existent filter.

This patch extends the "if (filter_tool->filter)" check to
cover the full commit check process, to prevent the bug.
2025-10-02 12:07:25 +00:00
Øyvind Kolås
67fa72a94e meson, app: depend on babl-0.1.116 2025-10-02 13:22:29 +02:00
Yuri Chornoivan
6587256c3a Update Ukrainian translation 2025-10-02 08:21:41 +00:00
Bruno Lopes
ad9dbf2c8b tools: Drop bashism/gnushism in read command 2025-10-01 21:26:25 -03:00
Bruno Lopes
2f0bfc569b meson: Fix wrong debugging_format detection on clang-cl and msvc 2025-10-01 20:13:33 -03:00
Alx Sa
67f067183d libgimpcolor: Enable LCMS2 Fast Float plug-in
Adds support for loading and using the Little CMS
Fast Float plug-in. This plug-in should speed up
color conversions for 8/16 bit and floating point
precision operations. It can be turned off by changing
the "Optimize for" setting from Speed to Quality.
2025-08-10 10:49:02 +00:00
44 changed files with 569 additions and 483 deletions

View File

@@ -395,7 +395,8 @@ gimp-debian:
MESON_DIST: 0
before_script:
- export GIMP_PREFIX="${CI_PROJECT_DIR}/_install"
timeout: 30m
#30min is enough only if no module was updated/rebuilt, we need more time in case of module bumps
timeout: 90m
deps-flatpak:
extends: .flatpak
@@ -532,10 +533,7 @@ gimp-snap:
STORE_OPTION: '-Dms-store=true'
parallel:
matrix:
- RUNNER: windows-aarch64
MSYSTEM_PREFIX: clangarm64
- RUNNER: win32-ps
MSYSTEM_PREFIX: clang64
- RUNNER: [windows-aarch64, win32-ps]
tags:
- $RUNNER
variables:
@@ -543,8 +541,8 @@ gimp-snap:
#meson.build forces non-relocatable .pc. See: https://github.com/mesonbuild/meson/issues/14346
PKGCONF_RELOCATABLE_OPTION: '-Dpkgconfig.relocatable=true'
before_script:
# FIXME:'gimpenv' have buggy code about Windows paths. See: https://gitlab.gnome.org/GNOME/gimp/-/issues/12284
- $GIMP_PREFIX = "$PWD\_install-$MSYSTEM_PREFIX".Replace('\', '/')
- if (-not $env:MSYSTEM_PREFIX) { $env:MSYSTEM_PREFIX = if ((Get-WmiObject Win32_ComputerSystem).SystemType -like 'ARM64*') { 'clangarm64' } else { 'clang64' }}
- $GIMP_PREFIX = "$PWD\_install-$env:MSYSTEM_PREFIX"
timeout: 30m
.win_environ: &WIN_ENVIRON
@@ -565,9 +563,9 @@ deps-win:
- build\windows\1_build-deps-msys2.ps1
artifacts:
paths:
- _install-$MSYSTEM_PREFIX/
- babl/_build-$MSYSTEM_PREFIX/meson-logs/meson-log.txt
- gegl/_build-$MSYSTEM_PREFIX/meson-logs/meson-log.txt
- _install-*/
- babl/_build-*/meson-logs/meson-log.txt
- gegl/_build-*/meson-logs/meson-log.txt
expire_in: 2 hours
gimp-win:
@@ -583,14 +581,14 @@ gimp-win:
- build\windows\2_build-gimp-msys2.ps1
artifacts:
paths:
- gimp-$MSYSTEM_PREFIX/
- _build-$MSYSTEM_PREFIX/meson-logs/meson-log.txt
- _build-$MSYSTEM_PREFIX/done-dll.list
- gimp-*/
- _build-*/meson-logs/meson-log.txt
- _build-*/done-dll.list
# Needed by dist-installer-weekly and dist-store-weekly
- _build-$MSYSTEM_PREFIX/config.h
- _build-$MSYSTEM_PREFIX/plug-ins/file_associations.list
- _build-$MSYSTEM_PREFIX/build/windows/installer/
- _build-$MSYSTEM_PREFIX/build/windows/store/
- _build-*/config.h
- _build-*/plug-ins/file_associations.list
- _build-*/build/windows/installer/
- _build-*/build/windows/store/
expire_in: 2 days
@@ -599,12 +597,10 @@ gimp-win:
extends: .win
parallel:
matrix:
- RUNNER: win32-ps
MSYSTEM_PREFIX: mingw32
- RUNNER: [win32-ps]
variables:
MSYSTEM_PREFIX: mingw32
MINGW_PACKAGE_PREFIX: mingw-w64-i686
CC: cc
CXX: c++
deps-win-eol:
extends: .win-eol

View File

@@ -24,7 +24,7 @@ https://gitlab.gnome.org/GNOME/gimp/-/issues/?sort=updated_desc&state=all&label_
- "Be considerate and respectful". This is our main rule.
E.g. avoid negative emotional writing which only generates more upsetting
interactions.
- Stay on topic by writting only one bug per report created.
- Stay on topic by writing only one bug per report created.
- Add full (not cropped) screenshots or other files using the clip button on GitLab. -->
### Reproduction

View File

@@ -12,4 +12,4 @@
Only human created works please!
- You can request the devs to allow installable packages to be
generated from this MR by writting ~Package: in the comments -->
generated from this MR by writing ~Package: in the comments -->

View File

@@ -101,6 +101,6 @@ libappactions = static_library('appactions',
include_directories: [ rootInclude, rootAppInclude, ],
c_args: '-DG_LOG_DOMAIN="Gimp-Actions"',
dependencies: [
gegl, gdk_pixbuf, gtk3,
gegl, gdk_pixbuf, gtk3, gexiv2,
],
)

View File

@@ -44,7 +44,7 @@ libappconfig = static_library('appconfig',
include_directories: [ rootInclude, rootAppInclude, ],
c_args: '-DG_LOG_DOMAIN="Gimp-Config"',
dependencies: [
cairo, gegl, gdk_pixbuf, gio, gio_specific, libmypaint,
cairo, gegl, gdk_pixbuf, gexiv2, gio, gio_specific, libmypaint,
],
)

View File

@@ -122,6 +122,6 @@ libappdisplay = static_library('appdisplay',
include_directories: [ rootInclude, rootAppInclude, ],
c_args: '-DG_LOG_DOMAIN="Gimp-Display"',
dependencies: [
gegl, gtk3, cairo,
gegl, gtk3, cairo, gexiv2
],
)

View File

@@ -16,6 +16,7 @@ libappfiledata = static_library('appfiledata',
cairo,
gdk_pixbuf,
gegl,
gexiv2,
libarchive,
],
)

View File

@@ -11,6 +11,6 @@ libappfile = static_library('appfile',
include_directories: [ rootInclude, rootAppInclude, ],
c_args: '-DG_LOG_DOMAIN="Gimp-File"',
dependencies: [
gegl, gdk_pixbuf,
gegl, gdk_pixbuf, gexiv2
],
)

View File

@@ -56,5 +56,6 @@ libappgegl = static_library('appgegl',
cairo,
gegl,
gdk_pixbuf,
gexiv2
],
)

View File

@@ -31,7 +31,7 @@ libappgui = static_library('appgui',
include_directories: [ rootInclude, rootAppInclude, ],
c_args: '-DG_LOG_DOMAIN="Gimp-GUI"',
dependencies: [
cairo, gegl, gdk_pixbuf, gio_specific, gtk3
cairo, gegl, gdk_pixbuf, gexiv2, gio_specific, gtk3
],
install: false,
)

View File

@@ -16,6 +16,6 @@ libappmenus = static_library('appmenus',
include_directories: [ rootInclude, rootAppInclude, ],
c_args: '-DG_LOG_DOMAIN="Gimp-Menus"',
dependencies: [
gegl, gtk3
gegl, gtk3, gexiv2
],
)

View File

@@ -25,6 +25,6 @@ libapplayermodeslegacy = static_library('applayermodeslegacy',
include_directories: [ rootInclude, rootAppInclude, ],
c_args: '-DG_LOG_DOMAIN="Gimp-Layer-Modes-Legacy"',
dependencies: [
cairo, gegl, gdk_pixbuf,
cairo, gegl, gdk_pixbuf, gexiv2
],
)

View File

@@ -50,5 +50,6 @@ libapplayermodes = static_library('applayermodes',
cairo,
gegl,
gdk_pixbuf,
gexiv2
],
)

View File

@@ -66,7 +66,7 @@ libappoperations = static_library('appoperations',
include_directories: [ rootInclude, rootAppInclude, ],
c_args: '-DG_LOG_DOMAIN="Gimp-Operations"',
dependencies: [
cairo, gegl, gdk_pixbuf,
cairo, gegl, gdk_pixbuf, gexiv2
],
)

View File

@@ -63,6 +63,6 @@ libapppaint = static_library('apppaint',
include_directories: [ rootInclude, rootAppInclude, ],
c_args: '-DG_LOG_DOMAIN="Gimp-Paint"',
dependencies: [
cairo, gegl, gdk_pixbuf, libmypaint,
cairo, gegl, gdk_pixbuf, gexiv2, libmypaint,
],
)

View File

@@ -22,6 +22,6 @@ libapppath = static_library('apppath',
include_directories: [ rootInclude, rootAppInclude, ],
c_args: '-DG_LOG_DOMAIN="Gimp-Path"',
dependencies: [
cairo, gegl, gdk_pixbuf,
cairo, gegl, gdk_pixbuf, gexiv2
],
)

View File

@@ -75,7 +75,7 @@ libapppdb = static_library('apppdb',
include_directories: [ rootInclude, rootAppInclude, ],
c_args: '-DG_LOG_DOMAIN="Gimp-PDB"',
dependencies: [
cairo, gegl, gdk_pixbuf,
cairo, gegl, gdk_pixbuf, gexiv2
],
)
@@ -85,7 +85,7 @@ libappinternalprocs = static_library('appinternalprocs',
include_directories: [ rootInclude, rootAppInclude, ],
c_args: '-DG_LOG_DOMAIN="Gimp-PDB"',
dependencies: [
cairo, gegl, gdk_pixbuf, pangocairo, pango,
cairo, gegl, gdk_pixbuf, gexiv2, pangocairo, pango,
],
sources: [
pdbgen

View File

@@ -56,6 +56,6 @@ libappplugin = static_library('appplug-in',
include_directories: [ rootInclude, rootAppInclude, ],
c_args: '-DG_LOG_DOMAIN="Gimp-Plug-In"',
dependencies: [
cairo, gegl, gdk_pixbuf,
cairo, gegl, gdk_pixbuf, gexiv2,
],
)

View File

@@ -28,6 +28,6 @@ libapppropgui = static_library('apppropgui',
include_directories: [ rootInclude, rootAppInclude, ],
c_args: '-DG_LOG_DOMAIN="Gimp-PropGUI"',
dependencies: [
gegl, gtk3,
gegl, gtk3, gexiv2
],
)

View File

@@ -464,7 +464,7 @@ sanity_check_babl (void)
#define BABL_REQUIRED_MAJOR 0
#define BABL_REQUIRED_MINOR 1
#define BABL_REQUIRED_MICRO 114
#define BABL_REQUIRED_MICRO 116
babl_get_version (&babl_major_version,
&babl_minor_version,
@@ -502,7 +502,7 @@ sanity_check_gegl (void)
#define GEGL_REQUIRED_MAJOR 0
#define GEGL_REQUIRED_MINOR 4
#define GEGL_REQUIRED_MICRO 62
#define GEGL_REQUIRED_MICRO 64
gegl_get_version (&gegl_major_version,
&gegl_minor_version,

View File

@@ -42,6 +42,6 @@ libapptext = static_library('apptext',
include_directories: [ rootInclude, rootAppInclude, ],
c_args: '-DG_LOG_DOMAIN="Gimp-Text"',
dependencies: [
gegl, gdk_pixbuf, harfbuzz, pangocairo, pangoft2,
gegl, gdk_pixbuf, gexiv2, harfbuzz, pangocairo, pangoft2,
],
)

View File

@@ -562,48 +562,50 @@ gimp_filter_tool_control (GimpTool *tool,
case GIMP_TOOL_ACTION_COMMIT:
if (filter_tool->filter)
drawable = gimp_drawable_filter_get_drawable (filter_tool->filter);
/* TODO: Expand non-destructive editing to other drawables
* besides layers and channels */
if ((! GIMP_IS_LAYER (drawable) && ! GIMP_IS_CHANNEL (drawable)) ||
GIMP_IS_LAYER_MASK (drawable) ||
(! filter_tool->existing_filter && options->merge_filter))
non_destructive = FALSE;
if (filter_tool->operation)
{
gegl_node_get (filter_tool->operation,
"operation", &operation_name,
NULL);
drawable = gimp_drawable_filter_get_drawable (filter_tool->filter);
if (! g_strcmp0 (operation_name, "gegl:nop"))
/* TODO: Expand non-destructive editing to other drawables
* besides layers and channels */
if ((! GIMP_IS_LAYER (drawable) && ! GIMP_IS_CHANNEL (drawable)) ||
GIMP_IS_LAYER_MASK (drawable) ||
(! filter_tool->existing_filter && options->merge_filter))
non_destructive = FALSE;
/* TODO: Once we can serialize GimpDrawable, remove so that filters with
* aux nodes can be non-destructive */
if (gegl_node_has_pad (filter_tool->operation, "aux") ||
/* GEGL graph is dangerous even without using third-party
* effects, because it may run any effect. E.g. it can
* run sink effects overwriting any local files with user
* rights. We leave a way in through an environment
* variable because it is a useful tool for GEGL ops
* developers but it should only be set while knowing what
* you are doing.
*/
(g_strcmp0 (operation_name, "gegl:gegl") == 0 &&
g_getenv ("GIMP_ALLOW_GEGL_GRAPH_LAYER_EFFECT") == NULL))
non_destructive = FALSE;
if (filter_tool->operation)
{
gegl_node_get (filter_tool->operation,
"operation", &operation_name,
NULL);
g_free (operation_name);
if (! g_strcmp0 (operation_name, "gegl:nop"))
non_destructive = FALSE;
/* TODO: Once we can serialize GimpDrawable, remove so that
* filters with aux nodes can be non-destructive */
if (gegl_node_has_pad (filter_tool->operation, "aux") ||
/* GEGL graph is dangerous even without using third-party
* effects, because it may run any effect. E.g. it can
* run sink effects overwriting any local files with user
* rights. We leave a way in through an environment
* variable because it is a useful tool for GEGL ops
* developers but it should only be set while knowing what
* you are doing.
*/
(g_strcmp0 (operation_name, "gegl:gegl") == 0 &&
g_getenv ("GIMP_ALLOW_GEGL_GRAPH_LAYER_EFFECT") == NULL))
non_destructive = FALSE;
g_free (operation_name);
}
/* Ensure that filters applied to group, vector or link layers are
* non-destructive */
if (GIMP_IS_GROUP_LAYER (drawable) ||
gimp_item_is_vector_layer (GIMP_ITEM (drawable)) ||
gimp_item_is_link_layer (GIMP_ITEM (drawable)))
non_destructive = TRUE;
}
/* Ensure that filters applied to group, vector or link layers are non-destructive */
if (GIMP_IS_GROUP_LAYER (drawable) ||
gimp_item_is_vector_layer (GIMP_ITEM (drawable)) ||
gimp_item_is_link_layer (GIMP_ITEM (drawable)))
non_destructive = TRUE;
gimp_filter_tool_commit (filter_tool, non_destructive);
break;
}

View File

@@ -127,6 +127,8 @@ static void gimp_mybrush_tool_cursor_update (GimpTool *tool,
options->view_zoom = (gimp_zoom_model_get_factor (shell->zoom) > 0.0f) ?
gimp_zoom_model_get_factor (shell->zoom) : 1.0f;
options->view_rotation = shell->rotate_angle;
GIMP_TOOL_CLASS (parent_class)->cursor_update (tool, coords, state, display);
}
static void

View File

@@ -143,6 +143,6 @@ libapptools = static_library('apptools',
include_directories: [ rootInclude, rootAppInclude, ],
c_args: '-DG_LOG_DOMAIN="Gimp-Tools"',
dependencies: [
gegl, gtk3,
gegl, gtk3, gexiv2,
],
)

View File

@@ -280,6 +280,6 @@ libappwidgets = static_library('appwidgets',
include_directories: [ rootInclude, rootAppInclude, ],
c_args: '-DG_LOG_DOMAIN="Gimp-Widgets"',
dependencies: [
gegl, gtk3,
gegl, gtk3, gexiv2,
],
)

View File

@@ -13,6 +13,6 @@ libappxcf = static_library('appxcf',
include_directories: [ rootInclude, rootAppInclude, ],
c_args: '-DG_LOG_DOMAIN="Gimp-XCF"',
dependencies: [
cairo, gegl, gdk_pixbuf, zlib
cairo, gegl, gdk_pixbuf, gexiv2, zlib
],
)

View File

@@ -99,10 +99,8 @@
],
"buildsystem": "meson",
"config-opts": [
"-Dintrospection=false",
"-Dpython3=false",
"-Dtools=false",
"-Dvapi=false"
"-Dtools=false"
],
"modules": [
{
@@ -245,8 +243,8 @@
"sources": [
{
"type": "archive",
"url": "https://poppler.freedesktop.org/poppler-25.09.1.tar.xz",
"sha256": "0c1091d01d3dd1664a13816861e812d02b29201e96665454b81b52d261fad658",
"url": "https://poppler.freedesktop.org/poppler-25.10.0.tar.xz",
"sha256": "6b5e9bb64dabb15787a14db1675291c7afaf9387438cc93a4fb7f6aec4ee6fe0",
"x-checker-data": {
"type": "anitya",
"project-id": 3686,

View File

@@ -32,8 +32,7 @@ if ($GITLAB_CI)
# Prepare env
if (-not $GIMP_PREFIX)
{
#FIXME:'gimpenv' have buggy code about Windows paths. See: https://gitlab.gnome.org/GNOME/gimp/-/issues/12284
$GIMP_PREFIX = "$PWD\..\_install".Replace('\', '/')
$GIMP_PREFIX = "$PWD\..\_install"
}
Invoke-Expression ((Get-Content .gitlab-ci.yml | Select-String 'win_environ\[' -Context 0,7) -replace '> ','' -replace '- ','')

View File

@@ -48,7 +48,7 @@ if have_vala and have_gobject_introspection
'goat-exercise-vala.vala',
include_directories: [ rootInclude, ],
dependencies: [
libgimp_vapi, libgimpui_vapi, gtk3, gegl, math,
libgimp_vapi, libgimpui_vapi, libgimpui_dep, math,
],
c_args: [
'-DGETTEXT_PACKAGE="@0@"'.format('org.gimp.extension.goat-exercises'),

View File

@@ -421,6 +421,7 @@ libgimp_dep = declare_dependency(
cairo,
gdk_pixbuf,
gegl,
gexiv2,
],
link_with: [
libgimp,
@@ -438,7 +439,6 @@ libgimpui = library('gimpui-'+ gimp_api_version,
libgimpui_sources,
dependencies: [
libgimp_dep,
gexiv2,
gtk3,
],
sources: [

View File

@@ -26,6 +26,9 @@
#include <string.h>
#include <lcms2.h>
#ifdef HAVE_LCMS_FAST_FLOAT_PLUGIN
#include <lcms2_fast_float.h>
#endif
#include <gio/gio.h>
#include <gegl.h>
@@ -128,6 +131,10 @@ gimp_color_transform_class_init (GimpColorTransformClass *klass)
G_TYPE_NONE, 1,
G_TYPE_DOUBLE);
#ifdef HAVE_LCMS_FAST_FLOAT_PLUGIN
cmsPlugin (cmsFastFloatExtensions ());
#endif
cmsSetLogErrorHandler (lcms_error_handler);
}

View File

@@ -36,7 +36,7 @@ libgimpcolor = library('gimpcolor-' + gimp_api_version,
libgimpcolor_sources,
include_directories: rootInclude,
dependencies: [
cairo, gdk_pixbuf, gegl, lcms, math,
cairo, gdk_pixbuf, gegl, gexiv2, lcms, math,
],
c_args: [ '-DG_LOG_DOMAIN="LibGimpColor"', '-DGIMP_COLOR_COMPILATION', ],
link_with: [ libgimpbase, ],

View File

@@ -70,7 +70,7 @@ libgimpconfig = library('gimpconfig-' + gimp_api_version,
libgimpconfig_sources,
include_directories: rootInclude,
dependencies: [
cairo, gdk_pixbuf, gegl, gio, gio_specific,
cairo, gdk_pixbuf, gegl, gexiv2, gio, gio_specific,
],
c_args: [ '-DG_LOG_DOMAIN="LibGimpConfig"', '-DGIMP_CONFIG_COMPILATION', ],
link_with: [

View File

@@ -19,7 +19,7 @@ libgimpmodule = library('gimpmodule-' + gimp_api_version,
libgimpmodule_sources,
include_directories: rootInclude,
dependencies: [
gegl, gio, glib, gmodule,
gegl, gexiv2, gio, glib, gmodule,
],
c_args: [ '-DG_LOG_DOMAIN="LibGimpModule"', '-DGIMP_MODULE_COMPILATION', ],
link_with: [

View File

@@ -65,7 +65,7 @@ libgimpthumb = library('gimpthumb-'+ gimp_api_version,
libgimpthumb_sources,
include_directories: rootInclude,
dependencies: [
gegl, glib, gobject, gdk_pixbuf, gio,
gegl, gexiv2, glib, gobject, gdk_pixbuf, gio,
],
c_args: [ '-DG_LOG_DOMAIN="LibGimpThumb"', '-DGIMP_THUMB_COMPILATION', ],
link_with: [

View File

@@ -207,7 +207,7 @@ libgimpwidgets = library('gimpwidgets-'+ gimp_api_version,
libgimpwidgets_sources,
include_directories: rootInclude,
dependencies: [
gegl, gtk3, lcms, math, mscms
gegl, gexiv2, gtk3, lcms, math, mscms
],
c_args: [ '-DG_LOG_DOMAIN="LibGimpWidgets"', '-DGIMP_WIDGETS_COMPILATION', ],
link_with: [

View File

@@ -128,7 +128,7 @@ fs = import('fs')
cc = meson.get_compiler('c')
cxx = meson.get_compiler('cpp')
prefix = get_option('prefix')
prefix = get_option('prefix').replace('\\', '/')
buildtype = get_option('buildtype')
exec_ver = '-' + gimp_app_version
@@ -334,6 +334,9 @@ if get_option('buildtype') == 'debug' or get_option('buildtype') == 'debugoptimi
if not platform_windows
# DWARF symbols for GCC and LLDB on Unix
debugging_format = 'native'
elif cc.get_argument_syntax() == 'msvc'
# CodeView symbols for DIA or DbgHelp debuggers and LLDB on Windows
debugging_format = 'Native'
elif platform_windows and get_option('win-debugging') == 'native' and cc.has_argument('-gcodeview') and cc.has_link_argument('-Wl,--pdb=') and cc.get_id() == 'clang'
# CodeView symbols for DIA or DbgHelp debuggers and LLDB on Windows
debugging_format = 'native'
@@ -406,7 +409,7 @@ winsock = platform_windows ? cc.find_library('ws2_32') : no_dep
mscms = platform_windows ? cc.find_library('mscms') : no_dep
atk_minver = '2.4.0'
atk = dependency('atk', version: '>='+atk_minver)
babl_minver = '0.1.114'
babl_minver = '0.1.116'
babl = dependency('babl-0.1', version: '>='+babl_minver, required: false)
if not babl.found()
# babl changed its pkg-config name from 'babl' to 'babl-0.1' in version
@@ -428,7 +431,7 @@ freetype2_minver = '2.1.7'
freetype2 = dependency('freetype2', version: '>='+freetype2_minver)
gdk_pixbuf_minver = '2.30.8'
gdk_pixbuf = dependency('gdk-pixbuf-2.0', version: '>='+gdk_pixbuf_minver)
gegl_minver = '0.4.62'
gegl_minver = '0.4.64'
gegl = dependency('gegl-0.4', version: '>='+gegl_minver)
exiv2_minver = '0.27.4'
exiv2 = dependency('exiv2', version: '>='+exiv2_minver)
@@ -473,6 +476,10 @@ json_glib_minver = '1.2.6'
json_glib = dependency('json-glib-1.0', version: '>='+json_glib_minver)
lcms_minver = '2.8'
lcms = dependency('lcms2', version: '>='+lcms_minver)
if cc.has_header('lcms2_fast_float.h')
conf.set('HAVE_LCMS_FAST_FLOAT_PLUGIN', 1)
endif
libmypaint_minver = '1.5.0'
libmypaint = dependency('libmypaint', version: '>='+libmypaint_minver)
mypaint_brushes = dependency('mypaint-brushes-2.0')
@@ -2046,7 +2053,7 @@ pkgconfig.generate(libgimpui,
# Install native debug data (.pdb) on Windows
# Ideally meson should take care of it automatically.
# See: https://github.com/mesonbuild/meson/issues/12977
if platform_windows and debugging_format == 'native'
if platform_windows and debugging_format == 'native' and cc.get_argument_syntax() != 'msvc'
install_win_debug_script = find_program('build/windows/2_bundle-gimp-uni_sym.py')
meson.add_install_script(install_win_debug_script)
endif

View File

@@ -1,6 +1,6 @@
modules_deps = [
gtk3, babl, gegl, math,
gtk3, babl, gegl, gexiv2, math,
]
color_selector_libs = [

View File

@@ -10,9 +10,7 @@ common_plugins_list = [
{ 'name': 'colormap-remap', },
{ 'name': 'compose', },
{ 'name': 'contrast-retinex', },
{ 'name': 'crop-zealous',
'deps': [ gtk3, gegl, gdk_pixbuf, cairo, ],
},
{ 'name': 'crop-zealous' },
{ 'name': 'curve-bend', },
{ 'name': 'decompose', },
{ 'name': 'depth-merge', },
@@ -20,7 +18,7 @@ common_plugins_list = [
{ 'name': 'destripe', },
{ 'name': 'file-cel', },
{ 'name': 'file-compressor',
'deps': [ gegl, gdk_pixbuf, cairo, gio, libarchive, liblzma, pango, bz2, zlib, ],
'deps': [ gio, libarchive, liblzma, pango, bz2, zlib, ],
},
{ 'name': 'file-csource', },
{ 'name': 'file-dicom', },
@@ -28,34 +26,32 @@ common_plugins_list = [
{ 'name': 'file-gbr', },
{ 'name': 'file-gegl', },
{ 'name': 'file-gif-load',
'deps': [ gtk3, gegl, gdk_pixbuf, cairo, zlib, ],
'deps': [ zlib, ],
},
{ 'name': 'file-gif-export', },
{ 'name': 'file-gih', },
{ 'name': 'file-glob',
'deps': [ gtk3, gegl, gdk_pixbuf, cairo, ],
},
{ 'name': 'file-glob', },
{ 'name': 'file-header', },
{ 'name': 'file-html-table', },
{ 'name': 'file-paa', },
{ 'name': 'file-pat', },
{ 'name': 'file-pcx', },
{ 'name': 'file-pdf-load',
'deps': [ gtk3, gegl, gdk_pixbuf, poppler ],
'deps': [ poppler ],
},
{ 'name': 'file-pix', },
{ 'name': 'file-png',
'deps': [ gtk3, gegl, libpng, lcms ],
'deps': [ libpng, lcms ],
},
{ 'name': 'file-pnm', },
{ 'name': 'file-psp',
'deps': [ gtk3, gegl, zlib, ],
'deps': [ zlib, ],
},
{ 'name': 'file-raw-data', },
{ 'name': 'file-seattle-filmworks', },
{ 'name': 'file-sunras', },
{ 'name': 'file-svg',
'deps': [ gtk3, gegl, rsvg, ],
'deps': [ rsvg, ],
},
{ 'name': 'file-tga', },
{ 'name': 'file-tim', },
@@ -88,26 +84,26 @@ common_plugins_list = [
if libaa.found()
common_plugins_list += {
'name': 'file-aa',
'deps': [ gtk3, gegl, gdk_pixbuf, libaa, ],
'deps': [ libaa, ],
}
endif
if have_heif
common_plugins_list += { 'name': 'file-heif',
'deps': [ gtk3, gegl, libheif, gexiv2, lcms, ],
'deps': [ libheif, lcms, ],
}
endif
if openjpeg.found()
common_plugins_list += { 'name': 'file-jp2',
'deps': [ gtk3, gegl, gdk_pixbuf, openjpeg, ],
'deps': [ openjpeg, ],
}
endif
if libjxl.found() and libjxl_threads.found()
common_plugins_list += {
'name': 'file-jpegxl',
'deps': [ gtk3, gegl, gexiv2, libjxl, libjxl_threads, ],
'deps': [ libjxl, libjxl_threads, ],
}
endif
@@ -117,57 +113,55 @@ if libmng.found()
mng_cflags = [ '-DMNG_USE_DLL' ]
endif
common_plugins_list += { 'name': 'file-mng',
'deps': [ gtk3, gegl, libmng, libpng, ],
'deps': [ libmng, libpng, ],
'cflags': mng_cflags,
}
endif
if cairopdf.found()
common_plugins_list += { 'name': 'file-pdf-export',
'deps': [ gtk3, gegl, gdk_pixbuf, poppler, cairo, cairopdf ],
'deps': [ poppler, cairopdf ],
}
endif
if ghostscript.found()
common_plugins_list += { 'name': 'file-ps',
'deps': [ gtk3, gegl, gdk_pixbuf, ghostscript, ],
'deps': [ ghostscript, ],
}
endif
if wmf.found()
common_plugins_list += { 'name': 'file-wmf',
'deps': [ gtk3, gegl, wmf, ],
'deps': [ wmf, ],
}
endif
if xmc.found()
common_plugins_list += { 'name': 'file-xmc',
'deps': [ gtk3, gegl, xmc, ],
'deps': [ xmc, ],
}
endif
if libxpm.found()
common_plugins_list += { 'name': 'file-xpm',
'deps': [ gtk3, gegl, libxpm, ],
'deps': [ libxpm, ],
}
endif
if have_qoi
common_plugins_list += {
'name': 'file-qoi',
'deps': [ gtk3, gegl, ],
}
endif
if libiff.found() and libilbm.found()
common_plugins_list += {
'name': 'file-iff',
'deps': [ gtk3, gegl, libiff, libilbm, ],
'deps': [ libiff, libilbm, ],
}
elif have_ilbm
common_plugins_list += {
'name': 'file-iff',
'deps': [ gtk3, gegl, ],
}
endif
@@ -178,7 +172,6 @@ endif
if platform_linux
common_plugins_list += {
'name': 'file-desktop-link',
'deps': [ gtk3, gegl, gdk_pixbuf, cairo, ],
}
endif
if not platform_windows
@@ -187,7 +180,7 @@ endif
if get_option('webkit-unmaintained')
common_plugins_list += { 'name': 'web-page',
'deps': [ gtk3, gegl, gdk_pixbuf, webkit, ],
'deps': [ webkit, ],
}
endif
@@ -195,7 +188,7 @@ plugin_custom_targets = []
foreach plugin : common_plugins_list
plugin_name = plugin.get('name')
plugin_sources = [ plugin.get('sources', plugin_name + '.c') ]
plugin_deps = plugin.get('deps', [ gtk3, gegl, gdk_pixbuf, ])
plugin_deps = plugin.get('deps', [])
plugin_cflags = plugin.get('cflags', [])
if platform_windows
@@ -241,7 +234,7 @@ foreach plugin : common_plugins_list
libgimpui,
libgimpwidgets,
],
dependencies: [ plugin_deps, math ],
dependencies: [ plugin_deps, math, libgimpui_dep ],
c_args: plugin_cflags,
win_subsystem: 'windows',
install: true,

View File

@@ -28,7 +28,7 @@ help_plugin_lib = static_library('help_plugin',
plugin_sources,
include_directories: [ rootInclude, ],
dependencies: [
gtk3, gegl, cairo, gio, gdk_pixbuf,
libgimpui_dep, gio,
],
install: false,
)

File diff suppressed because it is too large Load Diff

View File

@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gimp-plug-ins\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gimp/issues\n"
"POT-Creation-Date: 2025-09-29 19:54+0000\n"
"PO-Revision-Date: 2025-09-29 22:59+0300\n"
"POT-Creation-Date: 2025-10-02 00:31+0000\n"
"PO-Revision-Date: 2025-10-02 11:21+0300\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
"Language: uk\n"
@@ -2808,19 +2808,87 @@ msgstr "Непрозорість"
msgid "gzip archive"
msgstr "архів gzip"
#: plug-ins/common/file-compressor.c:229
msgid "Loads files compressed with gzip"
msgstr "Завантажує файли, які стиснуто за допомогою gzip"
#: plug-ins/common/file-compressor.c:230
#| msgid ""
#| "This plug-in loads files in the various Netpbm portable file formats."
msgid "This procedure loads files in the gzip compressed format."
msgstr "Ця процедура завантажує файли у стисненому форматі gzip."
#: plug-ins/common/file-compressor.c:234
msgid "Exports files compressed with gzip"
msgstr "Експортує файли, які стиснуто за допомогою gzip"
#: plug-ins/common/file-compressor.c:235
#| msgid "Exports files in the PNM file format"
msgid "This procedure exports files in the gzip compressed format."
msgstr "Ця процедура експортує файли у стисненому форматі gzip."
#: plug-ins/common/file-compressor.c:240
msgid "bzip archive"
msgstr "архів bzip"
#: plug-ins/common/file-compressor.c:248
msgid "Loads files compressed with bzip2"
msgstr "Завантажує файли, які стиснуто за допомогою bzip2"
#: plug-ins/common/file-compressor.c:249
#| msgid ""
#| "This plug-in loads files in the various Netpbm portable file formats."
msgid "This procedure loads files in the bzip2 compressed format."
msgstr "Ця процедура завантажує файли у стисненому форматі bzip2."
#: plug-ins/common/file-compressor.c:253
msgid "Exports files compressed with bzip2"
msgstr "Експортує файли, які стиснуто за допомогою bzip2"
#: plug-ins/common/file-compressor.c:254
#| msgid ""
#| "This plug-in loads files in the various Netpbm portable file formats."
msgid "This procedure exports files in the bzip2 compressed format."
msgstr "Ця процедура експортує файли у стисненому форматі bzip2."
#: plug-ins/common/file-compressor.c:259
msgid "xz archive"
msgstr "архів xz"
#: plug-ins/common/file-compressor.c:267
msgid "Loads files compressed with xz"
msgstr "Завантажує файли, які стиснуто за допомогою xz"
#: plug-ins/common/file-compressor.c:268
#| msgid ""
#| "This plug-in loads files in the various Netpbm portable file formats."
msgid "This procedure loads files in the xz compressed format."
msgstr "Ця процедура завантажує файли у стисненому форматі xz."
#: plug-ins/common/file-compressor.c:272
#| msgid "Error reading compressed data. "
msgid "Exports files compressed with xz"
msgstr "Експортує файли, які стиснуто за допомогою xz"
#: plug-ins/common/file-compressor.c:273
#| msgid "Exports files in the PNM file format"
msgid "This procedure exports files in the xz compressed format."
msgstr "Ця процедура експортує файли у стисненому форматі xz."
#: plug-ins/common/file-compressor.c:278
#| msgid "gzip archive"
msgid "zip archive"
msgstr "архів zip"
#: plug-ins/common/file-compressor.c:286
msgid "Loads files compressed with zip"
msgstr "Завантажує файли, які стиснуто за допомогою zip"
#: plug-ins/common/file-compressor.c:287
#| msgid ""
#| "This plug-in loads files in the various Netpbm portable file formats."
msgid "This procedure loads files in the zip compressed format."
msgstr "Ця процедура завантажує файли у стисненому форматі zip."
#: plug-ins/common/file-compressor.c:471
msgid "No sensible file extension, saving as compressed XCF."
msgstr "Немає потрібного розширення, зберігається як стиснутий XCF."
@@ -2834,6 +2902,15 @@ msgstr "Стиснення «%s»"
msgid "No sensible file extension, attempting to load with file magic."
msgstr "Немає потрібного розширення, спроба визначення типу за вмістом файлу."
#. Leave a chance for the load to succeed (in case the first
#. * file happens to be an image file), yet still warns. This
#. * procedure expects that the archive contains a single
#. * file.
#.
#: plug-ins/common/file-compressor.c:1110
msgid "This zip archive contains more than one file."
msgstr "В архіві zip міститься декілька файлів."
#: plug-ins/common/file-desktop-link.c:114
msgid "Desktop Link"
msgstr "Посилання .desktop"

View File

@@ -10,7 +10,7 @@ gimptool = executable('gimptool' + exec_ver,
'gimptool.c',
include_directories: rootInclude,
dependencies: [
gegl, gtk3,
gegl, gtk3, gexiv2
],
link_with: [
libgimpbase,
@@ -25,7 +25,7 @@ gimp_test_clipboard = executable('gimp-test-clipboard' + exec_ver,
'gimp-test-clipboard.c',
include_directories: rootInclude,
dependencies: [
gegl, gtk3,
gegl, gtk3, gexiv2
],
install: true,
)

View File

@@ -20,7 +20,7 @@
############################################
#### Usage ####
read -p "GIMP version to release: " ver
printf "GIMP version to release: "; read ver
if [ -z "$ver" ]; then
TAG="HEAD"