Feature #1674 ยป 0008-Drop-autotools-support-for-gtk4x-client.patch
| Makefile.am | ||
|---|---|---|
| 		m4/gettimeofday.m4		\ | ||
| 		m4/gtk3.22-client.m4		\ | ||
| 		m4/gtk4-client.m4		\ | ||
| 		m4/gtk5-client.m4		\ | ||
| 		m4/host-cpu-c-abi.m4		\ | ||
| 		m4/iconv.m4			\ | ||
| 		m4/intl.m4			\ | ||
| bootstrap/Makefile.am | ||
|---|---|---|
| 		langstat_ruledit.txt	\ | ||
| 		org.freeciv.gtk322.desktop	\ | ||
| 		org.freeciv.gtk4.desktop	\ | ||
| 		org.freeciv.gtk4x.desktop	\ | ||
| 		org.freeciv.sdl2.desktop	\ | ||
| 		org.freeciv.sdl3.desktop	\ | ||
| 		org.freeciv.qt.desktop \ | ||
| 		org.freeciv.server.desktop	\ | ||
| 		org.freeciv.gtk3.mp.desktop	\ | ||
| 		org.freeciv.gtk4.mp.desktop	\ | ||
| 		org.freeciv.gtk4x.mp.desktop	\ | ||
| 		org.freeciv.qt.mp.desktop	\ | ||
| 		org.freeciv.ruledit.desktop	\ | ||
| 		org.freeciv.gtk322.metainfo.xml.in \ | ||
| 		org.freeciv.gtk4.metainfo.xml.in \ | ||
| 		org.freeciv.gtk4x.metainfo.xml.in \ | ||
| 		org.freeciv.sdl2.metainfo.xml.in \ | ||
| 		org.freeciv.sdl3.metainfo.xml.in \ | ||
| 		org.freeciv.qt.metainfo.xml.in \ | ||
| 		org.freeciv.server.metainfo.xml.in \ | ||
| 		org.freeciv.gtk3.mp.metainfo.xml.in \ | ||
| 		org.freeciv.gtk4.mp.metainfo.xml.in \ | ||
| 		org.freeciv.gtk4x.mp.metainfo.xml.in \ | ||
| 		org.freeciv.qt.mp.metainfo.xml.in \ | ||
| 		org.freeciv.ruledit.metainfo.xml.in \ | ||
| 		config.rpath		\ | ||
| ... | ... | |
| desktopfile_DATA  += org.freeciv.gtk4.desktop | ||
| endif | ||
| if CLIENT_GUI_GTK_5 | ||
| metainfofile_DATA += org.freeciv.gtk4x.metainfo.xml | ||
| desktopfile_DATA  += org.freeciv.gtk4x.desktop | ||
| endif | ||
| if CLIENT_GUI_QT | ||
| metainfofile_DATA += org.freeciv.qt.metainfo.xml | ||
| desktopfile_DATA  += org.freeciv.qt.desktop | ||
| client/Makefile.am | ||
|---|---|---|
| GUI_SUBDIRS += gui-gtk-4.0 | ||
| endif | ||
| if CLIENT_GUI_GTK_5 | ||
| GUI_SUBDIRS += gui-gtk-5.0 | ||
| endif | ||
| if CLIENT_GUI_QT | ||
| GUI_SUBDIRS += gui-qt | ||
| endif | ||
| ... | ... | |
|  $(gui_gtk4_libs) | ||
| endif | ||
| if CLIENT_GUI_GTK_5 | ||
| bin_PROGRAMS += freeciv-gtk4x | ||
| noinst_LTLIBRARIES += libfcgui-gtk5.la | ||
| libfcgui_gtk5_la_SOURCES = $(freeciv_client_src) | ||
| libfcgui_gtk5_la_LIBADD = gui-gtk-5.0/libgui-gtk5.la $(clientlibs) | ||
| freeciv_gtk4x_SOURCES = dummy.c | ||
| freeciv_gtk4x_LDFLAGS = $(gui_gtk4_ldflags) | ||
| freeciv_gtk4x_LDADD = \ | ||
|  libfcgui-gtk5.la $(SOUND_LIBS) gui-gtk-5.0/gui_main.lo \ | ||
|  $(top_builddir)/common/libfreeciv.la \ | ||
|  $(INTLLIBS) $(CLIENT_LIBS) $(CLIENTICON) \ | ||
|  $(TINYCTHR_LIBS) $(MAPIMG_WAND_LIBS) \ | ||
|  $(gui_gtk5_libs) | ||
| endif | ||
| if CLIENT_GUI_SDL2 | ||
| bin_PROGRAMS += freeciv-sdl2 | ||
| noinst_LTLIBRARIES += libfcgui-sdl2.la | ||
| configure.ac | ||
|---|---|---|
| done | ||
| AC_ARG_ENABLE([fcmp], | ||
|   AS_HELP_STRING([--enable-fcmp=no/yes/gtk3/gtk4/gtk4x/qt/cli/all/auto], [build freeciv-modpack-program [auto]]), | ||
|   AS_HELP_STRING([--enable-fcmp=no/yes/gtk3/gtk4/qt/cli/all/auto], [build freeciv-modpack-program [auto]]), | ||
| [fc_mp=${enableval}], | ||
| [fc_mp=auto]) | ||
| fcmp_cli=no | ||
| fcmp_gtk3=no | ||
| fcmp_gtk4=no | ||
| fcmp_gtk5=no | ||
| fcmp_qt=no | ||
| fcmp_list= | ||
| ... | ... | |
|     req_fcmp_gtk3=yes | ||
|   elif test "x$mp" = "xgtk4" ; then | ||
|     req_fcmp_gtk4=yes | ||
|   elif test "x$mp" = "xgtk4x" ; then | ||
|     req_fcmp_gtk5=yes | ||
|   elif test "x$mp" = "xqt" ; then | ||
|     req_fcmp_qt=yes | ||
|   elif test "x$mp" = "xcli" ; then | ||
| ... | ... | |
| dnl all:  Autodetect as many as possible. | ||
| dnl comma-separated-list: Detect these or abort. | ||
| AC_ARG_ENABLE([client], | ||
|   AS_HELP_STRING([--enable-client=auto/all/gtk3.22/sdl2/qt/gtk4/gtk4x/stub], | ||
|   AS_HELP_STRING([--enable-client=auto/all/gtk3.22/sdl2/qt/gtk4/stub], | ||
|                  [clients to compile [auto](list for multiple)]), | ||
| [clients=${enableval}], | ||
| [client=auto]) | ||
| gui_gtk3_22=no | ||
| gui_gtk4=no | ||
| gui_gtk5=no | ||
| gui_sdl2=no | ||
| gui_qt=no | ||
| gui_stub=no | ||
| ... | ... | |
|       gui_gtk3_22=yes | ||
|     elif test "x$gui" = "xgtk4" ; then | ||
|       gui_gtk4=yes | ||
|     elif test "x$gui" = "xgtk4x" ; then | ||
|       gui_gtk5=yes | ||
|     elif test "x$gui" = "xgtk" ; then | ||
|       AC_MSG_WARN([for requested client 'gtk' enabled gtk3.22-client, that has changed since earlier versions and will change again in the future]) | ||
|       gui_gtk3_22=yes | ||
| ... | ... | |
|   dnl SDL2-specific overrides | ||
|   FC_SDL2_CLIENT | ||
|   dnl Gtk-5.0-specific overrides | ||
|   FC_GTK5_CLIENT | ||
|   dnl Stub-specific overrides | ||
|   if test "x$gui_stub" = "xyes" || test "x$client" = "xall" ; then | ||
|     gui_stub=yes | ||
| ... | ... | |
| if test "x$client" = "xall" ; then | ||
|   if test "x$gui_gtk3_22" = "xyes" || | ||
|      test "x$gui_gtk4" = "xyes" || | ||
|      test "x$gui_gtk5" = "xyes" || | ||
|      test "x$gui_sdl2" = "xyes" || | ||
|      test "x$gui_qt" = "xyes" || | ||
|      test "x$gui_stub" = "xyes" ; then | ||
| ... | ... | |
| Maybe another --with-qtver value would help?]) | ||
| fi | ||
| if test "x$req_fcmp_gtk5" = "xyes" || | ||
|    test "x$modinst" = "xall" || test "x$modinst" = "xauto" ; then | ||
|   PKG_CHECK_MODULES([GTK5_MP], [gtk4 >= 4.14.0], | ||
| [ | ||
|   GTK5_MP_CFLAGS="$GTK5_MP_CFLAGS -DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_4_14" | ||
|   GTK5_MP_CFLAGS="$GTK5_MP_CFLAGS -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_76" | ||
|   PKG_CHECK_MODULES([GTHREAD_GTK5], [gthread-2.0], | ||
| [ | ||
|   fcmp_gtk5=yes | ||
|   fcmp_list="$fcmp_list gtk4x" | ||
|   mp_gtk5_cflags="$GTK5_MP_CFLAGS $GTHREAD_GTK5_CFLAGS" | ||
|   mp_gtk5_libs="$GTK5_MP_LIBS $GTHREAD_GTK5_LIBS" | ||
|   if test "x$MINGW" = "xyes"; then | ||
|     dnl Required to compile gtk5 on Windows platform | ||
|     mp_gtk5_cflags="$mp_gtk5_cflags -mms-bitfields" | ||
|     mp_gtk5_ldflags="$mp_gtk5_ldflags $MWINDOWS_FLAG" | ||
|   fi | ||
|   if test "x$modinst" = "xauto" ; then | ||
|     modinst=found | ||
|   fi | ||
| ], [fcmp_gtk5=no])], [fcmp_gtk5=no]) | ||
| fi | ||
| if test "x$req_fcmp_gtk5" = "xyes" && test "x$fcmp_gtk5" != "xyes" ; then | ||
|   AC_MSG_ERROR([Cannot build gtk4x-version of freeciv-modpack as requested]) | ||
| fi | ||
| dnl Cli does not satisfy --enable-fcmp=auto as it's not an gui. | ||
| if test "x$req_fcmp_cli" = "xyes" || test "x$modinst" = "xall" ; then | ||
|   fcmp_cli=yes | ||
| ... | ... | |
|    test "x$modinst" != "xcli" && | ||
|    test "x$fcmp_gtk3" != "xyes" && | ||
|    test "x$fcmp_gtk4" != "xyes" && | ||
|    test "x$fcmp_gtk5" != "xyes" && | ||
|    test "x$fcmp_qt" != "xyes" ;then | ||
|   AC_MSG_ERROR([Cannot build modpack installer with any gui]) | ||
| fi | ||
| ... | ... | |
|   dnl Hack to get a run-time icon -- not needed on Windows | ||
|   mp_gtk3_cflags="$mp_gtk3_cflags -DMPICON_PATH=\"\\\"$datadir/freeciv/misc/mpicon.png\\\"\"" | ||
|   mp_gtk4_cflags="$mp_gtk4_cflags -DMPICON_PATH=\"\\\"$datadir/freeciv/misc/mpicon.png\\\"\"" | ||
|   mp_gtk5_cflags="$mp_gtk5_cflags -DMPICON_PATH=\"\\\"$datadir/freeciv/misc/mpicon.png\\\"\"" | ||
| fi | ||
| if test "x$fcmp_list" = "x" ; then | ||
| ... | ... | |
| AM_CONDITIONAL([MODINST], [test "x$modinst" != "xno"]) | ||
| AM_CONDITIONAL([MODINST_GTK3], [test "x$fcmp_gtk3" = "xyes"]) | ||
| AM_CONDITIONAL([MODINST_GTK4], [test "x$fcmp_gtk4" = "xyes"]) | ||
| AM_CONDITIONAL([MODINST_GTK5], [test "x$fcmp_gtk5" = "xyes"]) | ||
| AM_CONDITIONAL([MODINST_QT], [test "x$fcmp_qt" = "xyes"]) | ||
| AM_CONDITIONAL([MODINST_CLI], [test "x$fcmp_cli" = "xyes"]) | ||
| ... | ... | |
| AC_SUBST([gui_gtk4_cflags]) | ||
| AC_SUBST([gui_gtk4_libs]) | ||
| AC_SUBST([gui_gtk4_ldflags]) | ||
| AC_SUBST([gui_gtk5_cflags]) | ||
| AC_SUBST([gui_gtk5_libs]) | ||
| AC_SUBST([gui_gtk5_ldflags]) | ||
| AC_SUBST([gui_sdl2_cflags]) | ||
| AC_SUBST([gui_sdl2_libs]) | ||
| AC_SUBST([gui_sdl2_ldflags]) | ||
| ... | ... | |
| AC_SUBST([mp_gtk4_cflags]) | ||
| AC_SUBST([mp_gtk4_libs]) | ||
| AC_SUBST([mp_gtk4_ldflags]) | ||
| AC_SUBST([mp_gtk5_cflags]) | ||
| AC_SUBST([mp_gtk5_libs]) | ||
| AC_SUBST([mp_gtk5_ldflags]) | ||
| AC_SUBST([mp_qt_cppflags]) | ||
| AC_SUBST([mp_qt_cxxflags]) | ||
| AC_SUBST([mp_qt_libs]) | ||
| ... | ... | |
| AM_CONDITIONAL(CLIENT_GUI_SDL2, test "x$gui_sdl2" = "xyes") | ||
| AM_CONDITIONAL(CLIENT_GUI_GTK_3_22, test "x$gui_gtk3_22" = "xyes") | ||
| AM_CONDITIONAL(CLIENT_GUI_GTK_4, test "x$gui_gtk4" = "xyes") | ||
| AM_CONDITIONAL(CLIENT_GUI_GTK_5, test "x$gui_gtk5" = "xyes") | ||
| AM_CONDITIONAL(CLIENT_GUI_QT, test "x$gui_qt" = "xyes") | ||
| AM_CONDITIONAL(CLIENT_GUI_STUB, test "x$gui_stub" = "xyes") | ||
| AM_CONDITIONAL(MINGW, test x"$MINGW" = "xyes") | ||
| ... | ... | |
|     SDL2:    $gui_sdl2 | ||
|     Stub:    $gui_stub | ||
|   In-development client frontends: | ||
|    (these are not yet ready for general use) | ||
|     Gtk-4.x: $gui_gtk5 | ||
|   == Server == | ||
|   Build freeciv server:  $server | ||
|     AI modules support:    $enable_aimodules | ||
| data/themes/Makefile.am | ||
|---|---|---|
| if CLIENT_GUI_GTK_4 | ||
| SUBDIRS += gtk4 | ||
| else | ||
| if CLIENT_GUI_GTK_5 | ||
| SUBDIRS += gtk4 | ||
| endif | ||
| endif | ||
| if CLIENT_GUI_SDL2 | ||
| m4/gtk5-client.m4 | ||
|---|---|---|
| # Try to configure the GTK-4.x client (gui-gtk-5.0) | ||
| # FC_GTK5_CLIENT | ||
| # Test for GTK-5.0 libraries needed for gui-gtk-4.x | ||
| AC_DEFUN([FC_GTK5_CLIENT], | ||
| [ | ||
|   if test "x$gui_gtk5" = "xyes" || | ||
|      test "x$client" = "xall" || test "x$client" = "xauto" ; then | ||
|     PKG_CHECK_MODULES([GTK5], [gtk4 >= 4.14.0], | ||
|       [ | ||
|         GTK5_CFLAGS="$GTK5_CFLAGS -DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_4_8" | ||
|         GTK5_CFLAGS="$GTK5_CFLAGS -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_76" | ||
|         gui_gtk5=yes | ||
|         if test "x$client" = "xauto" ; then | ||
|           client=yes | ||
|         fi | ||
|         gui_gtk5_cflags="$GTK5_CFLAGS" | ||
|         gui_gtk5_libs="$GTK5_LIBS" | ||
|         if test "x$MINGW" = "xyes"; then | ||
|           dnl Required to compile gtk5 on Windows platform | ||
|           gui_gtk5_cflags="$gui_gtk5_cflags -mms-bitfields" | ||
|           gui_gtk5_ldflags="$gui_gtk5_ldflags $MWINDOWS_FLAG" | ||
|         fi | ||
|       ], | ||
|       [ | ||
|         FC_NO_CLIENT([gtk4x], [GTK-4.x libraries not found]) | ||
|       ]) | ||
|   fi | ||
| ]) | ||
| tools/fcmp/Makefile.am | ||
|---|---|---|
| if MODINST_GTK4 | ||
| bin_PROGRAMS += freeciv-mp-gtk4 | ||
| endif | ||
| if MODINST_GTK5 | ||
| bin_PROGRAMS += freeciv-mp-gtk4x | ||
| endif | ||
| if MODINST_QT | ||
| bin_PROGRAMS += freeciv-mp-qt | ||
| endif | ||
| ... | ... | |
| 		$(MPICON) | ||
| endif | ||
| if MODINST_GTK5 | ||
| freeciv_mp_gtk4x_CPPFLAGS = $(common_cppflags) $(mp_gtk5_cflags) | ||
| freeciv_mp_gtk4x_SOURCES = mpgui_gtk5.c | ||
| freeciv_mp_gtk4x_LDFLAGS = $(mp_gtk5_ldflags) | ||
| freeciv_mp_gtk4x_LDADD = \ | ||
| 		libfcmp.la \ | ||
| 		$(top_builddir)/dependencies/cvercmp/libcvercmp.la \ | ||
| 		$(top_builddir)/common/libfreeciv.la \ | ||
| 		$(TINYCTHR_LIBS) $(MAPIMG_WAND_LIBS) \ | ||
| 		$(mp_gtk5_libs) -lsqlite3 \ | ||
| 		$(MPICON) | ||
| endif | ||
| if MODINST_QT | ||
| MOC_FILES = \ | ||
| ... | ... | |
| 		$(mp_qt_libs) -lsqlite3 \ | ||
| 		$(MPICON) | ||
| endif | ||
| EXTRA_DIST = mpgui_gtk5.c | ||