diff --git a/Makefile b/Makefile index d613ed910f..c7b233e4ea 100644 --- a/Makefile +++ b/Makefile @@ -66,6 +66,7 @@ SUBDIR+= R-signal SUBDIR+= R-tuneR SUBDIR+= Radicale3 SUBDIR+= ReZound +SUBDIR+= RigelEngine SUBDIR+= SLADE SUBDIR+= Siesta SUBDIR+= StepTalk diff --git a/RigelEngine/DESCR b/RigelEngine/DESCR new file mode 100644 index 0000000000..9fdf0d33f1 --- /dev/null +++ b/RigelEngine/DESCR @@ -0,0 +1,7 @@ +This project is a re-implementation of the game Duke Nukem II, +originally released by Apogee Software in 1993. RigelEngine works +as a drop-in replacement for the original executable: It reads the +original data files and offers the same experience (plus some +improvements), but runs natively on modern operating systems, and +is written in modern C++ code with a completely new architecture +under the hood. diff --git a/RigelEngine/Makefile b/RigelEngine/Makefile new file mode 100644 index 0000000000..8227d1ebdd --- /dev/null +++ b/RigelEngine/Makefile @@ -0,0 +1,38 @@ +# $NetBSD$ + +GITHUB_PROJECT= RigelEngine +GITHUB_TAG= v0.7.0-beta +DISTNAME= ${GITHUB_TAG} +PKGNAME= RigelEngine-0.7.0 +CATEGORIES= games +MASTER_SITES= ${MASTER_SITE_GITHUB:=lethal-guitar/} +DIST_SUBDIR= ${GITHUB_PROJECT} +DISTFILES+= ${GITHUB_TAG}.tar.gz +DISTFILES+= imgui-1.7.9.tar.gz +SITES.imgui-1.7.9.tar.gz= \ + -${MASTER_SITE_GITHUB:S,^,-,:=ocornut/}imgui/archive/v1.79.tar.gz + +MAINTAINER= pkgsrc-users@NetBSD.org +HOMEPAGE= https://github.com/lethal-guitar/RigelEngine/ +COMMENT= Modern re-implementation of the classic DOS game Duke Nukem II +LICENSE= gnu-gpl-v2 + +WRKSRC= ${WRKDIR}/RigelEngine-0.7.0-beta +USE_CMAKE= yes +USE_LANGUAGES= c c++17 + +INSTALLATION_DIRS+= bin + +pre-configure: + cp -R ${WRKDIR}/imgui-1.79/* ${WRKSRC}/3rd_party/imgui/imgui + +do-install: + ${INSTALL_GAME} ${WRKSRC}/src/RigelEngine ${DESTDIR}${PREFIX}/bin + +.include "../../audio/SDL2_mixer/buildlink3.mk" +.include "../../devel/SDL2/buildlink3.mk" +.include "../../devel/boost-headers/buildlink3.mk" +.include "../../devel/boost-libs/buildlink3.mk" +.include "../../graphics/glm/buildlink3.mk" +.include "../../wip/entityx/buildlink3.mk" +.include "../../mk/bsd.pkg.mk" diff --git a/RigelEngine/PLIST b/RigelEngine/PLIST new file mode 100644 index 0000000000..dc9da75870 --- /dev/null +++ b/RigelEngine/PLIST @@ -0,0 +1,2 @@ +@comment $NetBSD$ +bin/RigelEngine diff --git a/RigelEngine/distinfo b/RigelEngine/distinfo new file mode 100644 index 0000000000..ef9feddb08 --- /dev/null +++ b/RigelEngine/distinfo @@ -0,0 +1,12 @@ +$NetBSD$ + +SHA1 (RigelEngine/imgui-1.7.9.tar.gz) = da92c36e123002475cd6adba8e3429051a317e71 +RMD160 (RigelEngine/imgui-1.7.9.tar.gz) = 2ae1cb43d0048e1f74f812ec47de5280dda53a84 +SHA512 (RigelEngine/imgui-1.7.9.tar.gz) = 35ed7af89123e09989ef81085f19ed15f97f4798e2b35834fd8b4ae918889b51132d85901f867ab2f379711a734bc7b2edd309d74f3f7527eaaaebfd766d3737 +Size (RigelEngine/imgui-1.7.9.tar.gz) = 1299303 bytes +SHA1 (RigelEngine/v0.7.0-beta.tar.gz) = f4ebd8ac989500beb80bcba973bd444c852c3359 +RMD160 (RigelEngine/v0.7.0-beta.tar.gz) = 0b7ab181717ad36cc3524d265857079c82f97506 +SHA512 (RigelEngine/v0.7.0-beta.tar.gz) = 0eae25c434f2cf5e10f63c02fb776c56595683dfa6076c8cbc0f3b5101df431c08778c5ee44ebec38e320342619dc9d4161adfbf1c8036899208df51d552ee88 +Size (RigelEngine/v0.7.0-beta.tar.gz) = 756157 bytes +SHA1 (patch-3rd__party_CMakeLists.txt) = 10629ff9d8d15eb817737f5d364aff29aa42ea90 +SHA1 (patch-CMakeLists.txt) = 148e401abbed52fc5747f6c182f2efeb9018fbd6 diff --git a/RigelEngine/patches/patch-3rd__party_CMakeLists.txt b/RigelEngine/patches/patch-3rd__party_CMakeLists.txt new file mode 100644 index 0000000000..3d3b15ac8b --- /dev/null +++ b/RigelEngine/patches/patch-3rd__party_CMakeLists.txt @@ -0,0 +1,19 @@ +$NetBSD$ + +Don't download entityx. Use the pkgsrc version. + +--- 3rd_party/CMakeLists.txt.orig 2020-11-28 16:11:39.000000000 +0000 ++++ 3rd_party/CMakeLists.txt +@@ -28,10 +28,10 @@ set(ENTITYX_RUN_BENCHMARKS false CACHE I + set(ENTITYX_MAX_COMPONENTS 64 CACHE INTERNAL "") + + add_subdirectory(dbopl) +-add_subdirectory(entityx) ++#add_subdirectory(entityx) + add_subdirectory(glad) + add_subdirectory(speex_resampler) + add_subdirectory(imgui) + add_subdirectory(imgui-filebrowser) + +-rigel_disable_warnings(entityx) ++#rigel_disable_warnings(entityx) diff --git a/RigelEngine/patches/patch-CMakeLists.txt b/RigelEngine/patches/patch-CMakeLists.txt new file mode 100644 index 0000000000..aeaef92b3f --- /dev/null +++ b/RigelEngine/patches/patch-CMakeLists.txt @@ -0,0 +1,30 @@ +$NetBSD$ + +Don't download entityx. Use the pkgsrc. + +--- CMakeLists.txt.orig 2020-11-28 16:11:39.000000000 +0000 ++++ CMakeLists.txt +@@ -25,10 +25,10 @@ include("${CMAKE_SOURCE_DIR}/cmake/rigel + # initialized. It's still possible to get in a state where entityx is present + # but other submodules are not, but that's unlikely to happen to someone who + # has just cloned the repo and wants to build for the first time. +-if(NOT EXISTS "${CMAKE_SOURCE_DIR}/3rd_party/entityx/entityx/Entity.h") +- message(FATAL_ERROR +- "It seems git submodules were not initialized. You need to run git submodule update --init --recursive, and then re-run CMake.") +-endif() ++#if(NOT EXISTS "${CMAKE_SOURCE_DIR}/3rd_party/entityx/entityx/Entity.h") ++# message(FATAL_ERROR ++# "It seems git submodules were not initialized. You need to run git submodule update --init --recursive, and then re-run CMake.") ++#endif() + + + if("${CMAKE_SYSTEM_NAME}" STREQUAL "Emscripten") +@@ -53,6 +53,8 @@ else() + find_package(Boost 1.65 COMPONENTS program_options REQUIRED) + find_package(SDL2 REQUIRED) + find_package(SDL2_mixer REQUIRED) ++ find_package(PkgConfig REQUIRED) ++ pkg_check_modules(ENTITYX entityx REQUIRED) + endif() + + find_package(Filesystem REQUIRED)