mirror of https://github.com/GNOME/gimp.git
icons: have -Dvec-icons=false option work with meson.
The whole logics of creating specially prepared PNG images for vector icons (with gtk-encode-symbolic-svg) was absent. This option was basically completely broken, yet we now know that we need the ability to install PNG alternatives for the icons (see #6821). This is a continuation of previous commit which is straightening a bit our whole icon theme builds. Note though that more needs to be done because I definitely still see room for more mess and far too much duplication.
This commit is contained in:
parent
ae861e01cd
commit
11183f4fa4
|
@ -0,0 +1,24 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach color_icon : source_icons
|
||||
split_name = color_icon.split('.')
|
||||
if split_name.length() != 2
|
||||
error('Unexpected icon name: ' + color_icon)
|
||||
endif
|
||||
output_path = split_name[0] + '-symbolic.symbolic.' + split_name[-1]
|
||||
icon_name = output_path.split('/')[1]
|
||||
|
||||
input_path = split_name[0] + '-symbolic.svg'
|
||||
input_path = '../scalable/' + input_path.split('/')[1]
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
|
||||
endforeach
|
|
@ -0,0 +1,24 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach color_icon : source_icons
|
||||
split_name = color_icon.split('.')
|
||||
if split_name.length() != 2
|
||||
error('Unexpected icon name: ' + color_icon)
|
||||
endif
|
||||
output_path = split_name[0] + '-symbolic.symbolic.' + split_name[-1]
|
||||
icon_name = output_path.split('/')[1]
|
||||
|
||||
input_path = split_name[0] + '-symbolic.svg'
|
||||
input_path = '../scalable/' + input_path.split('/')[1]
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
|
||||
endforeach
|
|
@ -0,0 +1,24 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach color_icon : source_icons
|
||||
split_name = color_icon.split('.')
|
||||
if split_name.length() != 2
|
||||
error('Unexpected icon name: ' + color_icon)
|
||||
endif
|
||||
output_path = split_name[0] + '-symbolic.symbolic.' + split_name[-1]
|
||||
icon_name = output_path.split('/')[1]
|
||||
|
||||
input_path = split_name[0] + '-symbolic.svg'
|
||||
input_path = '../scalable/' + input_path.split('/')[1]
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
|
||||
endforeach
|
|
@ -0,0 +1,24 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach color_icon : source_icons
|
||||
split_name = color_icon.split('.')
|
||||
if split_name.length() != 2
|
||||
error('Unexpected icon name: ' + color_icon)
|
||||
endif
|
||||
output_path = split_name[0] + '-symbolic.symbolic.' + split_name[-1]
|
||||
icon_name = output_path.split('/')[1]
|
||||
|
||||
input_path = split_name[0] + '-symbolic.svg'
|
||||
input_path = '../scalable/' + input_path.split('/')[1]
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
|
||||
endforeach
|
|
@ -0,0 +1,24 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach color_icon : source_icons
|
||||
split_name = color_icon.split('.')
|
||||
if split_name.length() != 2
|
||||
error('Unexpected icon name: ' + color_icon)
|
||||
endif
|
||||
output_path = split_name[0] + '-symbolic.symbolic.' + split_name[-1]
|
||||
icon_name = output_path.split('/')[1]
|
||||
|
||||
input_path = split_name[0] + '-symbolic.svg'
|
||||
input_path = '../scalable/' + input_path.split('/')[1]
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
|
||||
endforeach
|
|
@ -0,0 +1,24 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach color_icon : source_icons
|
||||
split_name = color_icon.split('.')
|
||||
if split_name.length() != 2
|
||||
error('Unexpected icon name: ' + color_icon)
|
||||
endif
|
||||
output_path = split_name[0] + '-symbolic.symbolic.' + split_name[-1]
|
||||
icon_name = output_path.split('/')[1]
|
||||
|
||||
input_path = split_name[0] + '-symbolic.svg'
|
||||
input_path = '../scalable/' + input_path.split('/')[1]
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
|
||||
endforeach
|
|
@ -0,0 +1,24 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach color_icon : source_icons
|
||||
split_name = color_icon.split('.')
|
||||
if split_name.length() != 2
|
||||
error('Unexpected icon name: ' + color_icon)
|
||||
endif
|
||||
output_path = split_name[0] + '-symbolic.symbolic.' + split_name[-1]
|
||||
icon_name = output_path.split('/')[1]
|
||||
|
||||
input_path = split_name[0] + '-symbolic.svg'
|
||||
input_path = '../scalable/' + input_path.split('/')[1]
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
|
||||
endforeach
|
|
@ -0,0 +1,24 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach color_icon : source_icons
|
||||
split_name = color_icon.split('.')
|
||||
if split_name.length() != 2
|
||||
error('Unexpected icon name: ' + color_icon)
|
||||
endif
|
||||
output_path = split_name[0] + '-symbolic.symbolic.' + split_name[-1]
|
||||
icon_name = output_path.split('/')[1]
|
||||
|
||||
input_path = split_name[0] + '-symbolic.svg'
|
||||
input_path = '../scalable/' + input_path.split('/')[1]
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
|
||||
endforeach
|
|
@ -0,0 +1,24 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach color_icon : source_icons
|
||||
split_name = color_icon.split('.')
|
||||
if split_name.length() != 2
|
||||
error('Unexpected icon name: ' + color_icon)
|
||||
endif
|
||||
output_path = split_name[0] + '-symbolic.symbolic.' + split_name[-1]
|
||||
icon_name = output_path.split('/')[1]
|
||||
|
||||
input_path = split_name[0] + '-symbolic.svg'
|
||||
input_path = '../scalable/' + input_path.split('/')[1]
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
|
||||
endforeach
|
|
@ -0,0 +1,24 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach color_icon : source_icons
|
||||
split_name = color_icon.split('.')
|
||||
if split_name.length() != 2
|
||||
error('Unexpected icon name: ' + color_icon)
|
||||
endif
|
||||
output_path = split_name[0] + '-symbolic.symbolic.' + split_name[-1]
|
||||
icon_name = output_path.split('/')[1]
|
||||
|
||||
input_path = split_name[0] + '-symbolic.svg'
|
||||
input_path = '../scalable/' + input_path.split('/')[1]
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
|
||||
endforeach
|
|
@ -0,0 +1,24 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach color_icon : source_icons
|
||||
split_name = color_icon.split('.')
|
||||
if split_name.length() != 2
|
||||
error('Unexpected icon name: ' + color_icon)
|
||||
endif
|
||||
output_path = split_name[0] + '-symbolic.symbolic.' + split_name[-1]
|
||||
icon_name = output_path.split('/')[1]
|
||||
|
||||
input_path = split_name[0] + '-symbolic.svg'
|
||||
input_path = '../scalable/' + input_path.split('/')[1]
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
|
||||
endforeach
|
|
@ -0,0 +1,30 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach color_icon : source_icons
|
||||
split_name = color_icon.split('.')
|
||||
if split_name.length() != 2
|
||||
error('Unexpected icon name: ' + color_icon)
|
||||
endif
|
||||
output_path = split_name[0] + '-symbolic.symbolic.' + split_name[-1]
|
||||
icon_name = output_path.split('/')[1]
|
||||
|
||||
input_path = split_name[0] + '-symbolic.svg'
|
||||
input_path = '../scalable/' + input_path.split('/')[1]
|
||||
|
||||
if fs.exists(input_path)
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
else
|
||||
# In size 64, some icons are not generated from vector images.
|
||||
install_data(color_icon.split('/')[1],
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endif
|
||||
endforeach
|
|
@ -0,0 +1,24 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach color_icon : source_icons
|
||||
split_name = color_icon.split('.')
|
||||
if split_name.length() != 2
|
||||
error('Unexpected icon name: ' + color_icon)
|
||||
endif
|
||||
output_path = split_name[0] + '-symbolic.symbolic.' + split_name[-1]
|
||||
icon_name = output_path.split('/')[1]
|
||||
|
||||
input_path = split_name[0] + '-symbolic.svg'
|
||||
input_path = '../scalable/' + input_path.split('/')[1]
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
|
||||
endforeach
|
|
@ -6,38 +6,49 @@ if have_vector_icons
|
|||
# [ '64x64', bitmap_64system ],
|
||||
[ '64x64', bitmap_64_always ],
|
||||
]
|
||||
else
|
||||
all_icons = [
|
||||
[ '12x12', bitmap_12 ],
|
||||
[ '16x16', bitmap_16 ],
|
||||
[ '18x18', bitmap_18 ],
|
||||
[ '20x20', bitmap_20 ],
|
||||
[ '22x22', bitmap_22 ],
|
||||
[ '24x24', bitmap_24 ],
|
||||
[ '32x32', bitmap_32 ],
|
||||
[ '48x48', bitmap_48 ],
|
||||
[ '64x64', bitmap_64 + bitmap_64_always + bitmap_64system ],
|
||||
[ '96x96', bitmap_96 ],
|
||||
[ '128x128', bitmap_128 ],
|
||||
[ '192x192', bitmap_192 ],
|
||||
[ '256x256', bitmap_256 ],
|
||||
]
|
||||
endif
|
||||
|
||||
foreach icon_info : all_icons
|
||||
icons_dir = icon_info[0]
|
||||
icons_list= icon_info[1]
|
||||
install_data(icons_list,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
||||
else
|
||||
gtk_encode_symbolic_svg = find_program('gtk-encode-symbolic-svg')
|
||||
|
||||
sizes = [ '12', '16', '18', '20', '22', '24', '32',
|
||||
'48', '64', '96', '128', '192', '256' ]
|
||||
sizes = {
|
||||
'12': bitmap_12,
|
||||
'16': bitmap_16,
|
||||
'18': bitmap_18,
|
||||
'20': bitmap_20,
|
||||
'22': bitmap_22,
|
||||
'24': bitmap_24,
|
||||
'32': bitmap_32,
|
||||
'48': bitmap_48,
|
||||
'64': bitmap_64 + bitmap_64_always + bitmap_64system,
|
||||
'96': bitmap_96,
|
||||
'128': bitmap_128,
|
||||
'192': bitmap_192,
|
||||
'256': bitmap_256,
|
||||
}
|
||||
foreach size, source_icons: sizes
|
||||
# Note: I originally wanted to implement it here in a loop but
|
||||
# custom_target() doesn't accept an output path with a folder! So I
|
||||
# end up creating as many empty directories as generated sizes and
|
||||
# copying the same meson.build everywhere (which is really stupid,
|
||||
# let's admit it). Only the 64x64 size has a slightly different
|
||||
# meson.build as it also installs some non-symbolic images.
|
||||
subdir(size)
|
||||
endforeach
|
||||
endif
|
||||
|
||||
install_data('index.theme',
|
||||
install_dir: gimpiconsdir / theme,
|
||||
)
|
||||
|
||||
foreach icon_info : all_icons
|
||||
icons_dir = icon_info[0]
|
||||
icons_list= icon_info[1]
|
||||
install_data(icons_list,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
||||
|
||||
|
||||
icons_core = [ '64/gimp-question.png', ]
|
||||
icons_imgs = [ '64/gimp-wilber-eek.png', ]
|
||||
|
||||
|
|
|
@ -87,6 +87,7 @@ i18n = import('i18n')
|
|||
gnome = import('gnome')
|
||||
pythonmod = import('python')
|
||||
simd = import('unstable-simd')
|
||||
fs = import('fs')
|
||||
|
||||
cc = meson.get_compiler('c')
|
||||
cxx = meson.get_compiler('cpp')
|
||||
|
|
Loading…
Reference in New Issue