Jelajahi Sumber

Ports: Add opentyrian and opentyrian-data

Oleg Kosenkov 4 tahun lalu
induk
melakukan
971523621c

+ 2 - 0
Ports/AvailablePorts.md

@@ -93,6 +93,8 @@ Please make sure to keep this list up to date when adding and updating ports. :^
 | [`openttd`](openttd/)                  | OpenTTD                                                    | 1.11.0                   | https://www.openttd.org/                                                       |
 | [`openttd-opengfx`](openttd-opengfx/)  | OpenGFX graphics for OpenTTD                               | 0.6.1                    | https://www.openttd.org/                                                       |
 | [`openttd-opensfx`](openttd-opensfx/)  | OpenSFX audio files for OpenTTD                            | 1.0.1                    | https://www.openttd.org/                                                       |
+| [`opentyrian`](opentyrian/)            | OpenTyrian                                                 | 84b820f                  | https://github.com/opentyrian/opentyrian                                       |
+| [`opentyrian-data`](opentyrian-data/)  | OpenTyrian graphics and audio                              | 1.0.0                    | http://camanis.net/tyrian/tyrian21.zip                                         |
 | [`oksh`](oksh/)                        | oksh                                                       | 6.8.1                    | https://github.com/ibara/oksh                                                  |
 | [`patch`](patch/)                      | patch (OpenBSD)                                            | 6.6                      | https://github.com/ibara/libpuffy                                              |
 | [`pcre`](pcre/)                        | Perl-compatible Regular Expressions (PCRE)                 | 8.44                     | https://www.pcre.org/                                                          |

+ 16 - 0
Ports/opentyrian-data/package.sh

@@ -0,0 +1,16 @@
+#!/usr/bin/env -S bash ../.port_include.sh
+port=opentyrian-data
+version=1.0.0
+workdir=.
+files="http://camanis.net/tyrian/tyrian21.zip tyrian21.zip 7790d09a2a3addcd33c66ef063d5900eb81cc9c342f4807eb8356364dd1d9277"
+auth_type=sha256
+
+build() {
+    run_nocd unzip -o tyrian21.zip
+    run_nocd rm -v tyrian21/*.exe
+}
+
+install() {
+    run_nocd mkdir -p ${SERENITY_INSTALL_ROOT}/usr/local/share/games/opentyrian/
+    run_nocd cp -a tyrian21/* ${SERENITY_INSTALL_ROOT}/usr/local/share/games/opentyrian/
+}

+ 21 - 0
Ports/opentyrian/package.sh

@@ -0,0 +1,21 @@
+#!/usr/bin/env -S bash ../.port_include.sh
+port=opentyrian
+version=84b820f852f3f6b812b4d00d6b3906adbbf3bbdb
+useconfigure=true
+files="https://github.com/opentyrian/opentyrian/archive/${version}.tar.gz ${version}.tar.gz 7429cc8e3468e3462b886cb99fe6cc0f5d232c193b68a94dc427493107c30dec"
+auth_type=sha256
+configopts="-DCMAKE_TOOLCHAIN_FILE=$SERENITY_SOURCE_DIR/Toolchain/CMake/CMakeToolchain.txt"
+depends="SDL2 opentyrian-data"
+
+launcher_name=OpenTyrian
+launcher_category=Games
+launcher_command=/usr/local/bin/tyrian
+
+configure() {
+    run cmake $configopts
+}
+
+install() {
+    run make install
+    install_launcher
+}

+ 83 - 0
Ports/opentyrian/patches/opentyrian.patch

@@ -0,0 +1,83 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+new file mode 100644
+index 0000000..dfb9649
+--- /dev/null
++++ b/CMakeLists.txt
+@@ -0,0 +1,4 @@
++cmake_minimum_required(VERSION 3.16)
++project(opentyrian LANGUAGES C)
++install(FILES CREDITS NEWS README DESTINATION share/doc/opentyrian)
++add_subdirectory(src)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+new file mode 100644
+index 0000000..b8d71b9
+--- /dev/null
++++ b/src/CMakeLists.txt
+@@ -0,0 +1,67 @@
++find_package(SDL2 REQUIRED)
++add_executable(tyrian
++        animlib.c
++        arg_parse.c
++        backgrnd.c
++        config.c
++        config_file.c
++        destruct.c
++        editship.c
++        episodes.c
++        file.c
++        font.c
++        fonthand.c
++        game_menu.c
++        helptext.c
++        joystick.c
++        jukebox.c
++        keyboard.c
++        lds_play.c
++        loudness.c
++        lvllib.c
++        lvlmast.c
++        mainint.c
++        menus.c
++        mouse.c
++        mtrand.c
++        musmast.c
++        network.c
++        nortsong.c
++        nortvars.c
++        opentyr.c
++        opl.c
++        palette.c
++        params.c
++        pcxload.c
++        pcxmast.c
++        picload.c
++        player.c
++        scroller.c
++        setup.c
++        shots.c
++        sizebuf.c
++        sndmast.c
++        sprite.c
++        starlib.c
++        std_support.c
++        tyrian2.c
++        varz.c
++        vga256d.c
++        vga_palette.c
++        video.c
++        video_scale.c
++        video_scale_hqNx.c
++        xmas.c)
++target_include_directories(tyrian PRIVATE . ${SDL2_INCLUDE_DIRS})
++if("${SDL2_LIBRARIES}" STREQUAL "")
++    message(WARNING "SDL2_LIBRARIES wasn't set, manually setting to SDL2::SDL2")
++    set(SDL2_LIBRARIES "SDL2::SDL2")
++endif()
++
++target_compile_options(tyrian PRIVATE -std=iso9899:1999 )
++target_compile_definitions(tyrian PRIVATE
++        -DNDEBUG
++        -DTYRIAN_DIR=\"/usr/local/share/games/opentyrian\")
++target_link_libraries(tyrian m ${SDL2_LIBRARIES})
++install(TARGETS tyrian
++        RUNTIME DESTINATION bin)