summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreroen <eroen@occam.eroen.eu>2012-10-23 11:10:03 +0200
committereroen <eroen@occam.eroen.eu>2012-10-23 11:10:03 +0200
commit0bfcc4f8893fa4a5de068874b00f83360c3792c6 (patch)
tree6c9fe32a0c66e4d318e95b2e3ce896de4dfa7ef0 /dev-libs
parentdfhack ebuild, with light patching. (diff)
downloaderoen-0bfcc4f8893fa4a5de068874b00f83360c3792c6.tar.gz
eroen-0bfcc4f8893fa4a5de068874b00f83360c3792c6.tar.bz2
eroen-0bfcc4f8893fa4a5de068874b00f83360c3792c6.zip
libegg hooks for ligbraphics
Diffstat (limited to 'dev-libs')
-rw-r--r--dev-libs/libgraphics/Manifest9
-rw-r--r--dev-libs/libgraphics/files/0001-Add-something-eggy.patch155
-rw-r--r--dev-libs/libgraphics/files/SConscript1
-rw-r--r--dev-libs/libgraphics/files/SConscript-egg50
-rw-r--r--dev-libs/libgraphics/libgraphics-34.11.ebuild12
-rw-r--r--dev-libs/libgraphics/metadata.xml3
6 files changed, 223 insertions, 7 deletions
diff --git a/dev-libs/libgraphics/Manifest b/dev-libs/libgraphics/Manifest
index 63e64fc..7352165 100644
--- a/dev-libs/libgraphics/Manifest
+++ b/dev-libs/libgraphics/Manifest
@@ -1,6 +1,7 @@
-AUX SConscript 1737 SHA256 585f3d8cd44afaabd8c3930ae88a7ce37bc64430db3bbd5849d90014e2192e35 SHA512 92fcd59c1bb85adff0afa8b2f3f0d7ef6c0c3a85dac50b4b8d4a6aa9fe6d6334368a0927d80c20139d3af87f5fc086be9312aa714ad5d090b357449235e845a5 WHIRLPOOL 9afc11d2cbb2fa1d84275c3fa52e24497d86e559a654de6d4ab7ea9699b4e3e7ff92450a182efa15d4e67a06ef7a6069dbb3ba6300500e7306e2fdf3327c1f62
+AUX 0001-Add-something-eggy.patch 4405 SHA256 602b565d1017f5319c757c205c7ff89a3606effa38f18c1e80c03dd8d2a39603 SHA512 ef8f956738032f93d982ca24f50c64faa680a2da8816ef7d5835e492590ddbcf0a3214318be9a3d298b016c63261e9dd4cf3df24daa11b9b785062eed2e5d983 WHIRLPOOL 06b44f4169a3e87a61b0b845fe82ee062f1d3ca5479484e2205f05e876921b0bc889ad1a24add139ce54fe155fba91141777991e25492e8c39b67341f2e05e78
+AUX SConscript 1803 SHA256 6a7958f7f04761bd7b808904d1b10659703b539b913d5686e4db95bfe1073e33 SHA512 dec6d0b0b830fb8ada2ccafb6b42796c19bd26698908f72663f38a9053da82e4cec4ea9ce9a2acefc224e6435858171ac17d6d997126858f98713ddeae9fa0e4 WHIRLPOOL 920affa3e1e2c3f05cbc06aba9ce7192ebd2d9a4a0712694bc241f713a007dae29e63438c74b56ce08232def4b46da29cbdaa67ead747d8b3b3f3f37f52a5141
+AUX SConscript-egg 1809 SHA256 b300f91ae4c84f52f2e34aa27a898f00da86098570ce5dde12453b86d7a16ea6 SHA512 de883a86640e0f85b81a58b9d022877b8d56841b1a3c4bfd9f2f79c4c34ecad0d347c9ed0f6b6a3bc70b8fcb4099626ea355898691429386f91580c17a8a004a WHIRLPOOL 4d1f6c7ab7965308119d8ef8527ebc695e1df9497e8858ce29eb53c135140437e8bdb7dfeb0c2163c836bf7d2489e494ac24d763315b86abeda79e580701352d
AUX SConstruct 33 SHA256 1d6c6f8c72753c52d014aad4a9a57169a18ad83d280a27b9d47b8021a09cef7a SHA512 a189dbdb8ceec11d7cebd1e295ab494d5bb6056139be2caa443e595d14f642c2ee2ef688d06f6577e65a66b2722ed0b9138bf4a9d2bceba03236565b125382a9 WHIRLPOOL 1f92c339f26cf8d859e01f5652c0e369612ae3e9acb0f3c7e21f4ffbb75e3daedde40a638e7ed28af103805516d284dbeabf5d0f9a9a03f8df4c616a3c73f8fb
DIST df_34_11_linux.tar.bz2 11587360 SHA256 720eda6c83e72fb1212a8eead0c39989ab5387bcf42dc4028a14e8df5bdd69e2 SHA512 3e270b53aa0ad0abcd3d435dc7da765b08e450de8cf6e5402f40e8dbd20ec2001cf0d59c20a58e3a65dd661260e92123e037e25606d0fece1d354ccfbe454438 WHIRLPOOL caa0e3ee4d521e4399ca5f203c6de4d7180eb89bde5fd969ef380ebc7a2f6bc57dfe6d44b32099314b8d4ca698726bcd712b7dd6c245177180d322e60887b8c4
-EBUILD libgraphics-34.11.ebuild 1656 SHA256 a248de22668b0cc689a1b078261e81dccf0f86edc5bd061ebc340d24f0665a29 SHA512 c31335d2aab57e968fbec9679096a9c58849d7826b83e1dbc3283adb5a0859ca5e187c31b0f76f8dd22de026c2865112afd84e4459a40fc1356173aa21ec6112 WHIRLPOOL 5c2890aa23dccd61e54db2998dd891d7128a31daab2b8ab03e3ab2daaae824ef1818e4bb5d0996c13f6a1e09a32fd35180d00b39ec00638a84e4567e63c1e342
-MISC libgraphics-34.11.ebuild.old 1983 SHA256 9d2cd08e68675413cf7ea79508874c8cf74fbd0dc8470ae68484567f394ac5f9 SHA512 00d7a278d5012ec75e33c143170388808a468bbddbeafc0eea2b0d66cf006e592312f9808ad843ebfc36ccf69d40c514eccd8a1196b36a99e68d35b4e8991e33 WHIRLPOOL d5b486baefcd758092ab24ad69fda018992c86667ea2fcaf362368c052d76a3f3eb544106c0173482c21ab6f105ef92e42129f57d01ce03b2a07cb627ef41023
-MISC metadata.xml 189 SHA256 3c34d13913d23a2d7669fe1e294b7a026e204eff7c701461646f4d7db25d9d0c SHA512 fe3ac50d70b7d95b9488f1af5dcd8dad0b3f9e344f4f56ba58b7812e4e17e0d90540c446882c8c5d11f32b89976d6e1b3d10846acf6ef75849daa4e163139213 WHIRLPOOL e85232acc2cd9452fcaa9e49b23e6980e224d79a23a48c43be38dea3d3a60d1b4cfce56ffe2e193b7c5d6100fef927da9c8d5a5b085e7849d1bd65cb104ce715
+EBUILD libgraphics-34.11.ebuild 1864 SHA256 2839e3874d4e8dcff7ab9e9aabacbc6b295a49e6f3ae5c4945c4243d38b3936d SHA512 6cfc9298300d13bcd9679d8b1d7cdf38093df78d67082e75f75c0d37cffdd9a0a4e380e374532a4e9b1c7f5cc1cef0369fad0a5111686c311a815733aa93b644 WHIRLPOOL ab39530e6a633872cc946a68deee339a45b1cc347f29e6977132eeef2c37649801055728cc091a16aa3948afb4db493577c6ea30c0d6830516924e03557afbb0
+MISC metadata.xml 295 SHA256 d5fcf121d0db8967aa291949b1c7cc1d4573d4d4760493a4eb1aaea6fe463679 SHA512 39731cf9141bb4653a927d808e92eae205d6fe46cb60822863aa2b5eeb2a46762b9622ce73434860b5b765cea41b9ba7187302075e49602fe709adf888c08b25 WHIRLPOOL bf3c5c16cf76066e0a04864f92b204d761bb1564218822123c29370e14defc1917e243b9171f4fd94cc162fc43a232716e4b015e5e25b5764b91ec0804e334d5
diff --git a/dev-libs/libgraphics/files/0001-Add-something-eggy.patch b/dev-libs/libgraphics/files/0001-Add-something-eggy.patch
new file mode 100644
index 0000000..46111a3
--- /dev/null
+++ b/dev-libs/libgraphics/files/0001-Add-something-eggy.patch
@@ -0,0 +1,155 @@
+From 023128b5ab721e4c72b0fdea7ed8fd732dd5d795 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= <peterix@gmail.com>
+Date: Tue, 28 Feb 2012 03:37:10 +0100
+Subject: [PATCH] Add something eggy.
+
+---
+ df | 1 +
+ g_src/SConscript | 18 +++++++++++++++++-
+ g_src/curses.h | 2 +-
+ g_src/eggy.cpp | 29 +++++++++++++++++++++++++++++
+ g_src/eggy.h | 23 +++++++++++++++++++++++
+ g_src/enabler.cpp | 9 ++++++++-
+ g_src/graphics.cpp | 4 ++++
+ g_src/renderer_curses.cpp | 12 ++++++++++--
+ 8 files changed, 93 insertions(+), 5 deletions(-)
+ create mode 100644 g_src/eggy.cpp
+ create mode 100644 g_src/eggy.h
+
+diff --git a/g_src/eggy.h b/g_src/eggy.h
+new file mode 100644
+index 0000000..d1f24dc
+--- /dev/null
++++ b/g_src/eggy.h
+@@ -0,0 +1,23 @@
++#pragma once
++#ifdef unix
++ #define EggyExport extern "C" __attribute__ ((visibility("default")))
++#else
++ #ifdef egg_internal
++ #define EggyExport extern "C" __declspec(dllexport)
++ #else
++ #define EggyExport extern "C" __declspec(dllimport)
++ #endif
++#endif
++
++// hook - called before rendering
++EggyExport int egg_init(void);
++// hook - called before rendering
++EggyExport int egg_shutdown(void);
++// hook - called for each game tick (or more often)
++EggyExport int egg_tick(void);
++// hook - called before rendering
++EggyExport int egg_prerender(void);
++// hook - called for each SDL event, returns 0 when the event has been consumed. 1 otherwise
++EggyExport int egg_sdl_event(void* event);
++// hook - ncurses event, -1 signifies error.
++EggyExport int egg_curses_event(int orig_return);
+\ No newline at end of file
+diff --git a/g_src/enabler.cpp b/g_src/enabler.cpp
+index 115e748..7e838ea 100755
+--- a/g_src/enabler.cpp
++++ b/g_src/enabler.cpp
+@@ -11,6 +11,7 @@
+ #include "random.h"
+ #include "init.h"
+ #include "music_and_sound_g.h"
++#include "eggy.h"
+
+ #ifdef unix
+ # include <locale.h>
+@@ -346,7 +347,7 @@ void enablerst::async_loop() {
+ if (async_frames < 0) async_frames = 0;
+ update_fps();
+ }
+- SDL_NumJoysticks(); // Hook for dfhack
++ egg_tick(); // Hook for dfhack
+ }
+ }
+
+@@ -433,6 +434,8 @@ void enablerst::eventLoop_SDL()
+
+ // Check for SDL events
+ while (SDL_PollEvent(&event)) {
++ if(!egg_sdl_event(&event))
++ continue;
+ // Make sure mainloop isn't running while we're processing input
+ if (!paused_loop) {
+ pause_async_loop();
+@@ -574,6 +577,8 @@ int enablerst::loop(string cmdline) {
+ } else {
+ renderer = new renderer_opengl();
+ }
++ // Tell the egg that we are ready to roll
++ egg_init();
+
+ // At this point we should have a window that is setup to render DF.
+ if (init.display.flag.has_flag(INIT_DISPLAY_FLAG_TEXT)) {
+@@ -584,6 +589,8 @@ int enablerst::loop(string cmdline) {
+ SDL_EnableUNICODE(1);
+ eventLoop_SDL();
+ }
++ // Tell egg to leave
++ egg_shutdown();
+
+ endroutine();
+
+diff --git a/g_src/graphics.cpp b/g_src/graphics.cpp
+index e255ea8..5a53fe6 100755
+--- a/g_src/graphics.cpp
++++ b/g_src/graphics.cpp
+@@ -17,6 +17,8 @@
+ #include "svector.h"
+ #include "ttf_manager.hpp"
+
++#include "eggy.h"
++
+ #ifdef WIN32
+
+ /*
+@@ -559,4 +561,6 @@ void render_things()
+ fps_locator(fps.size());
+ gps.addst(fps);
+ }
++ // tell egg to do its dirty obscure things
++ egg_prerender();
+ }
+diff --git a/g_src/renderer_curses.cpp b/g_src/renderer_curses.cpp
+index 69bd907..44b9b96 100755
+--- a/g_src/renderer_curses.cpp
++++ b/g_src/renderer_curses.cpp
+@@ -1,3 +1,5 @@
++#include "eggy.h"
++
+ static bool curses_initialized = false;
+
+ static void endwin_void() {
+@@ -134,17 +136,23 @@ public:
+ }
+ };
+
++static int eggy_getch_wrapper()
++{
++ int byte = wgetch(*stdscr_p);
++ return egg_curses_event(byte);
++}
++
+ // Reads from getch, collapsing utf-8 encoding to the actual unicode
+ // character. Ncurses symbols (left arrow, etc.) are returned as
+ // positive values, unicode as negative. Error returns 0.
+ static int getch_utf8() {
+- int byte = wgetch(*stdscr_p);
++ int byte = eggy_getch_wrapper();
+ if (byte == ERR) return 0;
+ if (byte > 0xff) return byte;
+ int len = decode_utf8_predict_length(byte);
+ if (!len) return 0;
+ string input(len,0); input[0] = byte;
+- for (int i = 1; i < len; i++) input[i] = wgetch(*stdscr_p);
++ for (int i = 1; i < len; i++) input[i] = eggy_getch_wrapper();
+ return -decode_utf8(input);
+ }
+
+--
+1.7.12.4
+
diff --git a/dev-libs/libgraphics/files/SConscript b/dev-libs/libgraphics/files/SConscript
index 5b217b9..6da4304 100644
--- a/dev-libs/libgraphics/files/SConscript
+++ b/dev-libs/libgraphics/files/SConscript
@@ -40,6 +40,7 @@ env['CCFLAGS'] += SCons.Util.CLVar(os.environ.get('CFLAGS', ''))
env['CXX'] = os.environ.get('CXX', 'g++')
env['CXXFLAGS'] += SCons.Util.CLVar(os.environ.get('CXXFLAGS', ''))
env['LINKFLAGS'] += SCons.Util.CLVar(os.environ.get('LDFLAGS', ''))
+env['LIBPATH'] += SCons.Util.CLVar(os.environ.get('LIBPATH', ''))
# Finally, do the build
if libgraphics:
diff --git a/dev-libs/libgraphics/files/SConscript-egg b/dev-libs/libgraphics/files/SConscript-egg
new file mode 100644
index 0000000..dd0161d
--- /dev/null
+++ b/dev-libs/libgraphics/files/SConscript-egg
@@ -0,0 +1,50 @@
+# -*- mode: python -*-
+from sys import platform
+import os
+import SCons.Util
+
+src_dll = ["basics.cpp","command_line.cpp","enabler.cpp","files.cpp",
+ "find_files_posix.cpp","graphics.cpp","init.cpp","interface.cpp",
+ "keybindings.cpp","music_and_sound_openal.cpp", "random.cpp",
+ "textlines.cpp","enabler_input.cpp","ViewBase.cpp",
+ "KeybindingScreen.cpp", "win32_compat.cpp", "textures.cpp",
+ "resize++.cpp", "renderer_offscreen.cpp",
+ "ttf_manager.cpp"]
+
+dll = '#libs/libgraphics.so'
+
+libgraphics = True
+tetris = False
+
+# Propagate PATH. We'll just take our chances with non-repeatable builds.
+env = Environment(ENV = {'PATH' : os.environ.get('PATH', '/usr/bin:/bin')})
+
+# Libraries and linking
+env['LIBS']=["SDL_image","z","SDL_ttf","sndfile","egg"]
+#env['LINKFLAGS']=['-Wl,-rpath=\$$ORIGIN/libs']
+
+# Generic unix, including Linux
+env.ParseConfig('pkg-config gtk+-2.0 --cflags --libs')
+env.ParseConfig('pkg-config openal --cflags')
+env.ParseConfig('pkg-config sndfile --cflags')
+env.ParseConfig('pkg-config sdl --cflags --libs')
+env.ParseConfig('pkg-config glu --cflags --libs')
+env.ParseConfig('pkg-config glew --cflags --libs')
+
+# flags and compiler
+env['CCFLAGS'].append("-Dunix")
+env['CXXFLAGS'].append("-std=gnu++0x")
+# this is gentoo, respect my flags
+env['CC'] = os.environ.get('CC', 'gcc')
+env['CCFLAGS'] += SCons.Util.CLVar(os.environ.get('CFLAGS', ''))
+env['CXX'] = os.environ.get('CXX', 'g++')
+env['CXXFLAGS'] += SCons.Util.CLVar(os.environ.get('CXXFLAGS', ''))
+env['LINKFLAGS'] += SCons.Util.CLVar(os.environ.get('LDFLAGS', ''))
+env['LIBPATH'] += SCons.Util.CLVar(os.environ.get('LIBPATH', ''))
+
+# Finally, do the build
+if libgraphics:
+ env.SharedLibrary(dll, src_dll)
+
+if tetris:
+ env.Program("#tetris", src_dll + ["tetris.cpp"])
diff --git a/dev-libs/libgraphics/libgraphics-34.11.ebuild b/dev-libs/libgraphics/libgraphics-34.11.ebuild
index d5bce6e..46d44e6 100644
--- a/dev-libs/libgraphics/libgraphics-34.11.ebuild
+++ b/dev-libs/libgraphics/libgraphics-34.11.ebuild
@@ -17,7 +17,7 @@ SRC_URI="http://www.bay12games.com/dwarves/${DF_P}_linux.tar.bz2"
LICENSE="DwarfFortress as-is LGPL-2.1 BSD fmod MIT"
SLOT="0"
KEYWORDS="~amd64"
-IUSE=""
+IUSE="egg"
DEPEND_SCONSCRIPT="virtual/pkgconfig
media-libs/sdl-image
@@ -41,6 +41,7 @@ DEPEND_INCLUDE="media-libs/fmod
"
COMMON_DEPEND="!games-simulation/dwarffortress[libgraphics]
+ egg? ( games-util/dfhack[egg] )
app-emulation/emul-linux-x86-baselibs
app-emulation/emul-linux-x86-gtklibs
app-emulation/emul-linux-x86-opengl
@@ -65,13 +66,18 @@ pkg_setup() {
}
src_prepare() {
+ if use egg; then
+ epatch "${FILESDIR}/0001-Add-something-eggy.patch"
+ cp "${FILESDIR}/SConscript-egg" "g_src/SConscript" || die
+ else
+ cp "${FILESDIR}/SConscript" "g_src/SConscript" || die
+ fi
cp "${FILESDIR}/SConstruct" "SConstruct" || die
- cp "${FILESDIR}/SConscript" "g_src/SConscript" || die
rm "libs/libgraphics.so" || die
}
src_compile() {
- escons || die
+ LIBPATH="$(games_get_libdir)" escons || die
}
src_install() {
diff --git a/dev-libs/libgraphics/metadata.xml b/dev-libs/libgraphics/metadata.xml
index 199da9a..6d87773 100644
--- a/dev-libs/libgraphics/metadata.xml
+++ b/dev-libs/libgraphics/metadata.xml
@@ -1,6 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
+ <use>
+ <flag name="egg">Enable hooks for and link against libegg from games-util/dfhack.</flag>
+ </use>
<longdescription lang="en">
</longdescription>
</pkgmetadata>