Feature #702 ยป 0004-Msys2-Drop-autotools-support.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
|
||
CRYPTOLIB_SUFFIX=-x64
|
||
PREF_WIN_VER=0x0603
|
||
else ifeq ($(MSYSTEM),UCRT64)
|
||
WINARCH=win64-10
|
||
ARCHDIR=ucrt64
|
||
CRYPTOLIB_SUFFIX=-x64
|
||
LIBGCCDLL=libgcc_s_seh-1.dll
|
||
PREF_WIN_VER=0x0A00
|
||
else ifeq ($(MSYSTEM),CLANG64)
|
||
WINARCH=win64+
|
||
ARCHDIR=clang64
|
||
LIBGCCDLL=
|
||
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/
|
||
ifeq ($(CI),yes)
|
||
ICUVER=75
|
||
else
|
||
ICUVER=75
|
||
endif
|
||
#
|
||
# Make rules
|
||
#
|
||
# By default build all installers.
|
||
all: all-$(WINARCH)
|
||
all-win64: gtk3.22-installer sdl2-installer ruledit-installer-qt5 qt5-installer gtk4-installer
|
||
all-win64-10: gtk3.22-installer sdl2-installer ruledit-installer qt6-installer gtk4-installer
|
||
all-win64+:
|
||
make -f $(MAKEFILE_NAME) GUI=gtk3.22 CLIENT=gtk3.22 FCMP=gtk3 EXTRA_CONFIG="--disable-ruledit CFLAGS=\"-Wno-cast-align $$CFLAGS\" $(EXTRA_CONFIG)" install-freeciv-gtk3.22
|
||
make -f $(MAKEFILE_NAME) GUI=gtk4 CLIENT=gtk4 FCMP=gtk4 EXTRA_CONFIG="--disable-ruledit CFLAGS=\"-Wno-cast-align $$CFLAGS\" $(EXTRA_CONFIG)" install-freeciv-gtk4
|
||
make -f $(MAKEFILE_NAME) GUI=sdl2 CLIENT=sdl2 FCMP=gtk4 EXTRA_CONFIG="--disable-ruledit CFLAGS=\"-Wno-cast-align $$CFLAGS\" $(EXTRA_CONFIG)" install-freeciv-sdl2
|
||
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 CFLAGS=\"-Wno-cast-align $$CFLAGS\" $(EXTRA_CONFIG)" MOCCMD="$(QT6_MOCCMD)" install-freeciv-qt6
|
||
make -f $(MAKEFILE_NAME) EXTRA_CONFIG="CFLAGS=\"-Wno-cast-align $$CFLAGS\" $(EXTRA_CONFIG)" MOCCMD="$(QT6_MOCCMD)" install-ruledit-qt6
|
||
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: qt5-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
|
||
ci:
|
||
cd $(SRC_ROOT) ; ./autogen.sh --no-configure-run
|
||
make -f $(MAKEFILE_NAME) VERSION_REVTYPE="git" CI=yes EXTRA_CONFIG="--enable-gitrev --with-project-definition=$(SRC_ROOT)/../../../bootstrap/snapshot.project CFLAGS=\\\"-Werror $$CFLAGS\\\" CXXFLAGS=\\\"$$CXXFLAGS\\\"" ruledit-installer-qt6
|
||
# 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_4" --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" $(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 $(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 $(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 := \
|
||
libstdc++-6.dll \
|
||
libcrypto-${CRYPTOVERSUF}.dll \
|
||
libpsl-5.dll \
|
||
libssl-${CRYPTOVERSUF}.dll \
|
||
libidn2-0.dll \
|
||
libnghttp2-14.dll \
|
||
libnghttp3-9.dll \
|
||
libssh2-1.dll \
|
||
libcurl-4.dll \
|
||
libgmp-10.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 \
|
||
libgomp-1.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
|
||
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
|
||
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 \
|
||
rav1e.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 := \
|
||
libstdc++-6.dll \
|
||
libcrypto-${CRYPTOVERSUF}.dll \
|
||
libpsl-5.dll \
|
||
libssl-${CRYPTOVERSUF}.dll \
|
||
libidn2-0.dll \
|
||
libnghttp2-14.dll \
|
||
libnghttp3-9.dll \
|
||
libssh2-1.dll \
|
||
libcurl-4.dll \
|
||
libgmp-10.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 \
|
||
libgomp-1.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 := \
|
||
libstdc++-6.dll \
|
||
libcrypto-${CRYPTOVERSUF}.dll \
|
||
libpsl-5.dll \
|
||
libssl-${CRYPTOVERSUF}.dll \
|
||
libidn2-0.dll \
|
||
libnghttp2-14.dll \
|
||
libnghttp3-9.dll \
|
||
libssh2-1.dll \
|
||
libcurl-4.dll \
|
||
libgmp-10.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 \
|
||
libgomp-1.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
|