Browse Source

Improve linux building (#111)

* Improve Linux platform by adding metadata and improve description

* Improve readme

* Improve metainfo

* Fix wrong desktop file

* Improve readme

* Improve readme

* Appstream doesn't like h1

* Add CMake and Ninja to .gitignore

* Fix issues




3


4

* Revert readme keeping only Linux part

* Change comment on desktop file

* Align metainfo

* Decouple Readme from Linux building instructions
pull/114/head
Kowalski Dragon 8 months ago
committed by GitHub
parent
commit
4db4e5fbcb
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 22
      .gitignore
  2. 5
      CMakeLists.txt
  3. 25
      Platform/Linux/BUILD.md
  4. 10
      Platform/Linux/SpaceCadetPinball.desktop
  5. 69
      Platform/Linux/SpaceCadetPinball.metainfo.xml
  6. 2
      README.md
  7. 8
      SpaceCadetPinball.desktop
  8. BIN
      SpaceCadetPinball/Icon_192x192.png

22
.gitignore

@ -276,3 +276,25 @@ out/
# Windows XP stuff
DebugWinXp/
ReleaseWinXp/
### CMake ###
CMakeLists.txt.user
CMakeCache.txt
CMakeFiles
CMakeScripts
Testing
Makefile
cmake_install.cmake
install_manifest.txt
compile_commands.json
CTestTestfile.cmake
_deps
### CMake Patch ###
# External projects
*-prefix/
### Ninja ###
.ninja_deps
.ninja_log
build.ninja

5
CMakeLists.txt

@ -221,11 +221,14 @@ endif()
if(UNIX AND NOT APPLE)
include(GNUInstallDirs)
install(TARGETS "${PROJECT_NAME}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
install(FILES "${PROJECT_NAME}.desktop" DESTINATION "share/applications")
install(FILES "/Platform/Linux/${PROJECT_NAME}.desktop" DESTINATION "share/applications")
install(FILES "/Platform/Linux/${PROJECT_NAME}.metainfo.xml" DESTINATION "share/metainfo")
install(FILES "${PROJECT_NAME}/Icon_16x16.png" DESTINATION
"share/icons/hicolor/16x16/apps" RENAME "${PROJECT_NAME}.png")
install(FILES "${PROJECT_NAME}/Icon_32x32.png" DESTINATION
"share/icons/hicolor/32x32/apps" RENAME "${PROJECT_NAME}.png")
install(FILES "${PROJECT_NAME}/Icon_48x48.png" DESTINATION
"share/icons/hicolor/48x48/apps" RENAME "${PROJECT_NAME}.png")
install(FILES "${PROJECT_NAME}/Icon_192x192.png" DESTINATION
"share/icons/hicolor/192x192/apps" RENAME "${PROJECT_NAME}.png")
endif()

25
Platform/Linux/BUILD.md

@ -0,0 +1,25 @@
# Building
Install devel packages for `SDL2` and `SDL2_mixer`.\
Compile with CMake; tested with GCC 10, Clang 11.\
To cross-compile for Windows, install a 64-bit version of mingw and its `SDL2` and `SDL2_mixer` distributions, then use the `mingwcc.cmake` toolchain.
```bash
# On Debian and Ubuntu
sudo apt install cmake build-essential ninja-build libsdl2-dev libsdl2-mixer-dev libsdl2-mixer-2.0-0 libsdl2-2.0-0 fluidsynth
# On Fedora
sudo dnf install cmake ninja-build SDL2 SDL2-devel SDL2_mixer SDL2_mixer-devel fluidsynth fluidsynth-libs mscore-fonts g++
# Build
cmake -GNinja .
ninja
```
**If you can't hear the background music**: You need to export the following variable before launching the game like this:
`export SDL_SOUNDFONT=/path/to/your/soundfont`
Fluidsynth will install a default soundfont in the following path:
On Fedora: `/usr/share/soundfonts/FluidR3_GM.sf2`
On Ubuntu/Debian: `/usr/share/sounds/sf2/FluidR3_GM.sf2`

10
Platform/Linux/SpaceCadetPinball.desktop

@ -0,0 +1,10 @@
[Desktop Entry]
Version=1.0
Name=Space Cadet Pinball
Comment=Decompilation of 3D Pinball for Windows - Space Cadet
Exec=SpaceCadetPinball
StartupNotify=true
Terminal=false
Icon=SpaceCadetPinball
Type=Application
Categories=Game;ArcadeGame;

69
Platform/Linux/SpaceCadetPinball.metainfo.xml

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<id>com.github.k4zmu2a.spacecadetpinball</id>
<name>Space Cadet Pinball</name>
<display_name>Space Cadet Pinball</display_name>
<summary>Reverse engineering of 3D Pinball for Windows - Space Cadet, a game bundled with Windows.</summary>
<url type="homepage">https://github.com/k4zmu2a/SpaceCadetPinball</url>
<url type="bugtracker">https://github.com/k4zmu2a/SpaceCadetPinball/issues</url>
<description>
<p>
Reverse engineering of '3D Pinball for Windows - Space Cadet', a game bundled with Windows.
</p>
</description>
<categories>
<category>Game</category>
<category>ArcadeGame</category>
</categories>
<launchable type="desktop-id">SpaceCadetPinball.desktop</launchable>
<provides>
<binary>SpaceCadetPinball</binary>
</provides>
<screenshots>
<screenshot type="default">
<image>https://github.com/kowalski7cc/com.github.k4zmu2a.spacecadetpinball/blob/main/screenshots/screenshot-1.png?raw=true</image>
</screenshot>
<screenshot>
<image>https://github.com/kowalski7cc/com.github.k4zmu2a.spacecadetpinball/blob/main/screenshots/screenshot-2.png?raw=true</image>
</screenshot>
<screenshot>
<image>https://github.com/kowalski7cc/com.github.k4zmu2a.spacecadetpinball/blob/main/screenshots/screenshot-3.png?raw=true</image>
</screenshot>
</screenshots>
<releases>
<release version="2.0.0" date="2021-10-30">
<description>
<p>First release of cross-platform port.</p>
<p>Main highlights:</p>
<ul>
<li>Windows dependencies removed.</li>
<li>Graphics and sounds rendered with SDL.</li>
<li>Dear ImGui GUI.</li>
<li>CMake build script, compiles on a lot of platforms.</li>
<li>A number of 3rd party source ports.</li>
</ul>
<p>All features of v1.x are present, except for text translations.</p>
<p>
Development and releases of v1.x will continue, don’t confuse the two.
All source ports are technically v2.0RC, not v1.x.
</p>
<p>There are no Linux or macOS binaries attached, compile them yourself.</p>
<p>
This release was made better with the help of contributors.
I thank them for their interest in the project.
</p>
</description>
</release>
</releases>
<metadata_license>CC0-1.0</metadata_license>
<developer_name>Andrey Muzychenko</developer_name>
<project_license>MIT</project_license>
<keywords>
<keyword>pinball</keyword>
<keyword>space</keyword>
<keyword>cadet</keyword>
</keywords>
<content_rating type="oars-1.1" />
</component>

2
README.md

@ -4,7 +4,7 @@
## Summary
Reverse engineering of `3D Pinball for Windows Space Cadet`, a game bundled with Windows.
Reverse engineering of `3D Pinball for Windows - Space Cadet`, a game bundled with Windows.
## How to play

8
SpaceCadetPinball.desktop

@ -1,8 +0,0 @@
[Desktop Entry]
Name=Space Cadet Pinball
Comment=Decompilation of 3D Pinball for Windows – Space Cadet
Exec=SpaceCadetPinball
Icon=SpaceCadetPinball
Terminal=false
Type=Application
Categories=Game;

BIN
SpaceCadetPinball/Icon_192x192.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Loading…
Cancel
Save