diff --git a/games/Makefile b/games/Makefile index 13d97e36b1e3..d4146181f5cd 100644 --- a/games/Makefile +++ b/games/Makefile @@ -402,6 +402,7 @@ SUBDIR+= stone-soup SUBDIR+= stone-soup-sdl SUBDIR+= stratagus SUBDIR+= sudoku-cli +SUBDIR+= suika3 SUBDIR+= supertux SUBDIR+= supertuxkart SUBDIR+= svb diff --git a/games/suika3/DESCR b/games/suika3/DESCR new file mode 100644 index 000000000000..d0a724222c81 --- /dev/null +++ b/games/suika3/DESCR @@ -0,0 +1,4 @@ +Suika3 is a high-performance cross-platform 2D game engine with +DSL for visual novels. + +This package provides the core engine and tools for game development. diff --git a/games/suika3/Makefile b/games/suika3/Makefile new file mode 100644 index 000000000000..75ee7ca03f84 --- /dev/null +++ b/games/suika3/Makefile @@ -0,0 +1,47 @@ +DISTNAME= suika3-26.04.9 +CATEGORIES= games +MASTER_SITES= ${MASTER_SITE_GITHUB:=awemorris/} +GITHUB_PROJECT= suika3 +GITHUB_TAG= ${PKGVERSION_NOREV} + +MAINTAINER= awe@noctvm.io +HOMEPAGE= https://github.com/awemorris/suika3 +COMMENT= 2D game engine with DSL for visual novels +LICENSE= zlib + +USE_LANGUAGES= c c++ +USE_TOOLS+= pkg-config +USE_CMAKE= yes + +DEPENDS+= noto-fonts-[0-9]*:../../fonts/noto-fonts + +.include "options.mk" + +CMAKE_CONFIGURE_ARGS+= -DSUIKA_DIR_DOCS="share/doc/suika3" +CMAKE_CONFIGURE_ARGS+= -DSUIKA_DIR_GAME="share/examples/suika3" +CMAKE_CONFIGURE_ARGS+= -DSUIKA_ENABLE_AOTCOMP=ON +CMAKE_CONFIGURE_ARGS+= -DSUIKA_ENABLE_BYTECOMP=ON +CMAKE_CONFIGURE_ARGS+= -DSUIKA_ENABLE_DIST=ON +CMAKE_CONFIGURE_ARGS+= -DSUIKA_ENABLE_I18N=ON +CMAKE_CONFIGURE_ARGS+= -DSUIKA_ENABLE_INSTALL=ON +CMAKE_CONFIGURE_ARGS+= -DSUIKA_ENABLE_PACK=ON + +INSTALLATION_DIRS+= share/examples/suika3/game/system/font + +# Create a symlink to NotoSans. +post-build: + ${MKDIR} ${DESTDIR}${PREFIX}/share/examples/suika3/game/system/font + ${LN} -s ${PREFIX}/share/fonts/X11/TTF/NotoSans-Regular.ttf \ + ${DESTDIR}${PREFIX}/share/examples/suika3/game/system/font/rounded-l-mplus-1c-bold.ttf + +.include "../../archivers/brotli/buildlink3.mk" +.include "../../graphics/freetype2/buildlink3.mk" +.include "../../graphics/libjpeg-turbo/buildlink3.mk" +.include "../../graphics/png/buildlink3.mk" +.include "../../graphics/libwebp/buildlink3.mk" +.include "../../multimedia/libogg/buildlink3.mk" +.include "../../audio/libvorbis/buildlink3.mk" +.include "../../x11/libX11/buildlink3.mk" +.include "../../x11/libXext/buildlink3.mk" +.include "../../x11/libXpm/buildlink3.mk" +.include "../../mk/bsd.pkg.mk" diff --git a/games/suika3/PLIST b/games/suika3/PLIST new file mode 100644 index 000000000000..4cf1465a85b1 --- /dev/null +++ b/games/suika3/PLIST @@ -0,0 +1,186 @@ +@comment $NetBSD$ +bin/suika3 +bin/suika3-aotc +bin/suika3-bcc +bin/suika3-pack +man/man1/suika3-aotc.1 +man/man1/suika3-bcc.1 +man/man1/suika3-pack.1 +man/man1/suika3.1 +share/doc/suika3/docs/anime.md +share/doc/suika3/docs/aot.md +share/doc/suika3/docs/build.md +share/doc/suika3/docs/config.md +share/doc/suika3/docs/eye-blink.md +share/doc/suika3/docs/getting-started.md +share/doc/suika3/docs/gui.md +share/doc/suika3/docs/index.md +share/doc/suika3/docs/intro.md +share/doc/suika3/docs/lip-sync.md +share/doc/suika3/docs/novelml-syntax.md +share/doc/suika3/docs/novelml-tags.md +share/doc/suika3/docs/plugin.md +share/doc/suika3/docs/ray-2d-api.md +share/doc/suika3/docs/ray-syntax.md +share/doc/suika3/docs/ray-vn-api.md +share/doc/suika3/docs/srs.md +share/doc/suika3/docs/sysmenu.md +share/examples/suika3/game/bg/black.png +share/examples/suika3/game/bg/school.png +share/examples/suika3/game/bg/white.png +share/examples/suika3/game/bgm/afternoon2.ogg +share/examples/suika3/game/ch/midori/eye/midori-normal.png +share/examples/suika3/game/ch/midori/eye/midori-positive.png +share/examples/suika3/game/ch/midori/eye/midori-smile.png +share/examples/suika3/game/ch/midori/lip/combined.png +share/examples/suika3/game/ch/midori/lip/midori-happy.png +share/examples/suika3/game/ch/midori/lip/midori-normal.png +share/examples/suika3/game/ch/midori/lip/midori-positive.png +share/examples/suika3/game/ch/midori/lip/midori-smile.png +share/examples/suika3/game/ch/midori/midori-happy.png +share/examples/suika3/game/ch/midori/midori-normal.png +share/examples/suika3/game/ch/midori/midori-smile.png +share/examples/suika3/game/ch/xiaoling/eye/xiaoling-normal.png +share/examples/suika3/game/ch/xiaoling/eye/xiaoling-smile.png +share/examples/suika3/game/ch/xiaoling/lip/xiaoling-happy.png +share/examples/suika3/game/ch/xiaoling/lip/xiaoling-normal.png +share/examples/suika3/game/ch/xiaoling/lip/xiaoling-smile.png +share/examples/suika3/game/ch/xiaoling/xiaoling-happy.png +share/examples/suika3/game/ch/xiaoling/xiaoling-normal.png +share/examples/suika3/game/ch/xiaoling/xiaoling-smile.png +share/examples/suika3/game/config.ini +share/examples/suika3/game/system/font/rounded-l-mplus-1c-bold.ttf +share/examples/suika3/game/main.ray +share/examples/suika3/game/rule/mask.png +share/examples/suika3/game/rule/suika.png +share/examples/suika3/game/se/click.ogg +share/examples/suika3/game/start.novel +share/examples/suika3/game/system/choose/button.ogg +share/examples/suika3/game/system/choose/hover.anime +share/examples/suika3/game/system/choose/hover.png +share/examples/suika3/game/system/choose/idle.anime +share/examples/suika3/game/system/choose/idle.png +share/examples/suika3/game/system/config/config-bar-hover.png +share/examples/suika3/game/system/config/config-bar-idle.png +share/examples/suika3/game/system/config/config-bar-knob.png +share/examples/suika3/game/system/config/config-base.png +share/examples/suika3/game/system/config/config-lang-en-active.png +share/examples/suika3/game/system/config/config-lang-en-hover.png +share/examples/suika3/game/system/config/config-lang-en-idle.png +share/examples/suika3/game/system/config/config-lang-jp-active.png +share/examples/suika3/game/system/config/config-lang-jp-hover.png +share/examples/suika3/game/system/config/config-lang-jp-idle.png +share/examples/suika3/game/system/config/config-preview.png +share/examples/suika3/game/system/config/config.gui +share/examples/suika3/game/system/config/reset-hover.png +share/examples/suika3/game/system/config/reset-idle.png +share/examples/suika3/game/system/effect/rain/1.png +share/examples/suika3/game/system/effect/rain/rain.anime +share/examples/suika3/game/system/font/rounded-l-mplus-1c-bold.ttf +share/examples/suika3/game/system/emoji/heart.png +share/examples/suika3/game/system/emoji/sweat.png +share/examples/suika3/game/system/history/history-bar-hover.png +share/examples/suika3/game/system/history/history-bar-idle.png +share/examples/suika3/game/system/history/history-bar-knob.png +share/examples/suika3/game/system/history/history-base.png +share/examples/suika3/game/system/history/history-item-hover.png +share/examples/suika3/game/system/history/history-item-idle.png +share/examples/suika3/game/system/history/history.gui +share/examples/suika3/game/system/load/load-base.png +share/examples/suika3/game/system/load/load-item-hover.png +share/examples/suika3/game/system/load/load-item-idle.png +share/examples/suika3/game/system/load/load-page-1-active.png +share/examples/suika3/game/system/load/load-page-1-hover.png +share/examples/suika3/game/system/load/load-page-1-idle.png +share/examples/suika3/game/system/load/load-page-2-active.png +share/examples/suika3/game/system/load/load-page-2-hover.png +share/examples/suika3/game/system/load/load-page-2-idle.png +share/examples/suika3/game/system/load/load-page-3-active.png +share/examples/suika3/game/system/load/load-page-3-hover.png +share/examples/suika3/game/system/load/load-page-3-idle.png +share/examples/suika3/game/system/load/load-page-4-active.png +share/examples/suika3/game/system/load/load-page-4-hover.png +share/examples/suika3/game/system/load/load-page-4-idle.png +share/examples/suika3/game/system/load/load-page-5-active.png +share/examples/suika3/game/system/load/load-page-5-hover.png +share/examples/suika3/game/system/load/load-page-5-idle.png +share/examples/suika3/game/system/load/load-page-active.anime +share/examples/suika3/game/system/load/load-page-hover.anime +share/examples/suika3/game/system/load/load-page-idle.anime +share/examples/suika3/game/system/load/load.gui +share/examples/suika3/game/system/menu/large-hover.png +share/examples/suika3/game/system/menu/large-idle.png +share/examples/suika3/game/system/menu/small-hover.png +share/examples/suika3/game/system/menu/small-idle.png +share/examples/suika3/game/system/message/auto-hide.anime +share/examples/suika3/game/system/message/auto-show.anime +share/examples/suika3/game/system/message/auto.png +share/examples/suika3/game/system/message/click1.png +share/examples/suika3/game/system/message/click2.png +share/examples/suika3/game/system/message/msgbox-hide.anime +share/examples/suika3/game/system/message/msgbox-show.anime +share/examples/suika3/game/system/message/msgbox.png +share/examples/suika3/game/system/message/namebox-hide.anime +share/examples/suika3/game/system/message/namebox-show.anime +share/examples/suika3/game/system/message/namebox.png +share/examples/suika3/game/system/message/skip-hide.anime +share/examples/suika3/game/system/message/skip-show.anime +share/examples/suika3/game/system/message/skip.png +share/examples/suika3/game/system/plugins/testplugin/testplugin.ray +share/examples/suika3/game/system/save/save-base.png +share/examples/suika3/game/system/save/save-item-hover.png +share/examples/suika3/game/system/save/save-item-idle.png +share/examples/suika3/game/system/save/save-page-1-active.png +share/examples/suika3/game/system/save/save-page-1-hover.png +share/examples/suika3/game/system/save/save-page-1-idle.png +share/examples/suika3/game/system/save/save-page-1.png +share/examples/suika3/game/system/save/save-page-2-active.png +share/examples/suika3/game/system/save/save-page-2-hover.png +share/examples/suika3/game/system/save/save-page-2-idle.png +share/examples/suika3/game/system/save/save-page-2.png +share/examples/suika3/game/system/save/save-page-3-active.png +share/examples/suika3/game/system/save/save-page-3-hover.png +share/examples/suika3/game/system/save/save-page-3-idle.png +share/examples/suika3/game/system/save/save-page-3.png +share/examples/suika3/game/system/save/save-page-4-active.png +share/examples/suika3/game/system/save/save-page-4-hover.png +share/examples/suika3/game/system/save/save-page-4-idle.png +share/examples/suika3/game/system/save/save-page-4.png +share/examples/suika3/game/system/save/save-page-5-active.png +share/examples/suika3/game/system/save/save-page-5-hover.png +share/examples/suika3/game/system/save/save-page-5-idle.png +share/examples/suika3/game/system/save/save-page-5.png +share/examples/suika3/game/system/save/save-page-active.anime +share/examples/suika3/game/system/save/save-page-hover.anime +share/examples/suika3/game/system/save/save-page-idle.anime +share/examples/suika3/game/system/save/save.gui +share/examples/suika3/game/system/sysbtn/anime-appear.anime +share/examples/suika3/game/system/sysbtn/anime-fadein.anime +share/examples/suika3/game/system/sysbtn/anime-fadeout.anime +share/examples/suika3/game/system/sysbtn/anime-hover.anime +share/examples/suika3/game/system/sysbtn/anime-out.anime +share/examples/suika3/game/system/sysbtn/sysbtn-hover.png +share/examples/suika3/game/system/sysbtn/sysbtn-idle.anime +share/examples/suika3/game/system/sysbtn/sysbtn-idle.png +share/examples/suika3/game/system/sysmenu/auto-hover.png +share/examples/suika3/game/system/sysmenu/auto-idle.png +share/examples/suika3/game/system/sysmenu/base.png +share/examples/suika3/game/system/sysmenu/config-hover.png +share/examples/suika3/game/system/sysmenu/config-idle.png +share/examples/suika3/game/system/sysmenu/item-hover.anime +share/examples/suika3/game/system/sysmenu/item-idle.anime +share/examples/suika3/game/system/sysmenu/load-hover.png +share/examples/suika3/game/system/sysmenu/load-idle.png +share/examples/suika3/game/system/sysmenu/log-hover.png +share/examples/suika3/game/system/sysmenu/log-idle.png +share/examples/suika3/game/system/sysmenu/save-hover.png +share/examples/suika3/game/system/sysmenu/save-idle.anime +share/examples/suika3/game/system/sysmenu/save-idle.png +share/examples/suika3/game/system/sysmenu/skip-hover.png +share/examples/suika3/game/system/sysmenu/skip-idle.png +share/examples/suika3/game/system/sysmenu/sysmenu.gui +share/examples/suika3/game/voice/001.ogg +share/examples/suika3/game/voice/002.ogg +share/examples/suika3/game/voice/003.ogg +share/examples/suika3/game/voice/004.ogg +share/examples/suika3/game/voice/005.ogg diff --git a/games/suika3/distinfo b/games/suika3/distinfo new file mode 100644 index 000000000000..2fbc11b666b0 --- /dev/null +++ b/games/suika3/distinfo @@ -0,0 +1,5 @@ +$NetBSD$ + +BLAKE2s (suika3-26.04.9.tar.gz) = cfc1a5d2700dcca04b06a2b826698985f0bbcf4da28ae0af25ab9285f117a7ed +SHA512 (suika3-26.04.9.tar.gz) = 4ddab321aee07449b3683a8c93feed30fb53031e7815fe9d374cd980d113d44adae9f022059b04cf10e72da063b1f727e13a87da91fa86d75f212c9ff99d7265 +Size (suika3-26.04.9.tar.gz) = 62235499 bytes diff --git a/games/suika3/options.mk b/games/suika3/options.mk new file mode 100644 index 000000000000..066c9d1efaa0 --- /dev/null +++ b/games/suika3/options.mk @@ -0,0 +1,59 @@ +PKG_OPTIONS_VAR= PKG_OPTIONS.suika3 +PKG_SUPPORTED_OPTIONS= opengl gstreamer jit +PKG_SUGGESTED_OPTIONS= opengl gstreamer jit +PKG_OPTIONS_VAR= PKG_OPTIONS.suika3 + +.include "../../mk/bsd.options.mk" +.include "../../mk/bsd.prefs.mk" + +# +# Gstreamer support +# +.if !empty(PKG_OPTIONS:Mgstreamer) +CMAKE_CONFIGURE_ARGS+= -DSUIKA_ENABLE_GST=ON +.include "../../multimedia/gstreamer1/buildlink3.mk" +.include "../../multimedia/gst-plugins1-base/buildlink3.mk" +.else +CMAKE_CONFIGURE_ARGS+= -DSUIKA_ENABLE_GST=OFF +.endif + +# +# JIT support +# +.if !empty(PKG_OPTIONS:Mjit) +CMAKE_CONFIGURE_ARGS+= -DSUIKA_ENABLE_JIT=ON +.else +CMAKE_CONFIGURE_ARGS+= -DSUIKA_ENABLE_JIT=OFF +.endif + +# +# OpenGL support +# + +.if ${OPSYS} == "NetBSD" +.if !empty(PKG_OPTIONS:Mopengl) +CMAKE_CONFIGURE_ARGS+= -DSUIKA_TARGET_NETBSD=ON +.include "../../graphics/MesaLib/buildlink3.mk" +.else +CMAKE_CONFIGURE_ARGS+= -DSUIKA_TARGET_NETBSD_X11SOFT=ON +.endif +.endif + +.if ${OPSYS} == "FreeBSD" +.if !empty(PKG_OPTIONS:Mopengl) +CMAKE_CONFIGURE_ARGS+= -DSUIKA_TARGET_FREEBSD=ON +.else +CMAKE_CONFIGURE_ARGS+= -DSUIKA_TARGET_FREEBSD_X11SOFT=ON +.endif +.endif + +.if ${OPSYS} == "Linux" +.if !empty(PKG_OPTIONS:Mopengl) +CMAKE_CONFIGURE_ARGS+= -DSUIKA_TARGET_LINUX=ON +.else +CMAKE_CONFIGURE_ARGS+= -DSUIKA_TARGET_LINUX_X11SOFT=ON +.endif +.endif + +# For other systems, leave it to the auto detection on CMakeLists.txt. +