From a710c2644f9af0de3bde8f2bdb1f64991ce980d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pl=C3=BCss=20Roland?= Date: Fri, 14 Aug 2020 18:22:46 +0200 Subject: [PATCH] game-engines/dragengine added (#5232) --- .../dragengine/additional-files/custom.py | 99 +++++++++++++++++ .../dragengine/dragengine-1.2.recipe | 104 ++++++++++++++++++ 2 files changed, 203 insertions(+) create mode 100644 games-engines/dragengine/additional-files/custom.py create mode 100644 games-engines/dragengine/dragengine-1.2.recipe diff --git a/games-engines/dragengine/additional-files/custom.py b/games-engines/dragengine/additional-files/custom.py new file mode 100644 index 000000000..b60f2fffd --- /dev/null +++ b/games-engines/dragengine/additional-files/custom.py @@ -0,0 +1,99 @@ +# configuration for haiku package building +############################################ + +# general configuration +######################### +with_tests = 'no' +with_warnerrors = 'no' +with_debug = 'no' +with_verbose = 'no' + +# external library configuration +################################## +# use as many system libraries as possible +with_system_zlib = 'yes' +with_system_libpng = 'yes' +with_system_libjpeg = 'yes' +with_system_openal = 'yes' +with_system_libogg = 'yes' +with_system_libvorbis = 'yes' +with_system_libtheora = 'yes' +with_system_soundtouch = 'yes' +with_opengl = 'yes' +with_dl = 'no' +with_pthread = 'yes' +with_x = 'no' + +# these are not used since python and npapisdk are disabled. set to in-tree +# to not upset the build system although they will never be build at all +with_python = 'no' +with_npapisdk = 'no' + +# libapng requires a patched libpng not present on most systems +with_system_libapng ='no' # patched version + +# these packages cause troubles on haiku and are build in-tree +with_system_libhidapi = 'no' # requires libhidapi-usb which is missing + +# these packages do not exist on haiku so we need to build them in-tree +with_system_fox ='no' +with_system_libopenhmd = 'no' +with_system_libevdev = 'no' +with_system_dragonscript = 'no' + +# libusb is required by libhidapi +with_system_libusb = 'yes' + +# these are only required for the smalltalk module which is currently not build. +# to not upset the build system with not finding packages they are set to in-tree +# building although they will never be build at all +with_system_libffi = 'no' +with_system_libltdl = 'no' +with_system_libsigsegv = 'no' +with_system_smalltalk = 'no' + +# this package is not used right now but might be later on by the openal module. +# as with the smalltalk case above this package is set to in-tree building +# although it will never be build at all +with_system_fftw = 'no' + +# module configurations +######################### +build_audio_openal = 'yes' +build_cr_basic = 'no' # requires fox +build_graphics_opengl = 'yes' +build_image_png = 'yes' +build_image_png3d = 'yes' +build_image_jpeg = 'yes' +build_input_beos = 'yes' +build_physics_bullet = 'yes' +build_script_ds = 'yes' +build_sound_ogg = 'yes' +build_video_theora = 'yes' +build_video_apng = 'yes' +build_igde = 'no' +build_guilauncher = 'no' +build_archive_delga = 'yes' + +build_input_w32 = 'no' +build_input_x = 'no' +build_input_macos = 'no' +build_input_android = 'no' +build_script_python = 'no' +build_script_smalltalk = 'no' +build_plugin_npapi = 'no' +build_launcher_android = 'no' + +# archiving +############# +# for testing purpose only +archive_format = 'tarbz2' +archive_name_engine = 'dragengine-haiku' +archive_name_engine_dev = 'dragengine-dev-haiku' +archive_name_igde = 'igde-haiku' +archive_name_igde_dev = 'igde-dev-haiku' +archive_name_special = 'despecial-haiku' +installer_name_engine = 'install-dragengine-haiku' +installer_name_engine_dev = 'install-dragengine-dev-haiku' +installer_name_igde = 'install-deigde-haiku' +installer_name_igde_dev = 'install-deigde-dev-haiku' diff --git a/games-engines/dragengine/dragengine-1.2.recipe b/games-engines/dragengine/dragengine-1.2.recipe new file mode 100644 index 000000000..17827761c --- /dev/null +++ b/games-engines/dragengine/dragengine-1.2.recipe @@ -0,0 +1,104 @@ +SUMMARY="Drag[en]gine Game Engine" +DESCRIPTION="Provides the game engine and launchers required to run games and other \ +projects based on the Drag[en]gine Game Engine. Games do not compile directly against \ +the game engine. Instead there is one shared installation on the system relying on \ +launchers to handle all the initialization and maintenance work. + +This package provides one launcher. + +'delauncher-console' is a console based launcher. It is the most basic launcher just \ +able to run the game without providing any additional tools. It can be used to run \ +games without overhead or in headless mode for server operation." +HOMEPAGE="https://dragondreams.ch + https://github.com/LordOfDragons/dragengine" +COPYRIGHT="2020-2020 Dragon Dreams" +LICENSE="GNU GPL v3 + GNU LGPL v3" +REVISION="1" +srcGitRev="1.2-1-haiku" +SOURCE_URI="https://github.com/LordOfDragons/dragengine/archive/v$srcGitRev.tar.gz" +CHECKSUM_SHA256="fade8d3fac5ab098f72f686ea59c81e01a33bbc08070fc957eaa3a459f9d7963" +SOURCE_FILENAME="dragengine-$srcGitRev.tar.gz" +SOURCE_DIR="dragengine-$srcGitRev" +ADDITIONAL_FILES="custom.py" + +ARCHITECTURES="!x86_gcc2 ?x86 x86_64" +SECONDARY_ARCHITECTURES="x86" + +# sources contain various external library distributions for in-tree building. +# this creates vary large sources package. since the URL to the GitHub repository +# is included in the recipe there is no need for such a large source package. +DISABLE_SOURCE_PACKAGE="yes" + +PROVIDES=" + dragengine$secondaryArchSuffix = $portVersion + lib:libdragengine$secondaryArchSuffix = $portVersion compat >= 1.2 + cmd:delauncher_console$secondaryArchSuffix = $portVersion + " +PROVIDES_devel=" + dragengine${secondaryArchSuffix}_devel = $portVersion + devel:libdragengine$secondaryArchSuffix = $portVersion compat >= 1.2 + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libpng16$secondaryArchSuffix + lib:libopenal$secondaryArchSuffix + lib:libogg$secondaryArchSuffix + lib:libvorbis$secondaryArchSuffix + lib:libtheora$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libgl$secondaryArchSuffix + lib:libusb_1.0$secondaryArchSuffix + lib:libsoundtouch$secondaryArchSuffix + " +REQUIRES_devel=" + dragengine$secondaryArchSuffix == $portVersion base + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libgl$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:libpng16$secondaryArchSuffix + devel:libopenal$secondaryArchSuffix + devel:libogg$secondaryArchSuffix + devel:libvorbis$secondaryArchSuffix + devel:libtheora$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libusb_1.0$secondaryArchSuffix + devel:libsoundtouch$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:scons + cmd:patch + cmd:gawk + cmd:make + " + +BUILD() +{ + cp -f $portDir/additional-files/custom.py custom.py + echo "" >>custom.py + echo "# package builder injected path" >>custom.py + echo "prefix = '$prefix'" >>custom.py + echo "libdir = '$libDir'" >>custom.py + echo "includedir = '$includeDir'" >>custom.py + echo "datadir = '$dataDir'" >>custom.py + echo "sysconfdir = '$settingsDir'" >>custom.py + echo "execdir = '$binDir'" >>custom.py + echo "docdir = '$manDir'" >>custom.py + + # scons $jobArgs build + # scons crashes with multi-thread. force single thread. happens only on haiku + scons -j 1 build +} + +INSTALL() +{ + scons --config=cache -j 1 install_engine_runtime dragengine_develop + # scons --config=cache -j 1 install_igde_runtime deigde_shared_develop + prepareInstalledDevelLib libdragengine + packageEntries devel $developDir +}