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,37 +6,48 @@ if have_vector_icons
|
||||||
# [ '64x64', bitmap_64system ],
|
# [ '64x64', bitmap_64system ],
|
||||||
[ '64x64', bitmap_64_always ],
|
[ '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
|
||||||
install_data('index.theme',
|
|
||||||
install_dir: gimpiconsdir / theme,
|
|
||||||
)
|
|
||||||
|
|
||||||
foreach icon_info : all_icons
|
|
||||||
icons_dir = icon_info[0]
|
icons_dir = icon_info[0]
|
||||||
icons_list= icon_info[1]
|
icons_list= icon_info[1]
|
||||||
install_data(icons_list,
|
install_data(icons_list,
|
||||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||||
)
|
)
|
||||||
endforeach
|
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,
|
||||||
|
)
|
||||||
|
|
||||||
icons_core = [ '64/gimp-question.png', ]
|
icons_core = [ '64/gimp-question.png', ]
|
||||||
icons_imgs = [ '64/gimp-wilber-eek.png', ]
|
icons_imgs = [ '64/gimp-wilber-eek.png', ]
|
||||||
|
|
|
@ -87,6 +87,7 @@ i18n = import('i18n')
|
||||||
gnome = import('gnome')
|
gnome = import('gnome')
|
||||||
pythonmod = import('python')
|
pythonmod = import('python')
|
||||||
simd = import('unstable-simd')
|
simd = import('unstable-simd')
|
||||||
|
fs = import('fs')
|
||||||
|
|
||||||
cc = meson.get_compiler('c')
|
cc = meson.get_compiler('c')
|
||||||
cxx = meson.get_compiler('cpp')
|
cxx = meson.get_compiler('cpp')
|
||||||
|
|
Loading…
Reference in New Issue