Project

General

Profile

Feature #1681 ยป 0012-Drop-meson-support-for-gtk4x-client.patch

Marko Lindqvist, 09/11/2025 07:41 PM

View differences:

doc/INSTALL.meson
clients (array):
List of clients to build. To disable client build completely, give an
empty array ('-Dclients=[]'). Currently gtk3.22-, sdl2-, qt-,
gtk4-, sdl3-, gtk4x-, and stub-client builds are supported.
gtk4-, sdl3-, and stub-client builds are supported.
By default builds just gtk4-client.
fcmp (array):
List of freeciv modpack installer UIs to build. To disable their build
completely, give an empty array ('-Dfcmp=[]'). Currently gtk3, qt, gtk4,
gtk4x, and cli are supported. By default builds just gtk4 UI.
and cli are supported. By default builds just gtk4 UI.
cacert-path (string):
Custom path to CA cert bundle. If this is empty, default path will be used.
meson.build
endif
if get_option('clients').contains('gtk4x')
if not gtk5_dep.found()
error('gtk-4.0 >= 4.14 required for gtk4x-client, but not found')
endif
executable('freeciv-gtk4x',
'client/gui-gtk-5.0/action_dialog.c',
'client/gui-gtk-5.0/canvas.c',
'client/gui-gtk-5.0/chatline.c',
'client/gui-gtk-5.0/choice_dialog.c',
'client/gui-gtk-5.0/citizensinfo.c',
'client/gui-gtk-5.0/citydlg.c',
'client/gui-gtk-5.0/cityrep.c',
'client/gui-gtk-5.0/cma_fe.c',
'client/gui-gtk-5.0/colors.c',
'client/gui-gtk-5.0/connectdlg.c',
'client/gui-gtk-5.0/dialogs.c',
'client/gui-gtk-5.0/diplodlg.c',
'client/gui-gtk-5.0/editgui.c',
'client/gui-gtk-5.0/editprop.c',
'client/gui-gtk-5.0/finddlg.c',
'client/gui-gtk-5.0/gamedlgs.c',
'client/gui-gtk-5.0/gotodlg.c',
'client/gui-gtk-5.0/graphics.c',
'client/gui-gtk-5.0/gui_main.c',
'client/gui-gtk-5.0/gui_stuff.c',
'client/gui-gtk-5.0/happiness.c',
'client/gui-gtk-5.0/helpdlg.c',
'client/gui-gtk-5.0/infradlg.c',
'client/gui-gtk-5.0/inputdlg.c',
'client/gui-gtk-5.0/inteldlg.c',
'client/gui-gtk-5.0/luaconsole.c',
'client/gui-gtk-5.0/mapctrl.c',
'client/gui-gtk-5.0/mapview.c',
'client/gui-gtk-5.0/menu.c',
'client/gui-gtk-5.0/messagedlg.c',
'client/gui-gtk-5.0/messagewin.c',
'client/gui-gtk-5.0/optiondlg.c',
'client/gui-gtk-5.0/pages.c',
'client/gui-gtk-5.0/plrdlg.c',
'client/gui-gtk-5.0/rallypointdlg.c',
'client/gui-gtk-5.0/repodlgs.c',
'client/gui-gtk-5.0/soundset_dlg.c',
'client/gui-gtk-5.0/spaceshipdlg.c',
'client/gui-gtk-5.0/sprite.c',
'client/gui-gtk-5.0/theme_dlg.c',
'client/gui-gtk-5.0/themes.c',
'client/gui-gtk-5.0/tileset_dlg.c',
'client/gui-gtk-5.0/transportdlg.c',
'client/gui-gtk-5.0/unitselect.c',
'client/gui-gtk-5.0/unitselextradlg.c',
'client/gui-gtk-5.0/unitselunitdlg.c',
'client/gui-gtk-5.0/voteinfo_bar.c',
'client/gui-gtk-5.0/wldlg.c',
clienticon,
c_args: [ '-DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_4_8',
'-DGDK_VERSION_MAX_ALLOWED=GDK_VERSION_4_14',
'-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_76',
'-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_76'],
include_directories: client_inc,
dependencies: [gtk5_dep, net_dep, gettext_dep, mw_extra_dep],
link_with: client_common,
install: true,
win_subsystem: 'windows'
)
gtk4_theme = true
install_data(
'bootstrap/org.freeciv.gtk4x.desktop',
install_dir : join_paths(get_option('prefix'), 'share/applications')
)
custom_target('mi_gtk4x',
input: 'bootstrap/org.freeciv.gtk4x.metainfo.xml.in',
output: '@BASENAME@',
command: [sh_exe, files('bootstrap/generate_metainfo.sh'),
'@OUTPUT@', b_root],
depend_files: files('fc_version'),
install: true,
install_dir: join_paths(get_option('datadir'), 'metainfo'))
endif
if gtk4_theme
install_data('data/themes/gtk4/Freeciv/gtk-4.0/gtk.css',
'data/themes/gtk4/Freeciv/gtk-4.0/menubar.css',
......
endif
if get_option('fcmp').contains('gtk4x')
if not gtk5_dep.found()
error('gtk-4.0 >= 4.14 required for gtk4x modpack installer, but not found')
endif
executable('freeciv-mp-gtk4x',
'tools/fcmp/mpgui_gtk5.c',
mpicon,
c_args: [ '-DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_4_14',
'-DGDK_VERSION_MAX_ALLOWED=GDK_VERSION_4_14',
'-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_76',
'-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_76'],
include_directories: tool_inc,
sources: [verhdr],
dependencies: [gtk5_dep, sqlite3_dep, gettext_dep],
link_with: [common_lib, fcmp_common],
install: true,
win_subsystem: 'windows'
)
install_data(
'bootstrap/org.freeciv.gtk4x.mp.desktop',
install_dir : join_paths(get_option('prefix'), 'share/applications')
)
custom_target('mi_mp_gtk4x',
input: 'bootstrap/org.freeciv.gtk4x.mp.metainfo.xml.in',
output: '@BASENAME@',
command: [sh_exe, files('bootstrap/generate_metainfo.sh'),
'@OUTPUT@', b_root],
depend_files: files('fc_version'),
install: true,
install_dir: join_paths(get_option('datadir'), 'metainfo'))
endif
if get_option('fcmp').contains('qt')
if not qtfine
meson_options.txt
option('clients',
type: 'array',
choices: ['gtk3.22','sdl2', 'qt', 'gtk4', 'stub', 'sdl3', 'gtk4x'],
choices: ['gtk3.22','sdl2', 'qt', 'gtk4', 'stub', 'sdl3'],
value: ['gtk4'],
description: 'Clients to build')
option('fcmp',
type: 'array',
choices: ['gtk3','qt','cli','gtk4', 'gtk4x'],
choices: ['gtk3','qt','cli','gtk4'],
value: ['gtk4'],
description: 'Modpack installer UIs to build')
    (1-1/1)