From 4a56f72f5be6cd34c96a082e3697f4eecd744e75 Mon Sep 17 00:00:00 2001 From: Kostadin Damyanov Date: Sun, 24 May 2015 23:22:51 +0300 Subject: [PATCH] Haiku: Initial support. --- platform/haiku/SCsub | 10 ++++++++ platform/haiku/detect.py | 42 +++++++++++++++++++++++++++++++ platform/haiku/godot_haiku.cpp | 19 ++++++++++++++ platform/haiku/logo.png | Bin 0 -> 2055 bytes platform/haiku/os_haiku.cpp | 0 platform/haiku/os_haiku.h | 42 +++++++++++++++++++++++++++++++ platform/haiku/platform_config.h | 1 + 7 files changed, 114 insertions(+) create mode 100644 platform/haiku/SCsub create mode 100644 platform/haiku/detect.py create mode 100644 platform/haiku/godot_haiku.cpp create mode 100644 platform/haiku/logo.png create mode 100644 platform/haiku/os_haiku.cpp create mode 100644 platform/haiku/os_haiku.h create mode 100644 platform/haiku/platform_config.h diff --git a/platform/haiku/SCsub b/platform/haiku/SCsub new file mode 100644 index 0000000000..8ae489cf54 --- /dev/null +++ b/platform/haiku/SCsub @@ -0,0 +1,10 @@ +Import('env') + +common_haiku = [ + 'os_haiku.cpp' +] + +env.Program( + '#bin/godot', + ['godot_haiku.cpp'] + common_haiku +) diff --git a/platform/haiku/detect.py b/platform/haiku/detect.py new file mode 100644 index 0000000000..992c73ee79 --- /dev/null +++ b/platform/haiku/detect.py @@ -0,0 +1,42 @@ +import os +import sys + +def is_active(): + return True + +def get_name(): + return "Haiku" + +def can_build(): + if (os.name != "posix"): + return False + + if (sys.platform == "darwin"): + return False + + return True + +def get_opts(): + return [] + +def get_flags(): + return [ + ('builtin_zlib', 'no') + ] + +def configure(env): + is64=sys.maxsize > 2**32 + + if (env["bits"]=="default"): + if (is64): + env["bits"]="64" + else: + env["bits"]="32" + + env.Append(CPPPATH = ['#platform/haiku']) + env["CC"] = "gcc-x86" + env["CXX"] = "g++-x86" + env.Append(CPPFLAGS = ['-DDEBUG_METHODS_ENABLED']) + + env.Append(CPPFLAGS = ['-DUNIX_ENABLED']) + #env.Append(LIBS = ['be']) diff --git a/platform/haiku/godot_haiku.cpp b/platform/haiku/godot_haiku.cpp new file mode 100644 index 0000000000..b4e5e50891 --- /dev/null +++ b/platform/haiku/godot_haiku.cpp @@ -0,0 +1,19 @@ +#include "main/main.h" +#include "os_haiku.h" + +int main(int argc, char* argv[]) { + OS_Haiku os; + + Error error = Main::setup(argv[0], argc-1, &argv[1]); + if (error != OK) { + return 255; + } + + if (Main::start()) { + os.run(); + } + + Main::cleanup(); + + return os.get_exit_code(); +} diff --git a/platform/haiku/logo.png b/platform/haiku/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c40214d6debde3fad414d5f0002579484421c5be GIT binary patch literal 2055 zcmZ`)dpOe%7yr7I>l=~2ZcTW#VcM2l$IwrNzj*{(S#821!wj@>bpU`kZ2+L80>GA_ zL|FuY%Lo8i@&f?VVgNW8QQq!?7Buz**q_1zyML^zqb^TSk%+MIj0OOy{eN6&WGZo6 zz}mLOTH!sq8;h=``?#z1VOY_tfvZC+L2D~-UgS;{*Op<|m*!#0%DAtPtIo2W`MDdn z$2~*~C>a^a*bJ&94GVQUEF)ocx*pe*o!69#|*366?vf9yy z2?-&`9vjd%z!*;sGFj2A8Sb?TuKfHF*Mx_jCjgO`EqmT?UfsR&Vph>l#Bqb*CUl}o zG(YKq={(MQIL}fBEmTX9ZUV=hcMiE-9(wfM2J1$i)Y7P6pPdzU7R?U!ObYg7?Wf+( z>hIDqse6Ni*wu#7Qe7Y7h&x~eEwLy|5so5q9wFJ7C!7Wbhh+IUtof8Rdp|Xw^ij>O z-pL5T9hIeaw~}~JTG-j*JWA<4sgJEVte#)>8b5scxl&)``Ae5Vhwqv{@@}Kw-%3q? z>a{$v3Xu?!lXJ0y$u;x&e3Q5zP!frxib*V&Q88?~zWclMVv*}BdTwJ6`-JV#pzwik zIT{{;Mh^`;#aDLk93I$KiRXVaatT{93YKdYYShV#_F|XXcXH8BIO*wNpmxUq>)V`B z+JIiaY?(WAgRgpI#&{0}dEcA(^<`wZE-gm250XO(_RMvxBOY@02OWRTPiq$BSgukl zhoaV|p=XWL*7)f*-qp^F3_ao`73bv=HooMQ^ppu4`htE+ejFVVwA4}`Q#aM4Hd z25J*#d=bXRzgAux#k9qKDNOKTGBfE8n5wolSo^bUPp@*d7v5BKgYO#h(#qPNaWk&1_nPW)XZX`a)&cD zvg^0&oS_k)dSyz>$~+liZgB8gR?pm6f$IetKKV-uF%kLq=%|(*tincXG6+?o41(iD zHd@;iX5@hE&PdhV0WE;OJjb`t)YM#=?ogTGMG}gPb6B!z|M{dbhvbGA`){Oq&Kl=L z5yoN(W4G@0k9n<4JR=`1GbELUoO_)>Q(*e!_~`curZBm@q+kcLqvd9P`eo9%F@p^n z0nglv3bPm$6NbvY?F9u}C9o2ATD+Ejbf)Yrv7eZj7;h!1$ji$Ip_HpLS&i?`Ud6t2f-;&pD=hz)`*`CrtZ4@)w@2UBq| z3OGkFEyKF{P8e^H>2wj6yB<=Q<+aBkcfi{6%o+I`)m9Nv4|G>Z4DFT&b4*#=5?f zapR46!$E6pF^q}xJ?B<;XWMQs)lvP&$C8JIM=Tf0j&e_MV{ala@xbVf$Uyo<#QaiR z^ule}yTYCyJYLz!sL=2sA5-Q~{&bggN177LPbHc$od3H$WNy(NR`DXK!LRR7BmZ}X+N>^*eX!TKe!scuD z_SUiBF1-5mLSFW5w`PtWRm%xe^0|M^@O80%(O|hnLMg$l?OlnCB{?}vq@d)SPCy;H zpsF(o?<*mrZXf4y8Z8~NKi~a(Hh#4zxo1k3|6yZ_`-B{WGBthGlXZ}pz&C`$`Wcd- z+mx@3!o1Q`Dr^0dZ?^gF2(c4)U$?r%fsMzU99Eq>y<3-gzacngrz^HFhG+AbVV)GM zE4gW_y$U9Bm$_u?nqHiiEcG5|!hYOkVVoagwLH#xJK=u?3az|izV(6o7uSB)Tqgm0 z!7yV>;R&#B5oo6v!huc(X4p0h4hj3P^w&A92M!|2;s-q zv)XRi+?D1EQ%mzl *p_list, int p_screen=0) const; +}; + +#endif diff --git a/platform/haiku/platform_config.h b/platform/haiku/platform_config.h new file mode 100644 index 0000000000..dad24432a5 --- /dev/null +++ b/platform/haiku/platform_config.h @@ -0,0 +1 @@ +#include