Feature #1590 ยป 0051-Msys2-Drop-Makefile.autotools.patch
| platforms/windows/Makefile.am | ||
|---|---|---|
| 		installer_msys2/freeciv-server.cmd		\ | ||
| 		installer_msys2/freeciv-ruledit.cmd		\ | ||
| 		installer_msys2/Freeciv.url			\ | ||
| 		installer_msys2/Makefile.autotools		\ | ||
| 		installer_msys2/Makefile.meson			\ | ||
| 		installer_msys2/cleanup_checkout.sh		\ | ||
| 		installer_cross/create-freeciv-gtk-qt-nsi.sh	\ | ||
| 		installer_cross/create-freeciv-sdl2-nsi.sh	\ | ||
| 		installer_cross/create-freeciv-ruledit-nsi.sh	\ | ||
| platforms/windows/installer_msys2/Makefile.autotools | ||
|---|---|---|
| # | ||
| # Makefile for Freeciv Windows installer creation | ||
| # | ||
| # See doc/README.msys2 for building instructions. | ||
| # | ||
| # | ||
| # Variable setup | ||
| # | ||
| MAKEFILE_NAME=Makefile.autotools | ||
| OUT_DIR=autotools/output | ||
| BUILD_DIR=autotools/build | ||
| INST_DIR=autotools/install | ||
| NSI_DIR=autotools/nsi | ||
| SRC_ROOT=../../.. | ||
| ifeq ($(MSYSTEM),MINGW64) | ||
| WINARCH=win64 | ||
| ARCHDIR=mingw64 | ||
| LIBGCCDLL=libgcc_s_seh-1.dll | ||
| CPPLIBS=libstdc++-6.dll libgomp-1.dll libgmp-10.dll | ||
| CRYPTOLIB_SUFFIX=-x64 | ||
| PREF_WIN_VER=0x0603 | ||
| else ifeq ($(MSYSTEM),UCRT64) | ||
| WINARCH=win64-10 | ||
| ARCHDIR=ucrt64 | ||
| CPPLIBS=libstdc++-6.dll libgomp-1.dll libgmp-10.dll | ||
| CRYPTOLIB_SUFFIX=-x64 | ||
| LIBGCCDLL=libgcc_s_seh-1.dll | ||
| PREF_WIN_VER=0x0A00 | ||
| else ifeq ($(MSYSTEM),CLANG64) | ||
| WINARCH=win64+ | ||
| ARCHDIR=clang64 | ||
| LIBGCCDLL= | ||
| CPPLIBS=libc++.dll libomp.dll libunwind.dll | ||
| CRYPTOLIB_SUFFIX=-x64 | ||
| PREF_WIN_VER=0x0A00 | ||
| else | ||
| error "Unsupported MSYSTEM environment" | ||
| endif | ||
| ifeq ($(MIN_WIN_VER),) | ||
| MIN_WIN_VER=$(PREF_WIN_VER) | ||
| endif | ||
| ifeq ($(MAKE_PARAMS),) | ||
| MAKE_PARAMS="-j$(shell nproc)" | ||
| endif | ||
| ifeq ($(MOCCMD),) | ||
| QT6_MOCCMD="/$(ARCHDIR)/share/qt6/bin/moc.exe" | ||
| else | ||
| QT6_MOCCMD="$(MOCCMD)" | ||
| endif | ||
| MAGICKVER=7.Q16HDRI-10 | ||
| FFIVER=8 | ||
| CRYPTOVERSUF=3${CRYPTOLIB_SUFFIX} | ||
| INSTSUB=${ARCHDIR} | ||
| # msys2 has dlls in... | ||
| DLLPATH_PREFIX=/$(ARCHDIR)/bin/ | ||
| ICUVER=76 | ||
| # | ||
| # Make rules | ||
| # | ||
| # By default build all installers. | ||
| all: all-$(WINARCH) | ||
| all-win64: gtk3.22-installer sdl2-installer ruledit-installer-qt5 qt5-installer | ||
| all-win64-10: gtk3.22-installer sdl2-installer ruledit-installer qt6-installer gtk4-installer | ||
| all-win64+: | ||
| 	CFLAGS="-Wno-cast-align $(CFLAGS)" make -f $(MAKEFILE_NAME) gtk3.22-installer | ||
| 	CFLAGS="-Wno-cast-align $(CFLAGS)" make -f $(MAKEFILE_NAME) sdl2-installer | ||
| 	CFLAGS="-Wno-cast-align $(CFLAGS)" make -f $(MAKEFILE_NAME) ruledit-installer | ||
| 	CFLAGS="-Wno-cast-align $(CFLAGS)" make -f $(MAKEFILE_NAME) qt6-installer | ||
| 	CFLAGS="-Wno-cast-align $(CFLAGS)" make -f $(MAKEFILE_NAME) gtk4-installer | ||
| gtk3.22-installer: | ||
| 	make -f $(MAKEFILE_NAME) GUI=gtk3.22 CLIENT=gtk3.22 FCMP=gtk3 EXTRA_CONFIG="--disable-ruledit $(EXTRA_CONFIG)" wrap-gtk3.22 | ||
| gtk4-installer: | ||
| 	make -f $(MAKEFILE_NAME) GUI=gtk4 CLIENT=gtk4 FCMP=gtk4 EXTRA_CONFIG="--disable-ruledit $(EXTRA_CONFIG)" wrap-gtk4 | ||
| sdl2-installer: | ||
| 	make -f $(MAKEFILE_NAME) GUI=sdl2 CLIENT=sdl2 FCMP=gtk4 EXTRA_CONFIG="--disable-ruledit $(EXTRA_CONFIG)" wrap-sdl2 | ||
| qt-installer: qt6-installer | ||
| qt5-installer: | ||
| 	make -f $(MAKEFILE_NAME) GUI=qt5 CLIENT=qt FCMP=qt EXTRA_CONFIG="--with-qtver=qt5 --with-qt5-includes=/$(ARCHDIR)/include --with-qt5-libs=/$(ARCHDIR)/lib $(EXTRA_CONFIG)" wrap-qt5 | ||
| qt6-installer: | ||
| 	make -f $(MAKEFILE_NAME) GUI=qt6 CLIENT=qt FCMP=qt EXTRA_CONFIG="--with-qtver=qt6 --with-qt6-includes=/$(ARCHDIR)/include/qt6 --with-qt6-libs=/$(ARCHDIR)/lib $(EXTRA_CONFIG)" MOCCMD="$(QT6_MOCCMD)" wrap-qt6 | ||
| ruledit-installer: ruledit-installer-qt6 | ||
| ruledit-installer-qt5: | ||
| 	# EXTRA_CONFIG="$(EXTRA_CONFIG)" *does* make a difference - it unwraps one layer | ||
| 	# of escapes, needed for snapshot builds. | ||
| 	make -f $(MAKEFILE_NAME) EXTRA_CONFIG="$(EXTRA_CONFIG)" wrap-ruledit-qt5 | ||
| ruledit-installer-qt6: | ||
| 	# EXTRA_CONFIG="$(EXTRA_CONFIG)" *does* make a difference - it unwraps one layer | ||
| 	# of escapes, needed for snapshot builds. | ||
| 	make -f $(MAKEFILE_NAME) EXTRA_CONFIG="$(EXTRA_CONFIG)" MOCCMD="$(QT6_MOCCMD)" wrap-ruledit-qt6 | ||
| snapshot: | ||
| 	cd $(SRC_ROOT) ; ./scripts/refresh_changelog.sh ; ./autogen.sh --no-configure-run | ||
| 	make -f $(MAKEFILE_NAME) VERSION_REVTYPE="git" EXTRA_CONFIG="--enable-gitrev --with-project-definition=$(SRC_ROOT)/../../../bootstrap/snapshot.project CFLAGS=\\\"-Werror \$$\$$CFLAGS\\\" CXXFLAGS=\\\"\$$\$$CXXFLAGS\\\"" all | ||
| # Configure Freeciv | ||
| configure-freeciv-common: | ||
| 	# Create build directory | ||
| 	mkdir -p $(BUILD_DIR)/$(WINARCH)-$(GUI) | ||
| 	# Configure | ||
| 	cd $(BUILD_DIR)/$(WINARCH)-$(GUI); $(SRC_ROOT)/../../../configure FREECIV_LABEL_FORCE="<base>-msys2" CPPFLAGS="-D_WIN32_WINNT=$(MIN_WIN_VER)" --enable-client=$(CLIENT) --with-followtag="windows-S3_3" --with-tinycthread --without-readline --disable-sys-lua --enable-fcdb=sqlite3 --with-sqlite3-prefix=/$(ARCHDIR) --enable-fcmp=$(FCMP) --with-cacert-path="./ssl/certs/ca-bundle.crt" --enable-ack-legacy $(EXTRA_CONFIG) | ||
| configure-freeciv-ruledit-qt5: | ||
| 	# Create build directory | ||
| 	mkdir -p $(BUILD_DIR)/$(WINARCH)-ruledit-qt5 | ||
| 	# Configure | ||
| 	cd $(BUILD_DIR)/$(WINARCH)-ruledit-qt5; $(SRC_ROOT)/../../../configure FREECIV_LABEL_FORCE="<base>-msys2" CPPFLAGS="-D_WIN32_WINNT=$(MIN_WIN_VER)" --with-qtver=qt5 --disable-client --disable-server --disable-fcmp --disable-freeciv-manual --disable-sys-lua --enable-ruledit --enable-ai-static=stub --with-cacert-path="./ssl/certs/ca-bundle.crt" --with-qt5-includes=/$(ARCHDIR)/include --with-qt5-libs=/$(ARCHDIR)/lib --enable-ack-legacy $(EXTRA_CONFIG) | ||
| configure-freeciv-ruledit-qt6: | ||
| 	# Create build directory | ||
| 	mkdir -p $(BUILD_DIR)/$(WINARCH)-ruledit-qt6 | ||
| 	# Configure | ||
| 	cd $(BUILD_DIR)/$(WINARCH)-ruledit-qt6; $(SRC_ROOT)/../../../configure FREECIV_LABEL_FORCE="<base>-msys2" CPPFLAGS="-D_WIN32_WINNT=$(MIN_WIN_VER)" --with-qtver=qt6 --disable-client --disable-server --disable-fcmp --disable-freeciv-manual --disable-sys-lua --enable-ruledit --enable-ai-static=stub --with-cacert-path="./ssl/certs/ca-bundle.crt" --with-qt6-includes=/$(ARCHDIR)/include/qt6 --with-qt6-libs=/$(ARCHDIR)/lib --enable-ack-legacy $(EXTRA_CONFIG) | ||
| # Install Freeciv | ||
| install-freeciv-common: clean-install-common configure-freeciv-common | ||
| 	# Make .gmo and langstat files. For the former, this needs to be before 'make install' | ||
| 	make -C $(BUILD_DIR)/$(WINARCH)-$(GUI)/translations/core update-po | ||
| 	make -C $(BUILD_DIR)/$(WINARCH)-$(GUI)/bootstrap langstat_core.txt | ||
| 	# Restore .po files modified by the above update-po, so that repository does not | ||
| 	# Without this, sources would appear modified, in case of --enable-gitrev | ||
| 	./cleanup_checkout.sh $(SRC_ROOT) | ||
| 	# Make install | ||
| 	make -C $(BUILD_DIR)/$(WINARCH)-$(GUI) DESTDIR=`pwd`/$(INST_DIR)/$(WINARCH)-$(GUI) $(MAKE_PARAMS) install | ||
| 	# Reorder directory layout | ||
| 	mv $(INST_DIR)/$(WINARCH)-$(GUI)/$(INSTSUB)/bin/* $(INST_DIR)/$(WINARCH)-$(GUI)/ | ||
| 	mv $(INST_DIR)/$(WINARCH)-$(GUI)/$(INSTSUB)/etc $(INST_DIR)/$(WINARCH)-$(GUI)/ | ||
| 	mv $(INST_DIR)/$(WINARCH)-$(GUI)/$(INSTSUB)/share/freeciv $(INST_DIR)/$(WINARCH)-$(GUI)/data | ||
| 	mkdir -p $(INST_DIR)/$(WINARCH)-$(GUI)/share | ||
| 	mv $(INST_DIR)/$(WINARCH)-$(GUI)/$(INSTSUB)/share/locale $(INST_DIR)/$(WINARCH)-$(GUI)/share/ | ||
| 	mv $(INST_DIR)/$(WINARCH)-$(GUI)/$(INSTSUB)/share/doc $(INST_DIR)/$(WINARCH)-$(GUI)/doc | ||
| 	mkdir -p $(INST_DIR)/$(WINARCH)-$(GUI)/debuginfo | ||
| 	cp $(BUILD_DIR)/$(WINARCH)-$(GUI)/gen_headers/fc_config.h $(INST_DIR)/$(WINARCH)-$(GUI)/debuginfo | ||
| 	mkdir -p $(INST_DIR)/$(WINARCH)-$(GUI)/doc/freeciv/installer | ||
| 	cat licenses/header.txt $(SRC_ROOT)/COPYING > $(INST_DIR)/$(WINARCH)-$(GUI)/doc/freeciv/installer/COPYING.installer | ||
| 	# Delete unneeded files | ||
| 	rm -r $(INST_DIR)/$(WINARCH)-$(GUI)/$(INSTSUB) | ||
| 	# Strip 'freeciv-manual' and 'freeciv-mp-<gui>' executables | ||
| 	strip $(INST_DIR)/$(WINARCH)-$(GUI)/freeciv-m* | ||
| 	# Add start menu files | ||
| 	cp freeciv-server.cmd freeciv-mp-$(FCMP).cmd freeciv-$(CLIENT).cmd Freeciv.url $(INST_DIR)/$(WINARCH)-$(GUI)/ | ||
| install-freeciv-gtk3.22: install-freeciv-common | ||
| install-freeciv-gtk4: install-freeciv-common | ||
| install-freeciv-sdl2: install-freeciv-common | ||
| install-freeciv-qt5: install-freeciv-common | ||
| 	# Strip 'freeciv-ruledit' executable | ||
| 	strip $(INST_DIR)/$(WINARCH)-$(GUI)/freeciv-ruledit.exe | ||
| 	cp freeciv-ruledit.cmd $(INST_DIR)/$(WINARCH)-$(GUI)/ | ||
| install-freeciv-qt6: install-freeciv-common | ||
| 	# Strip 'freeciv-ruledit' executable | ||
| 	strip $(INST_DIR)/$(WINARCH)-$(GUI)/freeciv-ruledit.exe | ||
| 	cp freeciv-ruledit.cmd $(INST_DIR)/$(WINARCH)-$(GUI)/ | ||
| install-ruledit-dir-qt5: | ||
| 	mkdir -p $(INST_DIR)/$(WINARCH)-ruledit-qt5/share | ||
| install-ruledit-dir-qt6: | ||
| 	mkdir -p $(INST_DIR)/$(WINARCH)-ruledit-qt6/share | ||
| install-ruledit-qt5: configure-freeciv-ruledit-qt5 install-ruledit-dir-qt5 | ||
| 	# Make .gmo and langstat files. For the former, this needs to be before 'make install' | ||
| 	make -C $(BUILD_DIR)/$(WINARCH)-ruledit-qt5/translations/ruledit update-po | ||
| 	make -C $(BUILD_DIR)/$(WINARCH)-ruledit-qt5/bootstrap langstat_ruledit.txt | ||
| 	# Restore .po files modified by the above update-po, so that repository does not | ||
| 	# Without this, sources would appear modified, in case of --enable-gitrev | ||
| 	./cleanup_checkout.sh $(SRC_ROOT) | ||
| 	# Make install | ||
| 	make -C $(BUILD_DIR)/$(WINARCH)-ruledit-qt5 DESTDIR=`pwd`/$(INST_DIR)/$(WINARCH)-ruledit-qt5/ $(MAKE_PARAMS) install | ||
| 	# Reorder directory layout | ||
| 	mv $(INST_DIR)/$(WINARCH)-ruledit-qt5/$(INSTSUB)/bin/* $(INST_DIR)/$(WINARCH)-ruledit-qt5/ | ||
| 	mv $(INST_DIR)/$(WINARCH)-ruledit-qt5/$(INSTSUB)/share/freeciv $(INST_DIR)/$(WINARCH)-ruledit-qt5/data | ||
| 	mv $(INST_DIR)/$(WINARCH)-ruledit-qt5/$(INSTSUB)/share/locale $(INST_DIR)/$(WINARCH)-ruledit-qt5/share/ | ||
| 	mv $(INST_DIR)/$(WINARCH)-ruledit-qt5/$(INSTSUB)/share/doc $(INST_DIR)/$(WINARCH)-ruledit-qt5/doc | ||
| 	mkdir -p $(INST_DIR)/$(WINARCH)-ruledit-qt5/debuginfo | ||
| 	cp $(BUILD_DIR)/$(WINARCH)-ruledit-qt5/gen_headers/fc_config.h $(INST_DIR)/$(WINARCH)-ruledit-qt5/debuginfo | ||
| 	mkdir -p $(INST_DIR)/$(WINARCH)-ruledit-qt5/doc/freeciv/installer | ||
| 	cat licenses/header.txt $(SRC_ROOT)/COPYING > $(INST_DIR)/$(WINARCH)-ruledit-qt5/doc/freeciv/installer/COPYING.installer | ||
| 	# Delete unneeded files | ||
| 	rm -r $(INST_DIR)/$(WINARCH)-ruledit-qt5/$(INSTSUB) | ||
| 	# Strip 'freeciv-ruledit' executable | ||
| 	strip $(INST_DIR)/$(WINARCH)-ruledit-qt5/freeciv-ruledit.exe | ||
| 	# Add start menu files | ||
| 	cp freeciv-ruledit.cmd Freeciv.url $(INST_DIR)/$(WINARCH)-ruledit-qt5/ | ||
| install-ruledit-qt6: configure-freeciv-ruledit-qt6 install-ruledit-dir-qt6 | ||
| 	# Make .gmo and langstat files. For the former, this needs to be before 'make install' | ||
| 	make -C $(BUILD_DIR)/$(WINARCH)-ruledit-qt6/translations/ruledit update-po | ||
| 	make -C $(BUILD_DIR)/$(WINARCH)-ruledit-qt6/bootstrap langstat_ruledit.txt | ||
| 	# Restore .po files modified by the above update-po, so that repository does not | ||
| 	# Without this, sources would appear modified, in case of --enable-gitrev | ||
| 	./cleanup_checkout.sh $(SRC_ROOT) | ||
| 	# Make install | ||
| 	make -C $(BUILD_DIR)/$(WINARCH)-ruledit-qt6 DESTDIR=`pwd`/$(INST_DIR)/$(WINARCH)-ruledit-qt6/ $(MAKE_PARAMS) install | ||
| 	# Reorder directory layout | ||
| 	mv $(INST_DIR)/$(WINARCH)-ruledit-qt6/$(INSTSUB)/bin/* $(INST_DIR)/$(WINARCH)-ruledit-qt6/ | ||
| 	mv $(INST_DIR)/$(WINARCH)-ruledit-qt6/$(INSTSUB)/share/freeciv $(INST_DIR)/$(WINARCH)-ruledit-qt6/data | ||
| 	mv $(INST_DIR)/$(WINARCH)-ruledit-qt6/$(INSTSUB)/share/locale $(INST_DIR)/$(WINARCH)-ruledit-qt6/share/ | ||
| 	mv $(INST_DIR)/$(WINARCH)-ruledit-qt6/$(INSTSUB)/share/doc $(INST_DIR)/$(WINARCH)-ruledit-qt6/doc | ||
| 	mkdir -p $(INST_DIR)/$(WINARCH)-ruledit-qt6/debuginfo | ||
| 	cp $(BUILD_DIR)/$(WINARCH)-ruledit-qt6/gen_headers/fc_config.h $(INST_DIR)/$(WINARCH)-ruledit-qt6/debuginfo | ||
| 	mkdir -p $(INST_DIR)/$(WINARCH)-ruledit-qt6/doc/freeciv/installer | ||
| 	cat licenses/header.txt $(SRC_ROOT)/COPYING > $(INST_DIR)/$(WINARCH)-ruledit-qt6/doc/freeciv/installer/COPYING.installer | ||
| 	# Delete unneeded files | ||
| 	rm -r $(INST_DIR)/$(WINARCH)-ruledit-qt6/$(INSTSUB) | ||
| 	# Strip 'freeciv-ruledit' executable | ||
| 	strip $(INST_DIR)/$(WINARCH)-ruledit-qt6/freeciv-ruledit.exe | ||
| 	# Add start menu files | ||
| 	cp freeciv-ruledit.cmd Freeciv.url $(INST_DIR)/$(WINARCH)-ruledit-qt6/ | ||
| # Install Freeciv environment | ||
| SOUND_DLLS := \ | ||
| 	SDL2.dll \ | ||
| 	SDL2_mixer.dll \ | ||
| 	libFLAC.dll \ | ||
| 	libfluidsynth-3.dll \ | ||
| 	libmodplug-1.dll \ | ||
| 	libvorbis-0.dll \ | ||
| 	libvorbisenc-2.dll \ | ||
| 	libvorbisfile-3.dll \ | ||
| 	libogg-0.dll \ | ||
| 	libportaudio.dll \ | ||
| 	libsndfile-1.dll \ | ||
| 	libmpg123-0.dll \ | ||
| 	libopusfile-0.dll \ | ||
| 	libopus-0.dll | ||
| COMMON_DLLS := \ | ||
| 	$(CPPLIBS) \ | ||
| 	libcrypto-${CRYPTOVERSUF}.dll \ | ||
| 	libpsl-5.dll \ | ||
| 	libssl-${CRYPTOVERSUF}.dll \ | ||
| 	libidn2-0.dll \ | ||
| 	libnghttp2-14.dll \ | ||
| 	libnghttp3-9.dll \ | ||
| 	libssh2-1.dll \ | ||
| 	libcurl-4.dll \ | ||
| 	libp11-kit-0.dll \ | ||
| 	libtasn1-6.dll \ | ||
| 	libatk-1.0-0.dll \ | ||
| 	libbz2-1.dll \ | ||
| 	libcairo-2.dll \ | ||
| 	libcairo-gobject-2.dll \ | ||
| 	libffi-${FFIVER}.dll \ | ||
| 	libfontconfig-1.dll \ | ||
| 	libfreetype-6.dll \ | ||
| 	$(LIBGCCDLL) \ | ||
| 	libgdk_pixbuf-2.0-0.dll \ | ||
| 	libgio-2.0-0.dll \ | ||
| 	libglib-2.0-0.dll \ | ||
| 	libpcre2-8-0.dll \ | ||
| 	libgmodule-2.0-0.dll \ | ||
| 	libgobject-2.0-0.dll \ | ||
| 	libgthread-2.0-0.dll \ | ||
| 	libiconv-2.dll \ | ||
| 	libintl-8.dll \ | ||
| 	liblzma-5.dll \ | ||
| 	libpango-1.0-0.dll \ | ||
| 	libpangocairo-1.0-0.dll \ | ||
| 	libpangowin32-1.0-0.dll \ | ||
| 	libfribidi-0.dll \ | ||
| 	libpixman-1-0.dll \ | ||
| 	libpng16-16.dll \ | ||
| 	libxml2-2.dll \ | ||
| 	zlib1.dll \ | ||
| 	libwinpthread-1.dll \ | ||
| 	libicuuc${ICUVER}.dll \ | ||
| 	libicudt${ICUVER}.dll \ | ||
| 	libsqlite3-0.dll \ | ||
| 	exchndl.dll \ | ||
| 	mgwhelp.dll \ | ||
| 	libbrotlidec.dll \ | ||
| 	libbrotlicommon.dll \ | ||
| 	libreadline8.dll \ | ||
| 	libtermcap-0.dll \ | ||
| 	libzstd.dll \ | ||
| 	libMagickWand-${MAGICKVER}.dll \ | ||
| 	libMagickCore-${MAGICKVER}.dll \ | ||
| 	libfftw3-3.dll \ | ||
| 	liblcms2-2.dll \ | ||
| 	liblqr-1-0.dll \ | ||
| 	libltdl-7.dll \ | ||
| 	libraqm-0.dll \ | ||
| 	libexpat-1.dll \ | ||
| 	$(SOUND_DLLS) | ||
| install-env-common: | ||
| 	# Add DLLs | ||
| 	cp -R $(addprefix $(DLLPATH_PREFIX), $(COMMON_DLLS)) $(INST_DIR)/$(WINARCH)-$(GUI)/ | ||
| 	mkdir -p $(INST_DIR)/$(WINARCH)-$(GUI)/ssl/certs | ||
| 	cp -R /$(ARCHDIR)/etc/ssl/certs/ca-bundle.crt $(INST_DIR)/$(WINARCH)-$(GUI)/ssl/certs/ | ||
| DEFAULT_FCMP_DLLS := \ | ||
| 	libgdk-3-0.dll \ | ||
| 	libgtk-3-0.dll \ | ||
| 	libharfbuzz-0.dll \ | ||
| 	libepoxy-0.dll \ | ||
| 	libgraphite2.dll \ | ||
| 	libpangoft2-1.0-0.dll \ | ||
| 	libthai-0.dll \ | ||
| 	libdatrie-1.dll \ | ||
| 	libunistring-5.dll \ | ||
| 	librsvg-2-2.dll \ | ||
| 	libtiff-6.dll \ | ||
| 	libjpeg-8.dll \ | ||
| 	libLerc.dll \ | ||
| 	libwebp-7.dll \ | ||
| 	libdeflate.dll \ | ||
| 	libjbig-0.dll \ | ||
| 	libsharpyuv-0.dll | ||
| install-env-default-fcmp: install-env-common | ||
| 	cp -R $(addprefix $(DLLPATH_PREFIX), $(DEFAULT_FCMP_DLLS)) $(INST_DIR)/$(WINARCH)-$(GUI)/ | ||
| 	# Add additional GTK+3 files | ||
| 	mkdir -p $(INST_DIR)/$(WINARCH)-$(GUI)/etc | ||
| 	cp -R /$(ARCHDIR)/etc/gtk-3.0 $(INST_DIR)/$(WINARCH)-$(GUI)/etc/ | ||
| 	mkdir -p $(INST_DIR)/$(WINARCH)-$(GUI)/share/icons | ||
| 	cp -R /$(ARCHDIR)/share/icons/Adwaita $(INST_DIR)/$(WINARCH)-$(GUI)/share/icons/ | ||
| 	mkdir -p $(INST_DIR)/$(WINARCH)-$(GUI)/share/glib-2.0/schemas | ||
| 	cp /$(ARCHDIR)/share/glib-2.0/schemas/gschemas.compiled $(INST_DIR)/$(WINARCH)-$(GUI)/share/glib-2.0/schemas/ | ||
| 	mkdir -p $(INST_DIR)/$(WINARCH)-$(GUI)/lib/gtk-3.0/ | ||
| 	cp -R /$(ARCHDIR)/lib/gtk-3.0/* $(INST_DIR)/$(WINARCH)-$(GUI)/lib/gtk-3.0/ | ||
| 	mkdir -p $(INST_DIR)/$(WINARCH)-$(GUI)/lib/gdk-pixbuf-2.0/ | ||
| 	cp -R /$(ARCHDIR)/lib/gdk-pixbuf-2.0/* $(INST_DIR)/$(WINARCH)-$(GUI)/lib/gdk-pixbuf-2.0/ | ||
| 	cp -R /$(ARCHDIR)/share/locale $(INST_DIR)/$(WINARCH)-$(GUI)/share/ | ||
| 	find $(INST_DIR)/$(WINARCH)-$(GUI)/share/locale -type f -not -name "freeciv-*.mo" -and -not -name gtk30.mo -delete | ||
| install-env-gtk3.22: install-env-default-fcmp | ||
| GTK4_FCMP_DLLS := \ | ||
| 	libgtk-4-1.dll \ | ||
| 	libcairo-script-interpreter-2.dll \ | ||
| 	libepoxy-0.dll \ | ||
| 	libgraphene-1.0-0.dll \ | ||
| 	libharfbuzz-0.dll \ | ||
| 	libpangoft2-1.0-0.dll \ | ||
| 	libunistring-5.dll \ | ||
| 	libthai-0.dll \ | ||
| 	liblzo2-2.dll \ | ||
| 	libgraphite2.dll \ | ||
| 	libdatrie-1.dll \ | ||
| 	libtiff-6.dll \ | ||
| 	libjpeg-8.dll \ | ||
| 	libLerc.dll \ | ||
| 	libwebp-7.dll \ | ||
| 	libdeflate.dll \ | ||
| 	libjbig-0.dll \ | ||
| 	libsharpyuv-0.dll \ | ||
| 	libharfbuzz-subset-0.dll | ||
| install-env-gtk4-fcmp: install-env-common | ||
| 	cp -R $(addprefix $(DLLPATH_PREFIX), $(GTK4_FCMP_DLLS)) $(INST_DIR)/$(WINARCH)-$(GUI)/ | ||
| 	# Add additional GTK4 files | ||
| 	cp /$(ARCHDIR)/bin/gdbus.exe $(INST_DIR)/$(WINARCH)-$(GUI)/ | ||
| 	mkdir -p $(INST_DIR)/$(WINARCH)-$(GUI)/lib/gdk-pixbuf-2.0/ | ||
| 	cp -R /$(ARCHDIR)/lib/gdk-pixbuf-2.0/* $(INST_DIR)/$(WINARCH)-$(GUI)/lib/gdk-pixbuf-2.0/ | ||
| 	cp -R /$(ARCHDIR)/share/locale $(INST_DIR)/$(WINARCH)-$(GUI)/share/ | ||
| 	find $(INST_DIR)/$(WINARCH)-$(GUI)/share/locale -type f -not -name "freeciv-*.mo" -and -not -name gtk40.mo -delete | ||
| install-env-gtk4: install-env-gtk4-fcmp | ||
| SDL2_DLLS := \ | ||
| 	libSDL2_gfx-1-0-0.dll \ | ||
| 	SDL2_image.dll \ | ||
| 	SDL2_ttf.dll \ | ||
| 	libzstd.dll \ | ||
| 	libjxl.dll \ | ||
| 	libbrotlienc.dll \ | ||
| 	libhwy.dll \ | ||
| 	libavif-16.dll \ | ||
| 	libwebpdemux-2.dll \ | ||
| 	libjxl_cms.dll \ | ||
| 	libaom.dll \ | ||
| 	libdav1d-7.dll \ | ||
| 	librav1e.dll \ | ||
| 	libSvtAv1Enc-2.dll \ | ||
| 	libyuv.dll | ||
| install-env-sdl2: install-env-gtk4-fcmp | ||
| 	# Add DLLs | ||
| 	cp -R $(addprefix $(DLLPATH_PREFIX), $(SDL2_DLLS)) $(INST_DIR)/$(WINARCH)-$(GUI)/ | ||
| QT5_DLLS := \ | ||
| 	libicuin${ICUVER}.dll \ | ||
| 	libicuuc${ICUVER}.dll \ | ||
| 	libicudt${ICUVER}.dll \ | ||
| 	libharfbuzz-0.dll \ | ||
| 	libsqlite3-0.dll \ | ||
| 	Qt5Core.dll \ | ||
| 	Qt5Gui.dll \ | ||
| 	Qt5Widgets.dll \ | ||
| 	libgraphite2.dll \ | ||
| 	libpcre2-8-0.dll \ | ||
| 	libpcre2-16-0.dll \ | ||
| 	libunistring-5.dll \ | ||
| 	libbrotlidec.dll \ | ||
| 	libbrotlicommon.dll \ | ||
| 	libdouble-conversion.dll \ | ||
| 	libzstd.dll \ | ||
| 	libmd4c.dll | ||
| install-env-qt5: install-env-common | ||
| 	# Add DLLs | ||
| 	cp -R $(addprefix $(DLLPATH_PREFIX), $(QT5_DLLS)) $(INST_DIR)/$(WINARCH)-$(GUI)/ | ||
| 	# Add additional Qt5 files | ||
| 	cp -R /$(ARCHDIR)/share/qt5/plugins $(INST_DIR)/$(WINARCH)-$(GUI)/ | ||
| 	cp -R /$(ARCHDIR)/share/locale $(INST_DIR)/$(WINARCH)-$(GUI)/share/ | ||
| 	find $(INST_DIR)/$(WINARCH)-$(GUI)/share/locale -type f -not -name "freeciv-*.mo" -delete | ||
| QT6_DLLS := \ | ||
| 	libicuin${ICUVER}.dll \ | ||
| 	libicuuc${ICUVER}.dll \ | ||
| 	libicudt${ICUVER}.dll \ | ||
| 	Qt6Core.dll \ | ||
| 	Qt6Gui.dll \ | ||
| 	Qt6Widgets.dll \ | ||
| 	libunistring-5.dll \ | ||
| 	libpcre2-16-0.dll \ | ||
| 	libharfbuzz-0.dll \ | ||
| 	libgraphite2.dll \ | ||
| 	libdouble-conversion.dll \ | ||
| 	libmd4c.dll \ | ||
| 	libb2-1.dll | ||
| install-env-qt6: install-env-common | ||
| 	# Add DLLs | ||
| 	cp -R $(addprefix $(DLLPATH_PREFIX), $(QT6_DLLS)) $(INST_DIR)/$(WINARCH)-$(GUI)/ | ||
| 	# Add additional Qt6 files | ||
| 	cp -R /$(ARCHDIR)/share/qt6/plugins $(INST_DIR)/$(WINARCH)-$(GUI)/ | ||
| 	cp -R /$(ARCHDIR)/share/locale $(INST_DIR)/$(WINARCH)-$(GUI)/share/ | ||
| 	find $(INST_DIR)/$(WINARCH)-$(GUI)/share/locale -type f -not -name "freeciv-*.mo" -delete | ||
| RULEDIT_QT5_DLLS := \ | ||
| 	$(CPPLIBS) \ | ||
| 	libcrypto-${CRYPTOVERSUF}.dll \ | ||
| 	libpsl-5.dll \ | ||
| 	libssl-${CRYPTOVERSUF}.dll \ | ||
| 	libidn2-0.dll \ | ||
| 	libnghttp2-14.dll \ | ||
| 	libnghttp3-9.dll \ | ||
| 	libssh2-1.dll \ | ||
| 	libcurl-4.dll \ | ||
| 	libp11-kit-0.dll \ | ||
| 	libtasn1-6.dll \ | ||
| 	libatk-1.0-0.dll \ | ||
| 	libbz2-1.dll \ | ||
| 	libcairo-2.dll \ | ||
| 	libcairo-gobject-2.dll \ | ||
| 	libffi-${FFIVER}.dll \ | ||
| 	libfontconfig-1.dll \ | ||
| 	libfreetype-6.dll \ | ||
| 	$(LIBGCCDLL) \ | ||
| 	libglib-2.0-0.dll \ | ||
| 	libgdk_pixbuf-2.0-0.dll \ | ||
| 	libgio-2.0-0.dll \ | ||
| 	libiconv-2.dll \ | ||
| 	libintl-8.dll \ | ||
| 	liblzma-5.dll \ | ||
| 	libpango-1.0-0.dll \ | ||
| 	libpangocairo-1.0-0.dll \ | ||
| 	libpangowin32-1.0-0.dll \ | ||
| 	libpixman-1-0.dll \ | ||
| 	libpng16-16.dll \ | ||
| 	libxml2-2.dll \ | ||
| 	zlib1.dll \ | ||
| 	libwinpthread-1.dll \ | ||
| 	libgraphite2.dll \ | ||
| 	libdouble-conversion.dll \ | ||
| 	libzstd.dll \ | ||
| 	libMagickWand-${MAGICKVER}.dll \ | ||
| 	libMagickCore-${MAGICKVER}.dll \ | ||
| 	libfftw3-3.dll \ | ||
| 	liblcms2-2.dll \ | ||
| 	liblqr-1-0.dll \ | ||
| 	libltdl-7.dll \ | ||
| 	libraqm-0.dll \ | ||
| 	libexpat-1.dll \ | ||
| 	libfribidi-0.dll \ | ||
| 	libmd4c.dll | ||
| install-env-ruledit-qt5: | ||
| 	# Add DLLs | ||
| 	cp -R $(addprefix $(DLLPATH_PREFIX), $(RULEDIT_QT5_DLLS)) $(INST_DIR)/$(WINARCH)-ruledit-qt5/ | ||
| 	cp -R $(addprefix $(DLLPATH_PREFIX), $(QT5_DLLS)) $(INST_DIR)/$(WINARCH)-ruledit-qt5/ | ||
| 	# Add additional Qt files | ||
| 	cp -R /$(ARCHDIR)/share/qt5/plugins $(INST_DIR)/$(WINARCH)-ruledit-qt5/ | ||
| 	cp -R /usr/share/locale $(INST_DIR)/$(WINARCH)-ruledit-qt5/share/ | ||
| 	find $(INST_DIR)/$(WINARCH)-ruledit-qt5/share/locale -type f -not -name "freeciv-*.mo" -delete | ||
| RULEDIT_QT6_DLLS := \ | ||
| 	$(CPPLIBS) \ | ||
| 	libcrypto-${CRYPTOVERSUF}.dll \ | ||
| 	libpsl-5.dll \ | ||
| 	libssl-${CRYPTOVERSUF}.dll \ | ||
| 	libidn2-0.dll \ | ||
| 	libnghttp2-14.dll \ | ||
| 	libnghttp3-9.dll \ | ||
| 	libssh2-1.dll \ | ||
| 	libcurl-4.dll \ | ||
| 	libp11-kit-0.dll \ | ||
| 	libtasn1-6.dll \ | ||
| 	libatk-1.0-0.dll \ | ||
| 	libbz2-1.dll \ | ||
| 	libcairo-2.dll \ | ||
| 	libcairo-gobject-2.dll \ | ||
| 	libffi-${FFIVER}.dll \ | ||
| 	libfontconfig-1.dll \ | ||
| 	libfreetype-6.dll \ | ||
| 	$(LIBGCCDLL) \ | ||
| 	libglib-2.0-0.dll \ | ||
| 	libgdk_pixbuf-2.0-0.dll \ | ||
| 	libgio-2.0-0.dll \ | ||
| 	libiconv-2.dll \ | ||
| 	libintl-8.dll \ | ||
| 	liblzma-5.dll \ | ||
| 	libpango-1.0-0.dll \ | ||
| 	libpangocairo-1.0-0.dll \ | ||
| 	libpangowin32-1.0-0.dll \ | ||
| 	libpixman-1-0.dll \ | ||
| 	libpng16-16.dll \ | ||
| 	libxml2-2.dll \ | ||
| 	zlib1.dll \ | ||
| 	libwinpthread-1.dll \ | ||
| 	libgraphite2.dll \ | ||
| 	libpcre2-8-0.dll \ | ||
| 	libdouble-conversion.dll \ | ||
| 	libzstd.dll \ | ||
| 	libMagickWand-${MAGICKVER}.dll \ | ||
| 	libMagickCore-${MAGICKVER}.dll \ | ||
| 	libfftw3-3.dll \ | ||
| 	liblcms2-2.dll \ | ||
| 	liblqr-1-0.dll \ | ||
| 	libltdl-7.dll \ | ||
| 	libraqm-0.dll \ | ||
| 	libexpat-1.dll \ | ||
| 	libfribidi-0.dll \ | ||
| 	libsqlite3-0.dll \ | ||
| 	libbrotlidec.dll \ | ||
| 	libbrotlicommon.dll | ||
| install-env-ruledit-qt6: | ||
| 	# Add DLLs | ||
| 	cp -R $(addprefix $(DLLPATH_PREFIX), $(RULEDIT_QT6_DLLS)) $(INST_DIR)/$(WINARCH)-ruledit-qt6/ | ||
| 	cp -R $(addprefix $(DLLPATH_PREFIX), $(QT6_DLLS)) $(INST_DIR)/$(WINARCH)-ruledit-qt6/ | ||
| 	# Add additional Qt files | ||
| 	cp -R /$(ARCHDIR)/share/qt6/plugins $(INST_DIR)/$(WINARCH)-ruledit-qt6/ | ||
| 	cp -R /usr/share/locale $(INST_DIR)/$(WINARCH)-ruledit-qt6/share/ | ||
| 	find $(INST_DIR)/$(WINARCH)-ruledit-qt6/share/locale -type f -not -name "freeciv-*.mo" -delete | ||
| # Build installer | ||
| installer-common: install-freeciv-$(GUI) install-env-$(GUI) | ||
| 	# Extract Freeciv version | ||
| 	$(eval FREECIV_VERSION := $(shell $(SRC_ROOT)/fc_version)) | ||
| 	# Create NSIS script | ||
| 	mkdir -p $(NSI_DIR) | ||
| 	./create-freeciv-$(GUI)-nsi.sh $(INST_DIR)/$(WINARCH)-$(GUI) $(OUT_DIR) $(FREECIV_VERSION) $(WINARCH) > $(NSI_DIR)/$(WINARCH)-$(FREECIV_VERSION)-$(GUI).nsi | ||
| 	# Create installer executable | ||
| 	mkdir -p $(OUT_DIR) | ||
| 	makensis -NOCD $(NSI_DIR)/$(WINARCH)-$(FREECIV_VERSION)-$(GUI).nsi | ||
| installer-ruledit-qt5: clean-install-ruledit-qt5 install-ruledit-qt5 install-env-ruledit-qt5 | ||
| 	# Extract Freeciv version | ||
| 	$(eval FREECIV_VERSION := $(shell $(SRC_ROOT)/fc_version)) | ||
| 	# Create NSIS script | ||
| 	mkdir -p $(NSI_DIR) | ||
| 	./create-freeciv-ruledit-nsi.sh $(INST_DIR)/$(WINARCH)-ruledit-qt5 $(OUT_DIR) $(FREECIV_VERSION) $(WINARCH) > $(NSI_DIR)/$(WINARCH)-$(FREECIV_VERSION)-ruledit-qt5.nsi | ||
| 	# Create installer executable | ||
| 	mkdir -p $(OUT_DIR) | ||
| 	makensis -NOCD $(NSI_DIR)/$(WINARCH)-$(FREECIV_VERSION)-ruledit-qt5.nsi | ||
| installer-ruledit-qt6: clean-install-ruledit-qt6 install-ruledit-qt6 install-env-ruledit-qt6 | ||
| 	# Extract Freeciv version | ||
| 	$(eval FREECIV_VERSION := $(shell $(SRC_ROOT)/fc_version)) | ||
| 	# Create NSIS script | ||
| 	mkdir -p $(NSI_DIR) | ||
| 	./create-freeciv-ruledit-nsi.sh $(INST_DIR)/$(WINARCH)-ruledit-qt6 $(OUT_DIR) $(FREECIV_VERSION) $(WINARCH) > $(NSI_DIR)/$(WINARCH)-$(FREECIV_VERSION)-ruledit-qt6.nsi | ||
| 	# Create installer executable | ||
| 	mkdir -p $(OUT_DIR) | ||
| 	makensis -NOCD $(NSI_DIR)/$(WINARCH)-$(FREECIV_VERSION)-ruledit-qt6.nsi | ||
| wrap-gtk3.22: installer-common | ||
| wrap-gtk4: installer-common | ||
| wrap-sdl2: installer-common | ||
| wrap-qt5: installer-common | ||
| wrap-qt6: installer-common | ||
| wrap-ruledit-qt5: installer-ruledit-qt5 | ||
| wrap-ruledit-qt6: installer-ruledit-qt6 | ||
| # Cleanup | ||
| clean-build-common: | ||
| 	rm -rf $(BUILD_DIR)/*-$(GUI) | ||
| clean-build-ruledit-qt5: | ||
| 	rm -rf $(BUILD_DIR)/*-ruledit-qt5 | ||
| clean-build-ruledit-qt6: | ||
| 	rm -rf $(BUILD_DIR)/*-ruledit-qt6 | ||
| clean-install-common: | ||
| 	rm -rf $(INST_DIR)/*-$(GUI) | ||
| 	./cleanup_checkout.sh $(SRC_ROOT) | ||
| clean-install-ruledit-qt5: | ||
| 	rm -rf $(INST_DIR)/ruledit-qt5 | ||
| 	./cleanup_checkout.sh $(SRC_ROOT) | ||
| clean-install-ruledit-qt6: | ||
| 	rm -rf $(INST_DIR)/ruledit-qt6 | ||
| 	./cleanup_checkout.sh $(SRC_ROOT) | ||
| clean-installer-common: | ||
| 	rm -f $(OUT_DIR)/Freeciv-*-$(GUI)-setup.exe | ||
| 	rm -f $(NSI_DIR)/*-$(GUI).nsi | ||
| clean-installer-ruledit-qt5: | ||
| 	rm -f $(OUT_DIR)/Freeciv-ruledit-*-setup.exe | ||
| 	rm -f $(NSI_DIR)/*-ruledit-qt5.nsi | ||
| clean-installer-ruledit-qt6: | ||
| 	rm -f $(OUT_DIR)/Freeciv-ruledit-*-setup.exe | ||
| 	rm -f $(NSI_DIR)*-ruledit-qt6.nsi | ||
| clean: | ||
| 	make -f $(MAKEFILE_NAME) GUI=gtk3.22 CLIENT=gtk3.22 clean-build-common clean-install-common clean-installer-common | ||
| 	make -f $(MAKEFILE_NAME) GUI=gtk4 CLIENT=gtk4 clean-build-common clean-install-common clean-installer-common | ||
| 	make -f $(MAKEFILE_NAME) GUI=sdl2 CLIENT=sdl2 clean-build-common clean-install-common clean-installer-common | ||
| 	make -f $(MAKEFILE_NAME) GUI=qt5 CLIENT=qt clean-build-common clean-install-common clean-installer-common | ||
| 	make -f $(MAKEFILE_NAME) GUI=qt6 CLIENT=qt clean-build-common clean-install-common clean-installer-common | ||
| 	make -f $(MAKEFILE_NAME) clean-build-ruledit-qt5 clean-install-ruledit-qt5 clean-installer-ruledit-qt5 | ||
| 	make -f $(MAKEFILE_NAME) clean-build-ruledit-qt6 clean-install-ruledit-qt6 clean-installer-ruledit-qt6 | ||
| platforms/windows/installer_msys2/cleanup_checkout.sh | ||
|---|---|---|
| #!/bin/sh | ||
| if test "${VERSION_REVTYPE}" = "git" ; then | ||
|   git checkout "$1/translations" | ||
| fi | ||