mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-22 11:40:06 +02:00
Add broken teeworlds 0.6.3 recipe and patch
This commit is contained in:
283
games-action/teeworlds/patches/teeworlds-0.6.3.patch
Normal file
283
games-action/teeworlds/patches/teeworlds-0.6.3.patch
Normal file
@@ -0,0 +1,283 @@
|
||||
diff -ur teeworlds-0.6.3-src-orig/bam.lua teeworlds-0.6.3-src/bam.lua
|
||||
--- teeworlds-0.6.3-src-orig/bam.lua 2014-11-20 00:08:23.059768832 +0200
|
||||
+++ teeworlds-0.6.3-src/bam.lua 2014-12-17 00:47:27.678428672 +0200
|
||||
@@ -184,6 +184,12 @@
|
||||
settings.link.libs:Add("ws2_32")
|
||||
settings.link.libs:Add("ole32")
|
||||
settings.link.libs:Add("shell32")
|
||||
+ elseif family == "beos" and platform == "haiku" then
|
||||
+ settings.link.libs:Add("be")
|
||||
+ settings.link.libs:Add("root")
|
||||
+ settings.link.libs:Add("network")
|
||||
+ settings.link.libs:Add("GL");
|
||||
+ settings.link.libs:Add("GLU");
|
||||
end
|
||||
|
||||
-- compile zlib if needed
|
||||
diff -ur teeworlds-0.6.3-src-orig/src/base/detect.h teeworlds-0.6.3-src/src/base/detect.h
|
||||
--- teeworlds-0.6.3-src-orig/src/base/detect.h 2014-11-20 00:08:22.046137344 +0200
|
||||
+++ teeworlds-0.6.3-src/src/base/detect.h 2014-12-16 21:31:00.576192512 +0200
|
||||
@@ -68,7 +68,7 @@
|
||||
#endif
|
||||
|
||||
/* beos family */
|
||||
-#if defined(__BeOS) || defined(__BEOS__)
|
||||
+#if defined(__BeOS) || defined(__BEOS__) || defined(__HAIKU__)
|
||||
#define CONF_FAMILY_BEOS 1
|
||||
#define CONF_FAMILY_STRING "beos"
|
||||
#define CONF_PLATFORM_BEOS 1
|
||||
diff -ur teeworlds-0.6.3-src-orig/src/base/system.c teeworlds-0.6.3-src/src/base/system.c
|
||||
--- teeworlds-0.6.3-src-orig/src/base/system.c 2014-11-20 00:08:22.047448064 +0200
|
||||
+++ teeworlds-0.6.3-src/src/base/system.c 2014-12-17 18:20:36.652738560 +0200
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
#include "system.h"
|
||||
|
||||
-#if defined(CONF_FAMILY_UNIX)
|
||||
+#if defined(CONF_FAMILY_UNIX) || defined(CONF_FAMILY_BEOS)
|
||||
#include <sys/time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
@@ -372,7 +372,7 @@
|
||||
|
||||
void *thread_create(void (*threadfunc)(void *), void *u)
|
||||
{
|
||||
-#if defined(CONF_FAMILY_UNIX)
|
||||
+#if defined(CONF_FAMILY_UNIX) || defined(CONF_FAMILY_BEOS)
|
||||
pthread_t id;
|
||||
pthread_create(&id, NULL, (void *(*)(void*))threadfunc, u);
|
||||
return (void*)id;
|
||||
@@ -385,7 +385,7 @@
|
||||
|
||||
void thread_wait(void *thread)
|
||||
{
|
||||
-#if defined(CONF_FAMILY_UNIX)
|
||||
+#if defined(CONF_FAMILY_UNIX) || defined(CONF_FAMILY_BEOS)
|
||||
pthread_join((pthread_t)thread, NULL);
|
||||
#elif defined(CONF_FAMILY_WINDOWS)
|
||||
WaitForSingleObject((HANDLE)thread, INFINITE);
|
||||
@@ -396,7 +396,7 @@
|
||||
|
||||
void thread_destroy(void *thread)
|
||||
{
|
||||
-#if defined(CONF_FAMILY_UNIX)
|
||||
+#if defined(CONF_FAMILY_UNIX) || defined(CONF_FAMILY_BEOS)
|
||||
void *r = 0;
|
||||
pthread_join((pthread_t)thread, &r);
|
||||
#else
|
||||
@@ -406,7 +406,7 @@
|
||||
|
||||
void thread_yield()
|
||||
{
|
||||
-#if defined(CONF_FAMILY_UNIX)
|
||||
+#if defined(CONF_FAMILY_UNIX) || defined(CONF_FAMILY_BEOS)
|
||||
sched_yield();
|
||||
#elif defined(CONF_FAMILY_WINDOWS)
|
||||
Sleep(0);
|
||||
@@ -417,7 +417,7 @@
|
||||
|
||||
void thread_sleep(int milliseconds)
|
||||
{
|
||||
-#if defined(CONF_FAMILY_UNIX)
|
||||
+#if defined(CONF_FAMILY_UNIX) || defined(CONF_FAMILY_BEOS)
|
||||
usleep(milliseconds*1000);
|
||||
#elif defined(CONF_FAMILY_WINDOWS)
|
||||
Sleep(milliseconds);
|
||||
@@ -428,7 +428,7 @@
|
||||
|
||||
void thread_detach(void *thread)
|
||||
{
|
||||
-#if defined(CONF_FAMILY_UNIX)
|
||||
+#if defined(CONF_FAMILY_UNIX) || defined(CONF_FAMILY_BEOS)
|
||||
pthread_detach((pthread_t)(thread));
|
||||
#elif defined(CONF_FAMILY_WINDOWS)
|
||||
CloseHandle(thread);
|
||||
@@ -440,7 +440,7 @@
|
||||
|
||||
|
||||
|
||||
-#if defined(CONF_FAMILY_UNIX)
|
||||
+#if defined(CONF_FAMILY_UNIX) || defined(CONF_FAMILY_BEOS)
|
||||
typedef pthread_mutex_t LOCKINTERNAL;
|
||||
#elif defined(CONF_FAMILY_WINDOWS)
|
||||
typedef CRITICAL_SECTION LOCKINTERNAL;
|
||||
@@ -452,7 +452,7 @@
|
||||
{
|
||||
LOCKINTERNAL *lock = (LOCKINTERNAL*)mem_alloc(sizeof(LOCKINTERNAL), 4);
|
||||
|
||||
-#if defined(CONF_FAMILY_UNIX)
|
||||
+#if defined(CONF_FAMILY_UNIX) || defined(CONF_FAMILY_BEOS)
|
||||
pthread_mutex_init(lock, 0x0);
|
||||
#elif defined(CONF_FAMILY_WINDOWS)
|
||||
InitializeCriticalSection((LPCRITICAL_SECTION)lock);
|
||||
@@ -464,7 +464,7 @@
|
||||
|
||||
void lock_destroy(LOCK lock)
|
||||
{
|
||||
-#if defined(CONF_FAMILY_UNIX)
|
||||
+#if defined(CONF_FAMILY_UNIX) || defined(CONF_FAMILY_BEOS)
|
||||
pthread_mutex_destroy((LOCKINTERNAL *)lock);
|
||||
#elif defined(CONF_FAMILY_WINDOWS)
|
||||
DeleteCriticalSection((LPCRITICAL_SECTION)lock);
|
||||
@@ -476,7 +476,7 @@
|
||||
|
||||
int lock_try(LOCK lock)
|
||||
{
|
||||
-#if defined(CONF_FAMILY_UNIX)
|
||||
+#if defined(CONF_FAMILY_UNIX) || defined(CONF_FAMILY_BEOS)
|
||||
return pthread_mutex_trylock((LOCKINTERNAL *)lock);
|
||||
#elif defined(CONF_FAMILY_WINDOWS)
|
||||
return !TryEnterCriticalSection((LPCRITICAL_SECTION)lock);
|
||||
@@ -487,7 +487,7 @@
|
||||
|
||||
void lock_wait(LOCK lock)
|
||||
{
|
||||
-#if defined(CONF_FAMILY_UNIX)
|
||||
+#if defined(CONF_FAMILY_UNIX) || defined(CONF_FAMILY_BEOS)
|
||||
pthread_mutex_lock((LOCKINTERNAL *)lock);
|
||||
#elif defined(CONF_FAMILY_WINDOWS)
|
||||
EnterCriticalSection((LPCRITICAL_SECTION)lock);
|
||||
@@ -498,7 +498,7 @@
|
||||
|
||||
void lock_release(LOCK lock)
|
||||
{
|
||||
-#if defined(CONF_FAMILY_UNIX)
|
||||
+#if defined(CONF_FAMILY_UNIX) || defined(CONF_FAMILY_BEOS)
|
||||
pthread_mutex_unlock((LOCKINTERNAL *)lock);
|
||||
#elif defined(CONF_FAMILY_WINDOWS)
|
||||
LeaveCriticalSection((LPCRITICAL_SECTION)lock);
|
||||
@@ -508,7 +508,7 @@
|
||||
}
|
||||
|
||||
#if !defined(CONF_PLATFORM_MACOSX)
|
||||
- #if defined(CONF_FAMILY_UNIX)
|
||||
+ #if defined(CONF_FAMILY_UNIX) || defined(CONF_FAMILY_BEOS)
|
||||
void semaphore_init(SEMAPHORE *sem) { sem_init(sem, 0, 0); }
|
||||
void semaphore_wait(SEMAPHORE *sem) { sem_wait(sem); }
|
||||
void semaphore_signal(SEMAPHORE *sem) { sem_post(sem); }
|
||||
@@ -527,7 +527,7 @@
|
||||
/* ----- time ----- */
|
||||
int64 time_get()
|
||||
{
|
||||
-#if defined(CONF_FAMILY_UNIX)
|
||||
+#if defined(CONF_FAMILY_UNIX) || defined(CONF_FAMILY_BEOS)
|
||||
struct timeval val;
|
||||
gettimeofday(&val, NULL);
|
||||
return (int64)val.tv_sec*(int64)1000000+(int64)val.tv_usec;
|
||||
@@ -546,7 +546,7 @@
|
||||
|
||||
int64 time_freq()
|
||||
{
|
||||
-#if defined(CONF_FAMILY_UNIX)
|
||||
+#if defined(CONF_FAMILY_UNIX) || defined(CONF_FAMILY_BEOS)
|
||||
return 1000000;
|
||||
#elif defined(CONF_FAMILY_WINDOWS)
|
||||
int64 t;
|
||||
@@ -1354,6 +1354,16 @@
|
||||
return -1;
|
||||
_snprintf(path, max, "%s/%s", home, appname);
|
||||
return 0;
|
||||
+#elif defined(CONF_FAMILY_BEOS)
|
||||
+ #include <FindDirectory.h>
|
||||
+
|
||||
+ dev_t device = (dev_t)-1;
|
||||
+ char *datadir;
|
||||
+
|
||||
+ status_t status = find_directory(B_USER_DATA_DIRECTORY, device, false, datadir, max);
|
||||
+ if (status < B_OK) return -1;
|
||||
+ snprintf(path, max, "%s/%s", datadir, appname);
|
||||
+ return 0;
|
||||
#else
|
||||
char *home = getenv("HOME");
|
||||
#if !defined(CONF_PLATFORM_MACOSX)
|
||||
@@ -1795,7 +1805,7 @@
|
||||
&theItem);
|
||||
|
||||
RunStandardAlert(theItem, NULL, &itemIndex);
|
||||
-#elif defined(CONF_FAMILY_UNIX)
|
||||
+#elif defined(CONF_FAMILY_UNIX) || defined(CONF_FAMILY_BEOS)
|
||||
static char cmd[1024];
|
||||
int err;
|
||||
/* use xmessage which is available on nearly every X11 system */
|
||||
diff -ur teeworlds-0.6.3-src-orig/src/base/system.h teeworlds-0.6.3-src/src/base/system.h
|
||||
--- teeworlds-0.6.3-src-orig/src/base/system.h 2014-11-20 00:08:22.046137344 +0200
|
||||
+++ teeworlds-0.6.3-src/src/base/system.h 2014-12-16 21:31:00.580124672 +0200
|
||||
@@ -411,7 +411,7 @@
|
||||
/* Group: Semaphores */
|
||||
|
||||
#if !defined(CONF_PLATFORM_MACOSX)
|
||||
- #if defined(CONF_FAMILY_UNIX)
|
||||
+ #if defined(CONF_FAMILY_UNIX) || defined(CONF_FAMILY_BEOS)
|
||||
#include <semaphore.h>
|
||||
typedef sem_t SEMAPHORE;
|
||||
#elif defined(CONF_FAMILY_WINDOWS)
|
||||
diff -ur teeworlds-0.6.3-src-orig/src/engine/client/backend_sdl.cpp teeworlds-0.6.3-src/src/engine/client/backend_sdl.cpp
|
||||
--- teeworlds-0.6.3-src-orig/src/engine/client/backend_sdl.cpp 2014-11-20 00:08:22.004980736 +0200
|
||||
+++ teeworlds-0.6.3-src/src/engine/client/backend_sdl.cpp 2014-12-16 23:45:27.095944704 +0200
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
-#include "SDL.h"
|
||||
-#include "SDL_opengl.h"
|
||||
+#include <SDL/SDL.h>
|
||||
+#include <SDL/SDL_opengl.h>
|
||||
|
||||
#include <base/tl/threading.h>
|
||||
|
||||
diff -ur teeworlds-0.6.3-src-orig/src/engine/client/backend_sdl.h teeworlds-0.6.3-src/src/engine/client/backend_sdl.h
|
||||
--- teeworlds-0.6.3-src-orig/src/engine/client/backend_sdl.h 2014-11-20 00:08:22.005767168 +0200
|
||||
+++ teeworlds-0.6.3-src/src/engine/client/backend_sdl.h 2014-12-17 18:21:15.679215104 +0200
|
||||
@@ -1,12 +1,12 @@
|
||||
|
||||
-#include "SDL.h"
|
||||
-#include "SDL_opengl.h"
|
||||
+#include <SDL/SDL.h>
|
||||
+#include <SDL/SDL_opengl.h>
|
||||
|
||||
#include "graphics_threaded.h"
|
||||
|
||||
|
||||
|
||||
-// platform dependent implementations for transfering render context from the main thread to the graphics thread
|
||||
+// platform dependent implementations for transfering render Context from the main thread to the graphics thread
|
||||
// TODO: when SDL 1.3 comes, this can be removed
|
||||
#if defined(CONF_FAMILY_WINDOWS)
|
||||
struct SGLContext
|
||||
@@ -49,7 +49,7 @@
|
||||
{
|
||||
SGLContext Context;
|
||||
Class NSOpenGLContextClass = (Class) objc_getClass("NSOpenGLContext");
|
||||
- SEL selector = sel_registerName("currentContext");
|
||||
+ SEL selector = sel_reg0isterName("currentContext");
|
||||
Context.m_Context = objc_msgSend((objc_object*) NSOpenGLContextClass, selector);
|
||||
return Context;
|
||||
}
|
||||
@@ -117,6 +117,29 @@
|
||||
static void GL_MakeCurrent(const SGLContext &Context) { glXMakeCurrent(Context.m_pDisplay, Context.m_Drawable, Context.m_Context); }
|
||||
static void GL_ReleaseContext(const SGLContext &Context) { glXMakeCurrent(Context.m_pDisplay, None, 0x0); }
|
||||
static void GL_SwapBuffers(const SGLContext &Context) { glXSwapBuffers(Context.m_pDisplay, Context.m_Drawable); }
|
||||
+#elif defined(CONF_FAMILY_BEOS)
|
||||
+
|
||||
+ #include <Application.h>
|
||||
+ #include <opengl/GLView.h>
|
||||
+
|
||||
+ struct SGLContext
|
||||
+ {
|
||||
+ BGLView* view;
|
||||
+ };
|
||||
+
|
||||
+ static SGLContext GL_GetCurrentContext()
|
||||
+ {
|
||||
+ SGLContext Context;
|
||||
+
|
||||
+ BApplication *be_app = new BApplication("application/x-vnd.tw-teeworlds");
|
||||
+
|
||||
+ Context.view = ((BGLView*) be_app->WindowAt(0)->ChildAt(0));
|
||||
+ return Context;
|
||||
+ }
|
||||
+
|
||||
+ static void GL_MakeCurrent(const SGLContext &Context) { Context.view->LockGL(); }
|
||||
+ static void GL_ReleaseContext(const SGLContext &Context) { Context.view->UnlockGL(); }
|
||||
+ static void GL_SwapBuffers(const SGLContext &Context) { Context.view->SwapBuffers(); }
|
||||
#else
|
||||
#error missing implementation
|
||||
#endif
|
||||
59
games-action/teeworlds/teeworlds-0.6.3.recipe
Normal file
59
games-action/teeworlds/teeworlds-0.6.3.recipe
Normal file
@@ -0,0 +1,59 @@
|
||||
SUMMARY="Teeworlds is a retro multiplayer shooter"
|
||||
DESCRIPTION="Teeworlds is a free online multiplayer game, available for \
|
||||
all major operating systems. Battle with up to 16 players in a variety of \
|
||||
game modes, including Team Deathmatch and Capture The Flag. You can even \
|
||||
design your own maps!"
|
||||
|
||||
LICENSE="Zlib"
|
||||
COPYRIGHT="2007-2012 Magnus Auvinen"
|
||||
|
||||
ARCHITECTURES="!x86" # Once it works, remove the bang
|
||||
if [ $effectiveTargetArchitecture != "x86_gcc2" ]; then
|
||||
ARCHITECTURES="!x86_gcc2 $ARCHITECTURES" # Once it works, remove the bang
|
||||
else
|
||||
ARCHITECTURES="!x86_gcc2 $ARCHITECTURES"
|
||||
fi
|
||||
SECONDARY_ARCHITECTURES="!x86_gcc2 !x86" # Once it works, remove the bang on x86
|
||||
REVISION="1"
|
||||
HOMEPAGE="https://www.teeworlds.com"
|
||||
SRC_URI="https://downloads.teeworlds.com/teeworlds-0.6.3-src.tar.gz"
|
||||
CHECKSUM_SHA256="490ee7c372898761c609af8d7b0c6bd55942c6c6fcd7f361eefa00abfc70077b"
|
||||
SOURCE_DIR="teeworlds-0.6.3-src"
|
||||
|
||||
PROVIDES="
|
||||
teeworlds$secondaryArchSuffix = $portVersion
|
||||
cmd:teeworlds$secondaryArchSuffix = $portVersion
|
||||
"
|
||||
|
||||
REQUIRES="
|
||||
haiku$secondaryArchSuffix >= $haikuVersion
|
||||
lib:libGL$secondaryArchSuffix
|
||||
lib:libGLU$secondaryArchSuffix
|
||||
"
|
||||
|
||||
BUILD_REQUIRES="
|
||||
"
|
||||
|
||||
BUILD_PREREQUIRES="
|
||||
haiku${secondaryArchSuffix}_devel >= $haikuVersion
|
||||
devel:libz$secondaryArchSuffix
|
||||
devel:libsdl$secondaryArchSuffix
|
||||
devel:libfreetype$secondaryArchSuffix
|
||||
devel:libglu$secondaryArchSuffix
|
||||
cmd:gcc$secondaryArchSuffix
|
||||
cmd:bam$secondaryArchSuffix
|
||||
cmd:python
|
||||
"
|
||||
|
||||
PATCHES="teeworlds-0.6.3.patch"
|
||||
|
||||
BUILD()
|
||||
{
|
||||
bam release
|
||||
}
|
||||
|
||||
INSTALL()
|
||||
{
|
||||
mkdir -p $binDir
|
||||
cp teeworlds $binDir
|
||||
}
|
||||
Reference in New Issue
Block a user