forked from AuroraMiddleware/gtk
f0967fa5e4
As the program executable name has 'update' in its filename, gtk4-update-icon-cache.exe is considered to be an installer program on 32-bit Windows [1], which will cause the program to fail to run unless it is running with elevated privileges (i.e. UAC). Avoid this situation by embedding a manifest file into the final executable that tells Windows that this is not a program that requires elevation. Fixes issue #3632. [1]: https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-vista/cc709628(v=ws.10)?redirectedfrom=MSDN, under section "Installer Detection Technology"
65 lines
2.0 KiB
Meson
65 lines
2.0 KiB
Meson
# Installed tools
|
|
|
|
extra_update_icon_cache_objs = []
|
|
if win32_enabled
|
|
gen_uac_manifest = find_program('generate-uac-manifest.py')
|
|
|
|
uac_exe_pkg = 'gtk4'
|
|
uac_exe_name = '@0@-update-icon-cache'.format(uac_exe_pkg)
|
|
|
|
# Well, we have to forgo the xxx.exe.manifest in the output listing, since
|
|
# compile_resources doesn't like to consume targets with multiple outputs,
|
|
# and the xxx.exe.manifest and xxx.rc are tied together
|
|
uac_rc = custom_target(
|
|
'tools/@0@.rc'.format(uac_exe_name),
|
|
output: ['@0@.rc'.format(uac_exe_name)],
|
|
command: [gen_uac_manifest,
|
|
'-p=@0@'.format(uac_exe_pkg),
|
|
'-n=@0@'.format(uac_exe_name),
|
|
'--pkg-version=@0@'.format(meson.project_version()),
|
|
'--output-dir=@OUTDIR@'],
|
|
)
|
|
extra_update_icon_cache_objs = import('windows').compile_resources(uac_rc)
|
|
endif
|
|
|
|
gtk_tools = [
|
|
['gtk4-query-settings', ['gtk-query-settings.c'], [libgtk_dep]],
|
|
['gtk4-builder-tool', ['gtk-builder-tool.c',
|
|
'gtk-builder-tool-simplify.c',
|
|
'gtk-builder-tool-validate.c',
|
|
'gtk-builder-tool-enumerate.c',
|
|
'gtk-builder-tool-preview.c'], [libgtk_dep] ],
|
|
['gtk4-update-icon-cache', ['updateiconcache.c'] + extra_update_icon_cache_objs, [ libgtk_static_dep ] ],
|
|
['gtk4-encode-symbolic-svg', ['encodesymbolic.c'], [ libgtk_static_dep ] ],
|
|
]
|
|
|
|
if os_unix
|
|
gtk_tools += [['gtk4-launch', ['gtk-launch.c'], [libgtk_dep]]]
|
|
endif
|
|
|
|
foreach tool: gtk_tools
|
|
tool_name = tool.get(0)
|
|
tool_srcs = tool.get(1)
|
|
tool_deps = tool.get(2)
|
|
|
|
exe = executable(tool_name,
|
|
sources: tool_srcs,
|
|
include_directories: [confinc],
|
|
c_args: common_cflags,
|
|
dependencies: tool_deps,
|
|
install: true,
|
|
)
|
|
|
|
set_variable(tool_name.underscorify(), exe) # used in testsuites
|
|
endforeach
|
|
|
|
# Data to install
|
|
install_data('gtk4builder.rng', install_dir: gtk_datadir / 'gtk-4.0')
|
|
|
|
install_data([
|
|
'gtk4builder.loc',
|
|
'gtk4builder.its',
|
|
],
|
|
install_dir: gtk_datadir / 'gettext/its',
|
|
)
|