Skip to content

Commit

Permalink
Merge pull request longturn#613 from jwrober/appdata_update
Browse files Browse the repository at this point in the history
Appdata update
jwrober authored Sep 2, 2021

Verified

This commit was signed with the committer’s verified signature.
cwschilly Caleb Schilly
2 parents 231ebf4 + 1432704 commit 2541495
Showing 11 changed files with 176 additions and 37 deletions.
91 changes: 82 additions & 9 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -114,15 +114,15 @@ if(WIN32 OR MSYS OR MINGW)
# Custom command files to run the applications
install(
FILES
${CMAKE_SOURCE_DIR}/windows/installer_msys2/freeciv21-server.cmd
${CMAKE_SOURCE_DIR}/windows/client.ico
${CMAKE_SOURCE_DIR}/windows/mp.ico
windows/installer_msys2/freeciv21-server.cmd
windows/client.ico
windows/mp.ico
DESTINATION ${CMAKE_INSTALL_BINDIR}
COMPONENT freeciv21)

# Install the ca-bundle for the modpack installer
install(
FILES
FILES
${MINGW_PATH}/../ssl/certs/ca-bundle.crt
DESTINATION ${CMAKE_INSTALL_BINDIR}/ssl/certs
COMPONENT freeciv21)
@@ -134,7 +134,7 @@ if(WIN32 OR MSYS OR MINGW)
${MINGW_PATH}/libssl-1_1-x64.dll
DESTINATION ${CMAKE_INSTALL_BINDIR}
COMPONENT freeciv21)

# This allows us to determine the external libraries we need to include at install time
# dynamically instead of doing it manually.
install(CODE [[
@@ -158,20 +158,21 @@ if(WIN32 OR MSYS OR MINGW)
message(STATUS "Installing library dependencies for freeciv21 executables...")
file(INSTALL DESTINATION ${CMAKE_INSTALL_PREFIX} MESSAGE_LAZY FILES ${r_deps})
]] COMPONENT freeciv21)

# Qt5 Plugins and required DLLs
# Before installation, run a series of commands that copy each of the Qt
# runtime files to the appropriate directory for installation
install(CODE [[

message(STATUS "Collecting Qt dependencies for freeciv21 GUI executables...")

# Take a variable that is available at "install" time and repurpose
string(REGEX REPLACE "objdump.exe" "" MINGW_PATH ${CMAKE_OBJDUMP})

# Run Qt's windeployqt.exe to find the required DLLs for the GUI apps.
execute_process(
COMMAND ${MINGW_PATH}/windeployqt.exe --no-translations --no-virtualkeyboard --no-compiler-runtime --no-webkit2 --no-angle --no-opengl-sw --list mapping ${CMAKE_INSTALL_PREFIX}
COMMAND ${MINGW_PATH}/windeployqt.exe --no-translations --no-virtualkeyboard --no-compiler-runtime
--no-webkit2 --no-angle --no-opengl-sw --list mapping ${CMAKE_INSTALL_PREFIX}
OUTPUT_VARIABLE _output
OUTPUT_STRIP_TRAILING_WHITESPACE
)
@@ -191,5 +192,77 @@ if(WIN32 OR MSYS OR MINGW)

endif()

# Unix/Linux specific install steps
if(UNIX AND NOT APPLE)
# Install MetaInfo and Desktop files for the applications asked for at configure
if(FREECIV_ENABLE_CLIENT)
install(
FILES
dist/net.longturn.freeciv21.client.metainfo.xml
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/metainfo
)
configure_file(${CMAKE_SOURCE_DIR}/dist/net.longturn.freeciv21.client.desktop.in
net.longturn.freeciv21.client.desktop
${CMAKE_INSTALL_FULL_BINDIR} ${CMAKE_INSTALL_FULL_DATAROOTDIR}
@ONLY NEWLINE_STYLE UNIX)
install(
FILES
${CMAKE_BINARY_DIR}/net.longturn.freeciv21.client.desktop
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications
)
endif(FREECIV_ENABLE_CLIENT)

if(FREECIV_ENABLE_SERVER)
install(
FILES
dist/net.longturn.freeciv21.server.metainfo.xml
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/metainfo
)
configure_file(${CMAKE_SOURCE_DIR}/dist/net.longturn.freeciv21.server.desktop.in
net.longturn.freeciv21.server.desktop
${CMAKE_INSTALL_FULL_BINDIR} ${CMAKE_INSTALL_FULL_DATAROOTDIR}
@ONLY NEWLINE_STYLE UNIX)
install(
FILES
${CMAKE_BINARY_DIR}/net.longturn.freeciv21.server.desktop
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications
)
endif(FREECIV_ENABLE_SERVER)

if(FREECIV_ENABLE_FCMP_QT)
install(
FILES
dist/net.longturn.freeciv21.modpack.metainfo.xml
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/metainfo
)
configure_file(${CMAKE_SOURCE_DIR}/dist/net.longturn.freeciv21.modpack-qt.desktop.in
net.longturn.freeciv21.modpack-qt.desktop
${CMAKE_INSTALL_FULL_BINDIR} ${CMAKE_INSTALL_FULL_DATAROOTDIR}
@ONLY NEWLINE_STYLE UNIX)
install(
FILES
${CMAKE_BINARY_DIR}/net.longturn.freeciv21.modpack-qt.desktop
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications
)
endif(FREECIV_ENABLE_FCMP_QT)

if(FREECIV_ENABLE_RULEDIT)
install(
FILES
dist/net.longturn.freeciv21.ruledit.metainfo.xml
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/metainfo
)
configure_file(${CMAKE_SOURCE_DIR}/dist/net.longturn.freeciv21.ruledit.desktop.in
net.longturn.freeciv21.ruledit.desktop
${CMAKE_INSTALL_FULL_BINDIR} ${CMAKE_INSTALL_FULL_DATAROOTDIR}
@ONLY NEWLINE_STYLE UNIX)
install(
FILES
${CMAKE_BINARY_DIR}/net.longturn.freeciv21.ruledit.desktop
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications
)
endif(FREECIV_ENABLE_RULEDIT)
endif(UNIX AND NOT APPLE)

# Packaging (CPack)
include(CPackConfig)
Binary file added data/misc/server.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
43 changes: 40 additions & 3 deletions dist/net.longturn.freeciv21.client.desktop.in
Original file line number Diff line number Diff line change
@@ -1,11 +1,48 @@
[Desktop Entry]
Name=Freeciv21
Name[af]=Freeciv21
Name[ca]=Freeciv21
Name[cs]=Freeciv21
Name[de]=Freeciv21
Name[dk]=Freeciv21
Name[es]=Freeciv21
Name[eu]=Freeciv21
Name[fi]=Freeciv21
Name[fr]=Freeciv21
Name[nb]=Freeciv21
Name[gl]=Freeciv21
Name[he]=Freeciv21
Name[hu]=Freeciv21
Name[it]=Freeciv21
Name[lt]=Freeciv21
Name[pt]=Freeciv21
Name[ru]=Freeciv21
Name[sk]=Freeciv21
Name[sr]=Freeciv21
Name[sr@latin]=Freeciv21
Name[tr]=Freeciv21
Name[vi]=Freeciv21
GenericName=Strategy Game
GenericName[af]=Strategie-spel
GenericName[ca]=Joc d'estrategia
GenericName[cs]=Strategická hra
GenericName[de]=Strategiespiel
GenericName[dk]=Strategi-spil
GenericName[es]=Juego de estrategia
GenericName[eu]=Estrategiako jokoa
GenericName[fi]=Strategiapeli
GenericName[fr]=Jeu de stratégie
GenericName[gl]=Xogo de estratexia
GenericName[he]=משחק אסטרטגיה
GenericName[hu]=Stratégia
GenericName[it]=Gioco strategico
GenericName[lt]=Strateginis žaidimas
GenericName[pt]=Jogo de Estratégia
GenericName[ru]=Стратегическая игра
GenericName[sk]=Strategická hra
GenericName[sr]=Стратешка игра
GenericName[sr@latin]=Strateška igra
GenericName[tr]=Strateji Oyunu
GenericName[vi]=Trò chơi chiến lược
Comment=Turn-based strategy game inspired by the history of human civilization
Comment[ca]=Joc d'estratègia inspirat en la història de la civilització humana
Comment[da]=Strategispil inspireret af den menneskelige civilisations historie
@@ -15,8 +52,8 @@ Comment[nb]=Strategispill inspirert av historien til menneskelig sivilisasjon
Comment[pt]=Jogo de estratégia por turnos inspirado na História da civilização humana
Comment[ru]=Пошаговая стратегическая игра, вдохновлённая историей человеческой цивилизации
Comment[sv]=Turordningsbaserat strategispel inspirerat av den mänskliga historien
Exec=freeciv21-client
Icon=freeciv21-client
Exec=@CMAKE_INSTALL_FULL_BINDIR@/freeciv21-client
Icon=@CMAKE_INSTALL_FULL_DATAROOTDIR@/freeciv21/misc/civicon.png
StartupNotify=true
Terminal=false
Type=Application
Original file line number Diff line number Diff line change
@@ -3,12 +3,12 @@
<id type="desktop">net.longturn.freeciv21.client</id>
<metadata_license>CC0</metadata_license>
<project_license>GPL-3.0+</project_license>
<name>Freeciv21 Qt client</name>
<summary>Qt based client for the Freeciv game</summary>
<name>Freeciv21 Client</name>
<summary>Client for the Freeciv21 game</summary>
<description>
<p>
Freeciv21 is a Free and Open Source empire-building strategy game inspired by the history of human civilization. The game commences in prehistory and your
mission is to lead your tribe from the Stone Age to the Space Age...
Freeciv21 is a Free and Open Source empire-building strategy game inspired by the history of human civilization.
The game commences in prehistory and your mission is to lead your tribe from the Stone Age to the Space Age...
</p>
<p>
This client is for connecting to network games, or to launch local single-player games. It is based on the Qt framework.
@@ -20,7 +20,7 @@
<url type="bugtracker">https://github.com/longturn/freeciv21/issues</url>
<screenshots>
<screenshot type="default">
<caption>Freeciv21 Qt Client</caption>
<caption>Freeciv21 Client</caption>
<image>https://github.com/longturn/freeciv21/raw/master/dist/freeciv-screenshot-2048x1112.png</image>
</screenshot>
</screenshots>
10 changes: 8 additions & 2 deletions dist/net.longturn.freeciv21.modpack-qt.desktop.in
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
[Desktop Entry]
Name=Freeciv21 modpack installer (Qt)
Name[ru]=Установщик модпаков Freeciv (Qt)
GenericName=Strategy Game
GenericName[ca]=Joc d'estrategia
GenericName[es]=Juego de estrategia
GenericName[fr]=Jeu de stratégie
GenericName[pt]=Jogo de Estratégia
GenericName[ru]=Стратегическая игра
Comment=Download and install add-ons for Freeciv21
Comment[ru]=Скачивайте и устанавливайте дополнения для Freeciv21
Exec=freeciv21-modpack-qt
Icon=freeciv21-modpack
Exec=@CMAKE_INSTALL_FULL_BINDIR@/freeciv21-modpack-qt
Icon=@CMAKE_INSTALL_FULL_DATAROOTDIR@/freeciv21/misc/mpicon.png
StartupNotify=true
Terminal=false
Type=Application
Original file line number Diff line number Diff line change
@@ -3,16 +3,16 @@
<id type="desktop">net.longturn.freeciv21.modpack-qt</id>
<metadata_license>CC0</metadata_license>
<project_license>GPL-3.0+</project_license>
<name>Freeciv21 Qt modpack installer</name>
<summary>Qt based modpack installer for the Freeciv21 game</summary>
<name>Freeciv21 Modpack Installer</name>
<summary>Modpack installer for the Freeciv21 game</summary>
<description>
<p>
Freeciv21 is a Free and Open Source empire-building strategy game inspired by the history of human civilization. The game commences in prehistory and your
mission is to lead your tribe from the Stone Age to the Space Age...
Freeciv21 is a Free and Open Source empire-building strategy game inspired by the history of human civilization.
The game commences in prehistory and your mission is to lead your tribe from the Stone Age to the Space Age...
</p>
<p>
Freeciv21 modpack utility can be used to automatically download and install custom rulesets, tilesets, soundsets, musicsets and maps for freeciv21 to use.
It is based on the Qt framework.
Freeciv21 modpack utility can be used to automatically download and install custom rulesets, tilesets,
soundsets, musicsets, and maps for Freeciv21 to use. It is based on the Qt framework.
</p>
</description>
<launchable type="desktop-id">net.longturn.freeciv21.modpack-qt.desktop</launchable>
@@ -21,7 +21,7 @@
<url type="bugtracker">https://github.com/longturn/freeciv21/issues</url>
<screenshots>
<screenshot type="default">
<caption>Freeciv21 Qt Client</caption>
<caption>Freeciv21 Client</caption>
<image>https://github.com/longturn/freeciv21/raw/master/dist/freeciv-screenshot-2048x1112.png</image>
</screenshot>
</screenshots>
12 changes: 9 additions & 3 deletions dist/net.longturn.freeciv21.ruledit.desktop.in
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
[Desktop Entry]
Name=Freeciv21 Ruleset Editor
Name[ru]=Редактор наборов правил Freeciv21
Comment=Edit Freeciv game rules
GenericName=Strategy Game
GenericName[ca]=Joc d'estrategia
GenericName[es]=Juego de estrategia
GenericName[fr]=Jeu de stratégie
GenericName[pt]=Jogo de Estratégia
GenericName[ru]=Стратегическая игра
Comment=Edit Freeciv21 game rules
Comment[ru]=Меняйте любые правила Freeciv21 и создавайте новые
Exec=freeciv21-ruledit
Icon=freeciv21-client
Exec=@CMAKE_INSTALL_FULL_BINDIR@/freeciv21-ruledit
Icon=@CMAKE_INSTALL_FULL_DATAROOTDIR@/freeciv21/misc/civicon.png
StartupNotify=true
Terminal=false
Type=Application
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@
<id type="desktop">net.longturn.freeciv21.ruledit</id>
<metadata_license>CC0</metadata_license>
<project_license>GPL-3.0+</project_license>
<name>Freeciv21 ruleset editor</name>
<name>Freeciv21 Ruleset Editor</name>
<summary>Ruleset editor for the Freeciv21 game</summary>
<description>
<p>
@@ -20,7 +20,7 @@
<url type="bugtracker">https://github.com/longturn/freeciv21/issues</url>
<screenshots>
<screenshot type="default">
<caption>Freeciv21 Qt Client</caption>
<caption>Freeciv21 Client</caption>
<image>https://github.com/longturn/freeciv21/raw/master/dist/freeciv-screenshot-2048x1112.png</image>
</screenshot>
</screenshots>
10 changes: 8 additions & 2 deletions dist/net.longturn.freeciv21.server.desktop.in
Original file line number Diff line number Diff line change
@@ -6,6 +6,12 @@ Name[fr]=Freeciv21 server
Name[nb]=Freeciv21 server
Name[pt]=Freeciv21 server
Name[ru]=Сервер Freeciv21
GenericName=Strategy Game
GenericName[ca]=Joc d'estrategia
GenericName[es]=Juego de estrategia
GenericName[fr]=Jeu de stratégie
GenericName[pt]=Jogo de Estratégia
GenericName[ru]=Стратегическая игра
Comment=Turn-based strategy game inspired by the history of human civilization
Comment[ca]=Joc d'estratègia inspirat en la història de la civilització humana
Comment[da]=Strategispil inspireret af den menneskelige civilisations historie
@@ -15,8 +21,8 @@ Comment[nb]=Strategispill inspirert av historien til menneskelig sivilisasjon
Comment[pt]=Jogo de estratégia por turnos inspirado na História da civilização humana
Comment[ru]=Пошаговая стратегическая игра, вдохновлённая историей человеческой цивилизации
Comment[sv]=Turordningsbaserat strategispel inspirerat av den mänskliga historien
Exec=freeciv21-server
Icon=freeciv21-server
Exec=@CMAKE_INSTALL_FULL_BINDIR@/freeciv21-server
Icon=@CMAKE_INSTALL_FULL_DATAROOTDIR@/freeciv21/misc/server.png
StartupNotify=true
Terminal=true
Type=Application
Original file line number Diff line number Diff line change
@@ -7,11 +7,12 @@
<summary>Server component for the Freeciv21 game</summary>
<description>
<p>
Freeciv21 is a Free and Open Source empire-building strategy game inspired by the history of human civilization. The game commences in prehistory and your
mission is to lead your tribe from the Stone Age to the Space Age...
Freeciv21 is a Free and Open Source empire-building strategy game inspired by the history of human civilization.
The game commences in prehistory and your mission is to lead your tribe from the Stone Age to the Space Age...
</p>
<p>
The server hosts multiplayer games. For single-player games the client will launch server for itself automatically. The server is a console application.
The server hosts multiplayer games. For single-player games the client will launch the server for itself
automatically. The server is a console application.
</p>
</description>
<launchable type="desktop-id">net.longturn.freeciv21.server.desktop</launchable>
@@ -20,7 +21,7 @@
<url type="bugtracker">https://github.com/longturn/freeciv21/issues</url>
<screenshots>
<screenshot type="default">
<caption>Freeciv21 Qt Client</caption>
<caption>Freeciv21 Client</caption>
<image>https://github.com/longturn/freeciv21/raw/master/dist/freeciv-screenshot-2048x1112.png</image>
</screenshot>
</screenshots>
10 changes: 10 additions & 0 deletions docs/General/install.rst
Original file line number Diff line number Diff line change
@@ -177,6 +177,13 @@ Once the compilation is complete, install the game with this command.
.. note:: If you did not change the default install prefix, you will need to elevate privileges
with :file:`sudo`.

.. tip:: If you want to enable menu integration for the installed copy of Freeciv21, you will want
to copy the :literal:`.desktop` files in :file:`$CMAKE_INSTALL_PREFIX/share/applications` to
:file:`$HOME/.local/share/applications`.

This is only necessary if you change the installation prefix. If you don't and use elevated
privileges, then the files get copied to the system default location.


Debian Linux Notes
==================
@@ -197,6 +204,7 @@ following commands.
cmake \
ninja-build \
python3 \
python3-pip \
qt5-default \
libkf5archive-dev \
liblua5.3-dev \
@@ -206,6 +214,8 @@ following commands.
libdw-dev \
python3-sphinx
$ pip install sphinx_rtd_theme
$ mkdir -p $HOME/GitHub
$ cd $HOME/GitHub

0 comments on commit 2541495

Please sign in to comment.