aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvanilla <vanilla@FreeBSD.org>2015-01-27 11:45:23 +0800
committervanilla <vanilla@FreeBSD.org>2015-01-27 11:45:23 +0800
commitdde7a1873143d8f4c981156f463ff29e23664975 (patch)
tree169bacba1211db9693e8478be142a2a0bca26954
parentb62f2030d1fee0172f11100a589bd75e9237213f (diff)
downloadfreebsd-ports-gnome-dde7a1873143d8f4c981156f463ff29e23664975.tar.gz
freebsd-ports-gnome-dde7a1873143d8f4c981156f463ff29e23664975.tar.zst
freebsd-ports-gnome-dde7a1873143d8f4c981156f463ff29e23664975.zip
Add godot 1.0, game engine and development environment.
PR: ports/197114 Submitted by: Shane Ambler <FreeBSD@Shaneware.biz>
-rw-r--r--devel/Makefile1
-rw-r--r--devel/godot/Makefile83
-rw-r--r--devel/godot/distinfo2
-rw-r--r--devel/godot/files/patch-SConstruct38
-rw-r--r--devel/godot/files/patch-core_variant.h24
-rw-r--r--devel/godot/files/patch-drivers_unix_ip__unix.cpp20
-rw-r--r--devel/godot/files/patch-drivers_unix_os__unix.cpp44
-rw-r--r--devel/godot/files/patch-platform_x11_detect.py42
-rw-r--r--devel/godot/pkg-descr6
-rw-r--r--devel/godot/pkg-plist329
10 files changed, 589 insertions, 0 deletions
diff --git a/devel/Makefile b/devel/Makefile
index 082df3904697..2a7af148d4cb 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -596,6 +596,7 @@
SUBDIR += go-uuid
SUBDIR += gob2
SUBDIR += gobject-introspection
+ SUBDIR += godot
SUBDIR += goffice
SUBDIR += goffice010
SUBDIR += google-gdata
diff --git a/devel/godot/Makefile b/devel/godot/Makefile
new file mode 100644
index 000000000000..57aacab8d91a
--- /dev/null
+++ b/devel/godot/Makefile
@@ -0,0 +1,83 @@
+# Created by: Shane Ambler <FreeBSD@Shaneware.biz>
+# $FreeBSD$
+
+PORTNAME= godot
+PORTVERSION= 1.0
+CATEGORIES= devel games
+
+MAINTAINER= FreeBSD@Shaneware.biz
+COMMENT= Game engine and development environment
+
+LICENSE= MIT
+
+LIB_DEPENDS= libfreetype.so:${PORTSDIR}/print/freetype2 \
+ libasound.so:${PORTSDIR}/audio/alsa-lib
+
+USE_GITHUB= yes
+GH_ACCOUNT= okamstudio
+GH_PROJECT= godot
+GH_TAGNAME= ${PORTVERSION}-stable
+GH_COMMIT= 7eb5d04
+
+USES= scons pkgconfig compiler
+USE_XORG= x11 xcursor
+USE_GL= glu
+USE_OPENSSL= yes
+# uses pkg-config to find ssl - pkg-config only finds port version
+WITH_OPENSSL_PORT= yes
+
+MAKE_ARGS+= platform=x11
+
+OPTIONS_DEFINE= EXAMPLES TOOLS
+OPTIONS_DEFAULT= EXAMPLES TOOLS
+OPTIONS_SUB= yes
+
+TOOLS_DESC= Include development tools (IDE)
+TOOLS_MAKE_ARGS_ON= tools=yes
+TOOLS_MAKE_ARGS_OFF= tools=no target=release
+
+.include <bsd.port.pre.mk>
+
+.if ${ARCH}==amd64 || ${ARCH}==powerpc64 || ${ARCH}==sparc64 || ${ARCH}==ia64
+BITSUF= .64
+.else
+BITSUF= .32
+.endif
+
+.if ${COMPILER_TYPE} == clang
+.if ${OSVERSION} < 900000
+BROKEN= clang fails to link on 8.x
+.endif
+LLSUF= .llvm
+MAKE_ARGS+= use_llvm=yes
+.else # clang
+USE_GCC= 4.8+
+.if ${ARCH} == i386
+CXXFLAGS+= -march=i586
+.endif
+.endif # clang
+
+.if ${PORT_OPTIONS:MTOOLS}
+TOOLSUF= .tools
+.else
+TOOLSUF= .opt
+.endif
+
+BINSUFFIX= ${TOOLSUF}${BITSUF}${LLSUF}
+PLIST_SUB+= BINSUFF=${BINSUFFIX}
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|custom_build|${OPSYS}_Ports_build|' ${WRKSRC}/methods.py
+
+do-install:
+ @cd ${WRKSRC}/bin && ${INSTALL_PROGRAM} godot.x11${BINSUFFIX} \
+ ${STAGEDIR}/${PREFIX}/bin/godot.x11${BINSUFFIX}
+ @${LN} ${STAGEDIR}/${PREFIX}/bin/godot.x11${BINSUFFIX} \
+ ${STAGEDIR}/${PREFIX}/bin/godot
+.if ${PORT_OPTIONS:MEXAMPLES}
+ ${MKDIR} ${STAGEDIR}${DATADIR}
+ (cd ${WRKSRC} && ${COPYTREE_SHARE} demos ${STAGEDIR}${DATADIR})
+ ${RM} ${STAGEDIR}${DATADIR}/demos/2d/hexamap/.fscache
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/devel/godot/distinfo b/devel/godot/distinfo
new file mode 100644
index 000000000000..54f0b4deaf78
--- /dev/null
+++ b/devel/godot/distinfo
@@ -0,0 +1,2 @@
+SHA256 (godot-1.0.tar.gz) = 7bb636992ffb0c7c9d6b290c9a87b1edb3de3a60fa4dee316ba9f00b2cd5076c
+SIZE (godot-1.0.tar.gz) = 25113914
diff --git a/devel/godot/files/patch-SConstruct b/devel/godot/files/patch-SConstruct
new file mode 100644
index 000000000000..834311c60f61
--- /dev/null
+++ b/devel/godot/files/patch-SConstruct
@@ -0,0 +1,38 @@
+--- SConstruct.orig 2014-12-16 05:19:18.000000000 +1030
++++ SConstruct 2015-01-27 00:22:23.169373963 +1030
+@@ -110,7 +110,8 @@
+ opts.Add('builtin_zlib','Use built-in zlib (yes/no)','yes')
+ opts.Add('openssl','Use OpenSSL (yes/no/builtin)','no')
+ opts.Add('musepack','Musepack Audio (yes/no)','yes')
+-opts.Add("CXX", "Compiler");
++opts.Add("CC", "C Compiler")
++opts.Add("CXX", "C++ Compiler");
+ opts.Add("CCFLAGS", "Custom flags for the C++ compiler");
+ opts.Add("CFLAGS", "Custom flags for the C compiler");
+ opts.Add("LINKFLAGS", "Custom flags for the linker");
+@@ -172,15 +173,17 @@
+
+ env.extra_suffix=""
+
+- CCFLAGS = env.get('CCFLAGS', '')
+- env['CCFLAGS'] = ''
+-
+- env.Append(CCFLAGS=string.split(str(CCFLAGS)))
+-
+- CFLAGS = env.get('CFLAGS', '')
+- env['CFLAGS'] = ''
++ env['CC'] = os.environ['CC']
++
++ env['CXX'] = os.environ['CXX']
+
+- env.Append(CFLAGS=string.split(str(CFLAGS)))
++ CFLAGS = os.environ['CFLAGS']
++ env['CFLAGS'] = []
++ env.Append(CFLAGS=string.split(CFLAGS))
++
++ CCFLAGS = os.environ['CXXFLAGS']
++ env['CCFLAGS'] = []
++ env.Append(CCFLAGS=string.split(CCFLAGS))
+
+ LINKFLAGS = env.get('LINKFLAGS', '')
+ env['LINKFLAGS'] = ''
diff --git a/devel/godot/files/patch-core_variant.h b/devel/godot/files/patch-core_variant.h
new file mode 100644
index 000000000000..9aa0479b142b
--- /dev/null
+++ b/devel/godot/files/patch-core_variant.h
@@ -0,0 +1,24 @@
+--- core/variant.h.orig 2014-12-15 18:49:18 UTC
++++ core/variant.h
+@@ -167,8 +167,9 @@ public:
+ static String get_type_name(Variant::Type p_type);
+ static bool can_convert(Type p_type_from,Type p_type_to);
+
++#if defined(_MSC_VER)
+ #pragma runtime_checks( "", off )
+-
++#endif
+ template<class T>
+ static Type get_type_for() {
+
+@@ -177,8 +178,9 @@ public:
+ Type r = v.get_type();
+ return r;
+ }
++#if defined(_MSC_VER)
+ #pragma runtime_checks( "", restore )
+-
++#endif
+ bool is_ref() const;
+ _FORCE_INLINE_ bool is_num() const { return type==INT || type==REAL; };
+ _FORCE_INLINE_ bool is_array() const { return type>=ARRAY; };
diff --git a/devel/godot/files/patch-drivers_unix_ip__unix.cpp b/devel/godot/files/patch-drivers_unix_ip__unix.cpp
new file mode 100644
index 000000000000..c1a924dfe7b3
--- /dev/null
+++ b/devel/godot/files/patch-drivers_unix_ip__unix.cpp
@@ -0,0 +1,20 @@
+--- drivers/unix/ip_unix.cpp.orig 2014-12-15 18:49:18 UTC
++++ drivers/unix/ip_unix.cpp
+@@ -50,11 +50,16 @@
+ #ifdef ANDROID_ENABLED
+ #include "platform/android/ifaddrs_android.h"
+ #else
++ #ifdef __FreeBSD__
++ #include <sys/types.h>
++ #endif
+ #include <ifaddrs.h>
+ #endif
+ #include <arpa/inet.h>
+ #include <sys/socket.h>
+-
++ #ifdef __FreeBSD__
++ #include <netinet/in.h>
++ #endif
+ #endif
+
+ IP_Address IP_Unix::_resolve_hostname(const String& p_hostname) {
diff --git a/devel/godot/files/patch-drivers_unix_os__unix.cpp b/devel/godot/files/patch-drivers_unix_os__unix.cpp
new file mode 100644
index 000000000000..27ec3b403ef0
--- /dev/null
+++ b/devel/godot/files/patch-drivers_unix_os__unix.cpp
@@ -0,0 +1,44 @@
+--- drivers/unix/os_unix.cpp.orig 2014-12-15 18:49:18 UTC
++++ drivers/unix/os_unix.cpp
+@@ -44,7 +44,9 @@
+ #include "stream_peer_tcp_posix.h"
+ #include "packet_peer_udp_posix.h"
+
+-
++#ifdef __FreeBSD__
++#include <sys/param.h>
++#endif
+ #include <stdarg.h>
+ #include <sys/time.h>
+ #include <sys/wait.h>
+@@ -305,7 +307,17 @@ Error OS_Unix::execute(const String& p_p
+ args.push_back((char*)cs[i].get_data());// shitty C cast
+ args.push_back(0);
+
++#ifdef __FreeBSD__
++ if(p_path.find("/")) {
++ // exec name contains path so use it
++ execv(p_path.utf8().get_data(),&args[0]);
++ }else{
++ // use program name and search through PATH to find it
++ execvp(getprogname(),&args[0]);
++ }
++#else
+ execv(p_path.utf8().get_data(),&args[0]);
++#endif
+ // still alive? something failed..
+ fprintf(stderr,"**ERROR** OS_Unix::execute - Could not create child process while executing: %s\n",p_path.utf8().get_data());
+ abort();
+@@ -415,6 +427,12 @@ String OS_Unix::get_executable_path() co
+ return OS::get_executable_path();
+ }
+ return b;
++#elif defined(__FreeBSD__)
++ char resolved_path[MAXPATHLEN];
++
++ realpath(OS::get_executable_path().utf8().get_data(), resolved_path);
++
++ return String(resolved_path);
+ #else
+ ERR_PRINT("Warning, don't know how to obtain executable path on this OS! Please override this function properly.");
+ return OS::get_executable_path();
diff --git a/devel/godot/files/patch-platform_x11_detect.py b/devel/godot/files/patch-platform_x11_detect.py
new file mode 100644
index 000000000000..06e97469f716
--- /dev/null
+++ b/devel/godot/files/patch-platform_x11_detect.py
@@ -0,0 +1,42 @@
+--- platform/x11/detect.py.orig 2014-12-16 05:19:18.000000000 +1030
++++ platform/x11/detect.py 2015-01-23 16:08:21.497280349 +1030
+@@ -72,17 +72,16 @@
+
+ env.Append(CPPPATH=['#platform/x11'])
+ if (env["use_llvm"]=="yes"):
+- env["CC"]="clang"
+- env["CXX"]="clang++"
+- env["LD"]="clang++"
+- if (env["use_sanitizer"]=="yes"):
+- env.Append(CXXFLAGS=['-fsanitize=address','-fno-omit-frame-pointer'])
+- env.Append(LINKFLAGS=['-fsanitize=address'])
+- env.extra_suffix=".llvms"
+- else:
+- env.extra_suffix=".llvm"
+-
+-
++ if 'clang++' not in env['CXX']:
++ env["CC"]="clang"
++ env["CXX"]="clang++"
++ env["LD"]="clang++"
++ env.Append(CPPFLAGS=['-DTYPED_METHOD_BIND'])
++ env.extra_suffix=".llvm"
++
++ if (env["use_sanitizer"]=="yes"):
++ env.Append(CCFLAGS=['-fsanitize=address','-fno-omit-frame-pointer'])
++ env.Append(LINKFLAGS='-fsanitize=address')
+
+
+ #if (env["tools"]=="no"):
+@@ -128,11 +127,6 @@
+ env.Append(LINKFLAGS=['-m64','-L/usr/lib/i686-linux-gnu'])
+
+
+- if (env["CXX"]=="clang++"):
+- env.Append(CPPFLAGS=['-DTYPED_METHOD_BIND'])
+- env["CC"]="clang"
+- env["LD"]="clang++"
+-
+ import methods
+
+ env.Append( BUILDERS = { 'GLSL120' : env.Builder(action = methods.build_legacygl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
diff --git a/devel/godot/pkg-descr b/devel/godot/pkg-descr
new file mode 100644
index 000000000000..712e60c5eba2
--- /dev/null
+++ b/devel/godot/pkg-descr
@@ -0,0 +1,6 @@
+Godot is a multi-platform 2D and 3D game engine. It also provides a feature rich
+development environment.
+
+Easily deploy your game on IOS, android, OSX, Linux, Windows or PS3.
+
+WWW: http://www.godotengine.org
diff --git a/devel/godot/pkg-plist b/devel/godot/pkg-plist
new file mode 100644
index 000000000000..7c1722f2f71d
--- /dev/null
+++ b/devel/godot/pkg-plist
@@ -0,0 +1,329 @@
+bin/godot
+bin/godot.x11%%BINSUFF%%
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-01.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-02.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-03.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-04.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-05.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-06.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-07.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-08.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-09.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-10.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-11.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-12.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-13.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-14.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-15.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-16.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-17.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-18.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-19.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-20.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-21.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-22.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-23.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-24.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-25.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/WWT-26.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/icon.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/map.scn
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/tiles.scn
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/tileset.res
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/troll.gd
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/troll.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/hexamap/troll.scn
+%%EXAMPLES%%%%DATADIR%%/demos/2d/isometric/bastiles.res
+%%EXAMPLES%%%%DATADIR%%/demos/2d/isometric/dungeon.scn
+%%EXAMPLES%%%%DATADIR%%/demos/2d/isometric/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/2d/isometric/icon.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/isometric/isotiles.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/isometric/tileset.scn
+%%EXAMPLES%%%%DATADIR%%/demos/2d/isometric/troll.gd
+%%EXAMPLES%%%%DATADIR%%/demos/2d/isometric/troll.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/isometric/troll.scn
+%%EXAMPLES%%%%DATADIR%%/demos/2d/kinematic_char/colworld.gd
+%%EXAMPLES%%%%DATADIR%%/demos/2d/kinematic_char/colworld.scn
+%%EXAMPLES%%%%DATADIR%%/demos/2d/kinematic_char/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/2d/kinematic_char/icon.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/kinematic_char/obstacle.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/kinematic_char/player.gd
+%%EXAMPLES%%%%DATADIR%%/demos/2d/kinematic_char/player.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/kinematic_char/player.scn
+%%EXAMPLES%%%%DATADIR%%/demos/2d/kinematic_char/princess.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/kinematic_col/colworld.scn
+%%EXAMPLES%%%%DATADIR%%/demos/2d/kinematic_col/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/2d/kinematic_col/icon.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/kinematic_col/obstacle.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/kinematic_col/player.gd
+%%EXAMPLES%%%%DATADIR%%/demos/2d/kinematic_col/player.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/kinematic_col/player.scn
+%%EXAMPLES%%%%DATADIR%%/demos/2d/particles/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/2d/particles/fire_particle.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/particles/icon.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/particles/mask.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/particles/particles.xml
+%%EXAMPLES%%%%DATADIR%%/demos/2d/particles/smoke_particle.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/particles/spark_particle2.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/bullet.gd
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/bullet.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/bullet.xml
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/coin.gd
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/coin.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/coin.xml
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/enemy.gd
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/enemy.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/enemy.xml
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/icon.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/moving_platform.gd
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/moving_platform.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/moving_platform.xml
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/music.ogg
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/osb_fire.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/osb_jump.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/osb_left.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/osb_right.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/parallax_bg.xml
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/plank.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/plankpin.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/player.gd
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/player.xml
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/robot_demo.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/scroll_bg_cloud_1.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/scroll_bg_cloud_2.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/scroll_bg_cloud_3.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/scroll_bg_fg_1.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/scroll_bg_fg_2.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/scroll_bg_sky.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/seesaw.xml
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/sound_coin.wav
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/sound_explode.wav
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/sound_hit.wav
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/sound_jump.wav
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/sound_shoot.wav
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/stage.xml
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/tiles_demo.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/tileset.xml
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/tileset_edit.xml
+%%EXAMPLES%%%%DATADIR%%/demos/2d/platformer/types.cache
+%%EXAMPLES%%%%DATADIR%%/demos/2d/pong/ball.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/pong/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/2d/pong/icon.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/pong/left_pallete.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/pong/pong.gd
+%%EXAMPLES%%%%DATADIR%%/demos/2d/pong/pong.xml
+%%EXAMPLES%%%%DATADIR%%/demos/2d/pong/right_pallete.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/pong/separator.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/rubegoldberg/art/bowling_ball.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/rubegoldberg/art/box.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/rubegoldberg/art/domino.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/rubegoldberg/art/platform.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/rubegoldberg/art/seesaw_base.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/rubegoldberg/art/seesaw_top.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/rubegoldberg/ball.xml
+%%EXAMPLES%%%%DATADIR%%/demos/2d/rubegoldberg/box.xml
+%%EXAMPLES%%%%DATADIR%%/demos/2d/rubegoldberg/domino.xml
+%%EXAMPLES%%%%DATADIR%%/demos/2d/rubegoldberg/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/2d/rubegoldberg/icon.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/rubegoldberg/pendulum.xml
+%%EXAMPLES%%%%DATADIR%%/demos/2d/rubegoldberg/platform.xml
+%%EXAMPLES%%%%DATADIR%%/demos/2d/rubegoldberg/rubegoldberg.xml
+%%EXAMPLES%%%%DATADIR%%/demos/2d/rubegoldberg/seesaw.xml
+%%EXAMPLES%%%%DATADIR%%/demos/2d/shower_of_bullets/bullet.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/shower_of_bullets/bullets.gd
+%%EXAMPLES%%%%DATADIR%%/demos/2d/shower_of_bullets/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/2d/shower_of_bullets/face_happy.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/shower_of_bullets/face_sad.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/shower_of_bullets/icon.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/shower_of_bullets/shower.gd
+%%EXAMPLES%%%%DATADIR%%/demos/2d/shower_of_bullets/shower.scn
+%%EXAMPLES%%%%DATADIR%%/demos/2d/splash/bg.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/splash/bg_layer_1.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/splash/bg_layer_2.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/splash/button.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/splash/button_pressed.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/splash/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/2d/splash/freesans.fnt
+%%EXAMPLES%%%%DATADIR%%/demos/2d/splash/splash.xml
+%%EXAMPLES%%%%DATADIR%%/demos/2d/splash/splash_01.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/splash/splash_02.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/splash/splash_03.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/splash/splash_04.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/splash/splash_05.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/splash/splash_06.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/splash/splash_07.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/splash/splash_08.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/splash/splash_09.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/tetris/block.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/tetris/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/2d/tetris/grid.gd
+%%EXAMPLES%%%%DATADIR%%/demos/2d/tetris/grid.xml
+%%EXAMPLES%%%%DATADIR%%/demos/2d/tetris/tetris.png
+%%EXAMPLES%%%%DATADIR%%/demos/2d/tetris/tetris.xml
+%%EXAMPLES%%%%DATADIR%%/demos/3d/fixed_materials/brick_color.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/fixed_materials/brick_detail.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/fixed_materials/brick_detail_emission.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/fixed_materials/brick_detail_glow.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/fixed_materials/brick_emission.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/fixed_materials/brick_normal.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/fixed_materials/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/3d/fixed_materials/fixed_materials.scn
+%%EXAMPLES%%%%DATADIR%%/demos/3d/fixed_materials/icon.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/fixed_materials/refmap.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/fixed_materials/rim.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/fixed_materials/rocky_specular.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/fixed_materials/s.xml
+%%EXAMPLES%%%%DATADIR%%/demos/3d/fixed_materials/tournesol.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/kinematic_char/cubelib.res
+%%EXAMPLES%%%%DATADIR%%/demos/3d/kinematic_char/cubio.gd
+%%EXAMPLES%%%%DATADIR%%/demos/3d/kinematic_char/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/3d/kinematic_char/follow_camera.gd
+%%EXAMPLES%%%%DATADIR%%/demos/3d/kinematic_char/kinebody3d.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/kinematic_char/level.scn
+%%EXAMPLES%%%%DATADIR%%/demos/3d/kinematic_char/purple_wood.tex
+%%EXAMPLES%%%%DATADIR%%/demos/3d/kinematic_char/purplecube.scn
+%%EXAMPLES%%%%DATADIR%%/demos/3d/kinematic_char/twood.tex
+%%EXAMPLES%%%%DATADIR%%/demos/3d/kinematic_char/white_wood.tex
+%%EXAMPLES%%%%DATADIR%%/demos/3d/mousepick_test/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/3d/mousepick_test/icon.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/mousepick_test/mousepick.gd
+%%EXAMPLES%%%%DATADIR%%/demos/3d/mousepick_test/mousepick.scn
+%%EXAMPLES%%%%DATADIR%%/demos/3d/navmesh/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/3d/navmesh/navmesh.gd
+%%EXAMPLES%%%%DATADIR%%/demos/3d/navmesh/navmesh.scn
+%%EXAMPLES%%%%DATADIR%%/demos/3d/navmesh/particle.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/bullet.gd
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/bullet.scn
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/coin.gd
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/coin.scn
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/cutout.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/enemy.gd
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/enemy.scn
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/follow_camera.gd
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/icon.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/osb_down.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/osb_fire.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/osb_jump.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/osb_left.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/osb_right.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/osb_up.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/player.gd
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/player.xml
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/robotrigged.scn
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/sb.cube
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/sb_back.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/sb_bottom.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/sb_front.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/sb_left.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/sb_right.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/sb_top.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/shine.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/sound_coin.wav
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/sound_explode.wav
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/sound_hit.wav
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/sound_jump.wav
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/sound_shoot.wav
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/stage.xml
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/texture.tex
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/tiles.res
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/tiles.scn
+%%EXAMPLES%%%%DATADIR%%/demos/3d/platformer/tiles.xcf
+%%EXAMPLES%%%%DATADIR%%/demos/3d/sat_test/box.scn
+%%EXAMPLES%%%%DATADIR%%/demos/3d/sat_test/capsule.scn
+%%EXAMPLES%%%%DATADIR%%/demos/3d/sat_test/convex.scn
+%%EXAMPLES%%%%DATADIR%%/demos/3d/sat_test/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/3d/sat_test/sat_test.xml
+%%EXAMPLES%%%%DATADIR%%/demos/3d/sat_test/shapes.dae
+%%EXAMPLES%%%%DATADIR%%/demos/3d/sat_test/shapes.scn
+%%EXAMPLES%%%%DATADIR%%/demos/3d/sat_test/sphere.scn
+%%EXAMPLES%%%%DATADIR%%/demos/3d/shader_materials/brick_color.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/shader_materials/brick_detail.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/shader_materials/brick_detail_emission.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/shader_materials/brick_detail_glow.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/shader_materials/brick_emission.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/shader_materials/brick_normal.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/shader_materials/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/3d/shader_materials/icon.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/shader_materials/refmap.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/shader_materials/rim.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/shader_materials/rocky_specular.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/shader_materials/s.xml
+%%EXAMPLES%%%%DATADIR%%/demos/3d/shader_materials/sb.cube
+%%EXAMPLES%%%%DATADIR%%/demos/3d/shader_materials/sb_back.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/shader_materials/sb_bottom.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/shader_materials/sb_front.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/shader_materials/sb_left.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/shader_materials/sb_right.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/shader_materials/sb_top.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/shader_materials/shader_materials.scn
+%%EXAMPLES%%%%DATADIR%%/demos/3d/shader_materials/tournesol.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/truck_town/car_base.scn
+%%EXAMPLES%%%%DATADIR%%/demos/3d/truck_town/car_select.gd
+%%EXAMPLES%%%%DATADIR%%/demos/3d/truck_town/car_select.scn
+%%EXAMPLES%%%%DATADIR%%/demos/3d/truck_town/cement.tex
+%%EXAMPLES%%%%DATADIR%%/demos/3d/truck_town/choose_tow.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/truck_town/choose_trailer.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/truck_town/choose_van.png
+%%EXAMPLES%%%%DATADIR%%/demos/3d/truck_town/crane.scn
+%%EXAMPLES%%%%DATADIR%%/demos/3d/truck_town/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/3d/truck_town/follow_camera.gd
+%%EXAMPLES%%%%DATADIR%%/demos/3d/truck_town/grass.tex
+%%EXAMPLES%%%%DATADIR%%/demos/3d/truck_town/trailer_truck.scn
+%%EXAMPLES%%%%DATADIR%%/demos/3d/truck_town/truck_scene.scn
+%%EXAMPLES%%%%DATADIR%%/demos/3d/truck_town/trucktown.scn
+%%EXAMPLES%%%%DATADIR%%/demos/3d/truck_town/vehicle.gd
+%%EXAMPLES%%%%DATADIR%%/demos/misc/autoload/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/misc/autoload/global.gd
+%%EXAMPLES%%%%DATADIR%%/demos/misc/autoload/scene_a.gd
+%%EXAMPLES%%%%DATADIR%%/demos/misc/autoload/scene_a.scn
+%%EXAMPLES%%%%DATADIR%%/demos/misc/autoload/scene_b.gd
+%%EXAMPLES%%%%DATADIR%%/demos/misc/autoload/scene_b.scn
+%%EXAMPLES%%%%DATADIR%%/demos/misc/instancing/ball.scn
+%%EXAMPLES%%%%DATADIR%%/demos/misc/instancing/bowling_ball.png
+%%EXAMPLES%%%%DATADIR%%/demos/misc/instancing/container.png
+%%EXAMPLES%%%%DATADIR%%/demos/misc/instancing/container.scn
+%%EXAMPLES%%%%DATADIR%%/demos/misc/instancing/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/misc/joysticks/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/misc/joysticks/icon.png
+%%EXAMPLES%%%%DATADIR%%/demos/misc/joysticks/joysticks.gd
+%%EXAMPLES%%%%DATADIR%%/demos/misc/joysticks/joysticks.scn
+%%EXAMPLES%%%%DATADIR%%/demos/misc/pause/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/misc/pause/icon.png
+%%EXAMPLES%%%%DATADIR%%/demos/misc/pause/spinpause.gd
+%%EXAMPLES%%%%DATADIR%%/demos/misc/pause/spinpause.scn
+%%EXAMPLES%%%%DATADIR%%/demos/misc/threads/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/misc/threads/mona.png
+%%EXAMPLES%%%%DATADIR%%/demos/misc/threads/thread.gd
+%%EXAMPLES%%%%DATADIR%%/demos/misc/threads/thread.scn
+%%EXAMPLES%%%%DATADIR%%/demos/misc/tween/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/misc/tween/icon.png
+%%EXAMPLES%%%%DATADIR%%/demos/misc/tween/main.gd
+%%EXAMPLES%%%%DATADIR%%/demos/misc/tween/main.xml
+%%EXAMPLES%%%%DATADIR%%/demos/misc/udp_chat/chat.gd
+%%EXAMPLES%%%%DATADIR%%/demos/misc/udp_chat/chat.scn
+%%EXAMPLES%%%%DATADIR%%/demos/misc/udp_chat/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/misc/udp_chat/icon.png
+%%EXAMPLES%%%%DATADIR%%/demos/viewport/2d_in_3d/ball.png
+%%EXAMPLES%%%%DATADIR%%/demos/viewport/2d_in_3d/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/viewport/2d_in_3d/icon.png
+%%EXAMPLES%%%%DATADIR%%/demos/viewport/2d_in_3d/left_pallete.png
+%%EXAMPLES%%%%DATADIR%%/demos/viewport/2d_in_3d/pong.gd
+%%EXAMPLES%%%%DATADIR%%/demos/viewport/2d_in_3d/pong.xml
+%%EXAMPLES%%%%DATADIR%%/demos/viewport/2d_in_3d/pong3d.gd
+%%EXAMPLES%%%%DATADIR%%/demos/viewport/2d_in_3d/pong3d.scn
+%%EXAMPLES%%%%DATADIR%%/demos/viewport/2d_in_3d/right_pallete.png
+%%EXAMPLES%%%%DATADIR%%/demos/viewport/2d_in_3d/separator.png
+%%EXAMPLES%%%%DATADIR%%/demos/viewport/3d_in_2d/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/viewport/3d_in_2d/main.scn
+%%EXAMPLES%%%%DATADIR%%/demos/viewport/3d_in_2d/player.scn
+%%EXAMPLES%%%%DATADIR%%/demos/viewport/3d_in_2d/player.xml
+%%EXAMPLES%%%%DATADIR%%/demos/viewport/3d_in_2d/player_2d.scn
+%%EXAMPLES%%%%DATADIR%%/demos/viewport/3d_in_2d/player_3d.scn
+%%EXAMPLES%%%%DATADIR%%/demos/viewport/3d_in_2d/robot_demo.png
+%%EXAMPLES%%%%DATADIR%%/demos/viewport/gui_in_3d/engine.cfg
+%%EXAMPLES%%%%DATADIR%%/demos/viewport/gui_in_3d/gui.scn
+%%EXAMPLES%%%%DATADIR%%/demos/viewport/gui_in_3d/gui_3d.gd
+%%EXAMPLES%%%%DATADIR%%/demos/viewport/gui_in_3d/gui_3d.scn