Automate Windows builds, add icons to executables
Scripts have been ported from sdtui, and adjusted for Meson. The port is broken through and through on WINE, but sort-of works natively.
This commit is contained in:
47
meson.build
47
meson.build
@@ -91,8 +91,32 @@ configure_file(
|
||||
configuration : conf,
|
||||
)
|
||||
|
||||
rc = []
|
||||
if host_machine.system() == 'windows'
|
||||
windows = import('windows')
|
||||
rsvg_convert = find_program('rsvg-convert')
|
||||
icotool = find_program('icotool')
|
||||
|
||||
# Meson is brain-dead and retarded, so these PNGs cannot be installed,
|
||||
# only because they must all have the same name when installed.
|
||||
# The largest size is mainly for an appropriately sized Windows icon.
|
||||
icon_png_list = []
|
||||
foreach size : ['16', '32', '48', '256']
|
||||
icon_dimensions = size + 'x' + size
|
||||
icon_png_list += custom_target(icon_dimensions + ' icon',
|
||||
input : 'fiv.svg',
|
||||
output : 'fiv.' + icon_dimensions + '.png',
|
||||
command : [rsvg_convert, '--output', '@OUTPUT@',
|
||||
'--width', size, '--height', size, '@INPUT@'])
|
||||
endforeach
|
||||
|
||||
icon_ico = custom_target(input : icon_png_list, output : 'fiv.ico',
|
||||
command : [icotool, '-c', '-o', '@OUTPUT@', '@INPUT@'])
|
||||
rc += windows.compile_resources('fiv.rc', depends : icon_ico)
|
||||
endif
|
||||
|
||||
gnome = import('gnome')
|
||||
resources = gnome.compile_resources('resources',
|
||||
gresources = gnome.compile_resources('resources',
|
||||
'resources/resources.gresource.xml',
|
||||
source_dir : 'resources',
|
||||
c_name : 'resources',
|
||||
@@ -108,9 +132,11 @@ tiff_tables = custom_target('tiff-tables.h',
|
||||
desktops = ['fiv.desktop', 'fiv-browse.desktop']
|
||||
exe = executable('fiv', 'fiv.c', 'fiv-view.c', 'fiv-io.c', 'fiv-context-menu.c',
|
||||
'fiv-browser.c', 'fiv-sidebar.c', 'fiv-thumbnail.c', 'fiv-collection.c',
|
||||
'xdg.c', resources,
|
||||
'xdg.c', gresources, rc,
|
||||
install : true,
|
||||
dependencies : dependencies)
|
||||
dependencies : dependencies,
|
||||
win_subsystem : 'windows',
|
||||
)
|
||||
if gdkpixbuf.found()
|
||||
executable('io-benchmark', 'fiv-io-benchmark.c', 'fiv-io.c', 'xdg.c',
|
||||
build_by_default : false,
|
||||
@@ -118,12 +144,14 @@ if gdkpixbuf.found()
|
||||
endif
|
||||
|
||||
desktops += 'fiv-jpegcrop.desktop'
|
||||
jpegcrop = executable('fiv-jpegcrop', 'fiv-jpegcrop.c',
|
||||
jpegcrop = executable('fiv-jpegcrop', 'fiv-jpegcrop.c', rc,
|
||||
install : true,
|
||||
dependencies : [
|
||||
dependency('gtk+-3.0'),
|
||||
dependency('libturbojpeg'),
|
||||
])
|
||||
],
|
||||
win_subsystem : 'windows',
|
||||
)
|
||||
|
||||
if get_option('tools').enabled()
|
||||
# libjq 1.6 lacks a pkg-config file, and there is no release in sight.
|
||||
@@ -170,6 +198,15 @@ if host_machine.system() != 'windows'
|
||||
if not meson.is_cross_build()
|
||||
meson.add_install_script(updater, skip_if_destdir : dynamic_desktops)
|
||||
endif
|
||||
elif meson.is_cross_build()
|
||||
msys2_root = meson.get_external_property('msys2_root')
|
||||
meson.add_install_script('msys2-cross-install.sh', msys2_root)
|
||||
|
||||
# This is the minimum to run targets from msys2-cross-configure.sh builds.
|
||||
meson.add_devenv({
|
||||
'WINEPATH' : msys2_root / 'bin',
|
||||
'XDG_DATA_DIRS' : msys2_root / 'share',
|
||||
})
|
||||
endif
|
||||
|
||||
install_data('fiv.svg',
|
||||
|
||||
Reference in New Issue
Block a user