diff options
author | David Seifert <soap@gentoo.org> | 2016-12-30 09:33:50 +0200 |
---|---|---|
committer | David Seifert <soap@gentoo.org> | 2016-12-30 09:35:23 +0200 |
commit | 9a523f187eb159ba514ac94ade360f25b7e68225 (patch) | |
tree | 127f3c478f6a7ac870a286f6df37684dbb42ffea /games-arcade/tuxdash | |
parent | dev-ruby/twitter-text: cleanup (diff) | |
download | gentoo-9a523f187eb159ba514ac94ade360f25b7e68225.tar.gz gentoo-9a523f187eb159ba514ac94ade360f25b7e68225.tar.bz2 gentoo-9a523f187eb159ba514ac94ade360f25b7e68225.zip |
games-arcade/tuxdash: Fix building with GCC 6
Gentoo-bug: 600084
* EAPI=6
* Remove games.eclass
Package-Manager: Portage-2.3.3, Repoman-2.3.1
Diffstat (limited to 'games-arcade/tuxdash')
4 files changed, 205 insertions, 0 deletions
diff --git a/games-arcade/tuxdash/files/tuxdash-0.8-fix-build-system.patch b/games-arcade/tuxdash/files/tuxdash-0.8-fix-build-system.patch new file mode 100644 index 000000000000..9f861d98e8cc --- /dev/null +++ b/games-arcade/tuxdash/files/tuxdash-0.8-fix-build-system.patch @@ -0,0 +1,11 @@ +Fix build system to honour all user variables. + +--- a/src/Makefile ++++ b/src/Makefile +@@ -1,4 +1,4 @@ + all: +- g++ main.cpp -Wall `/usr/bin/sdl-config --libs --cflags` -lSDL_ttf -o ../TuxDash ++ $(CXX) main.cpp $(LDFLAGS) $(CXXFLAGS) $(CPPFLAGS) `/usr/bin/sdl-config --libs --cflags` -lSDL_ttf -o ../tuxdash + static: +- g++ -static main.cpp -Wall `/usr/bin/sdl-config --cflags --static-libs` -lSDL_ttf -lfreetype -lz -o ../TuxDash ++ $(CXX) -static main.cpp $(LDFLAGS) $(CXXFLAGS) $(CPPFLAGS) `/usr/bin/sdl-config --cflags --static-libs` -lSDL_ttf -lfreetype -lz -o ../tuxdash diff --git a/games-arcade/tuxdash/files/tuxdash-0.8-fix-c++14.patch b/games-arcade/tuxdash/files/tuxdash-0.8-fix-c++14.patch new file mode 100644 index 000000000000..b37f456f559b --- /dev/null +++ b/games-arcade/tuxdash/files/tuxdash-0.8-fix-c++14.patch @@ -0,0 +1,101 @@ +Modernise C++ to avoid errors in C++14 mode. +See also: https://bugs.gentoo.org/show_bug.cgi?id=600084 + +--- a/src/main.cpp ++++ b/src/main.cpp +@@ -66,7 +66,7 @@ + + void writeconfig(const map& game_map) { + ofstream config((ostring)TuxHomeDirectory + "/config"); // open config file +- if(config == NULL) { // error check ++ if(!config) { // error check + cout << "Warning: Couldn't write to file " << (ostring)TuxHomeDirectory + "/config" << endl; + return; + } +@@ -124,7 +124,7 @@ + + void readconfig(class map& game_map) { + ifstream config((ostring)TuxHomeDirectory + "/config"); // open config file +- if(config==0) { // error check ++ if(!config) { // error check + cout << "Warning: Couldn't find configuration file " << (ostring)TuxHomeDirectory + "/config" << ". Using default values." << endl; + return; + } +--- a/src/map.cpp ++++ b/src/map.cpp +@@ -346,13 +346,13 @@ + cout << "-- copy map --" << endl; // print status message + ifstream in_file(path); // open source file + +- if(in_file == 0) { // error checking ++ if(!in_file) { // error checking + cout << "Couldn't open sourcefile \"" << filename << "\"" << endl; + cout << endl << "-- error in copymap --" << endl; + return 1; + } + +- if(out_file == 0) { // error checking ++ if(!out_file) { // error checking + cout << "Couldn't open target file \"" << temp_path << "\" for writing " << endl; + cout << endl << "-- error in copymap --" << endl; + return 1; +@@ -390,7 +390,7 @@ + path = mapfolder; + path += filename; + file.open(path); // open file +- if(file == NULL) { ++ if(!file) { + cout << "map::savemap : error while saving map to file '" << path << "'" << endl; + return 1; + } +@@ -402,7 +402,7 @@ + path = savefolder; + path += filename; + file.open(path); // open file +- if(file == NULL) { ++ if(!file) { + cout << "map::savemap : error while saving game to file '" << path << "'" << endl; + return 1; + } +--- a/src/menu.cpp ++++ b/src/menu.cpp +@@ -119,7 +119,7 @@ + + // add a selection box + +-class element* menu_mgm::add_box(int x, int y, const ostring& text, const ostring& value, bool selectable, int size, int xgroup, int ygroup, int max, int width, int height, unsigned char r, unsigned char g, unsigned char b, int value_type, bool dependency, char* depend) { ++class element* menu_mgm::add_box(int x, int y, const ostring& text, const ostring& value, bool selectable, int size, int xgroup, int ygroup, int max, int width, int height, unsigned char r, unsigned char g, unsigned char b, int value_type, bool dependency, const char* depend) { + class element& newone = add(); + newone.value = value; + newone.posx = x; +--- a/src/menu.h ++++ b/src/menu.h +@@ -56,7 +56,7 @@ + void check_custom_parameters(); // check if parameters are okay + ostring keytoa(SDLKey); // cast SDLKey to ASCII + class element* add_text(int, int, const ostring&, bool, int, int =-1, int =-1, unsigned char =0, unsigned char =0, unsigned char = 0, int = -1, int = -1); // add a text element +- class element* add_box(int, int, const ostring&, const ostring&, bool, int, int, int, int, int, int, unsigned char, unsigned char, unsigned char, int = 0, bool =false, char* =0); // add a box element ++ class element* add_box(int, int, const ostring&, const ostring&, bool, int, int, int, int, int, int, unsigned char, unsigned char, unsigned char, int = 0, bool =false, const char* =0); // add a box element + class element* add_select(int, int, const ostring&, const ostring&, bool, int, int, int, const char* oneoftwo=0); // add a select element + void draw_window(); // draw the current menu screen with all elements + void selection_mgm(char); // process user input for menu navigation +--- a/src/surface.cpp ++++ b/src/surface.cpp +@@ -92,7 +92,7 @@ + else file_tmp = file; + + TTF_Font *font = TTF_OpenFont(file_tmp, size); +- SDL_Color color = {r, g, b, 0}; ++ SDL_Color color = {(Uint8)r, (Uint8)g, (Uint8)b, 0}; + + area = TTF_RenderText_Solid(font, text, color); + +@@ -118,7 +118,7 @@ + SDL_Surface* text_surface; + SDL_Rect temp; + TTF_Font *font_tmp = TTF_OpenFont(font, size); +- SDL_Color farbe = {r, g, b, 0}; ++ SDL_Color farbe = {(Uint8)r, (Uint8)g, (Uint8)b, 0}; + text_surface = TTF_RenderText_Solid(font_tmp, text, farbe); + TTF_CloseFont(font_tmp); + temp = pos; diff --git a/games-arcade/tuxdash/files/tuxdash-0.8-fix-paths.patch b/games-arcade/tuxdash/files/tuxdash-0.8-fix-paths.patch new file mode 100644 index 000000000000..72cde9d411f8 --- /dev/null +++ b/games-arcade/tuxdash/files/tuxdash-0.8-fix-paths.patch @@ -0,0 +1,45 @@ +Change paths for Gentoo's filesystem layout. + +--- a/config ++++ b/config +@@ -1,11 +1,11 @@ + # Fullscreen enable/disable +-Fullscreen = 0 ++Fullscreen = 1 + # Width of screen in blocks + screenX = 21 + # Height of screen in blocks + screenY = 16 + # Theme Folder - path to a valid theme +-theme = themes/original/ ++theme = /usr/share/tuxdash/themes/original/ + # Distance in X direction, before scrolling starts + scrolldistX = 3 + # Distance in Y direction, before scrolling starts +--- a/src/main.cpp ++++ b/src/main.cpp +@@ -340,9 +340,7 @@ + + // set tuxdash's config / working directory + char* HomeDirectory; +- char* CurrentDirectory; + HomeDirectory = getenv("HOME"); // get users home directory +- CurrentDirectory = getenv("PWD"); // get TuxDash's working directory + TuxHomeDirectory = new char[strlen(HomeDirectory)+strlen("/.tuxdash")+1]; // align space for the string containing the path to tuxdash's config directory + strcpy(TuxHomeDirectory, HomeDirectory); + strcat(TuxHomeDirectory, "/.tuxdash"); +@@ -355,12 +353,12 @@ + } + else { + mkdir((ostring)TuxHomeDirectory + "/themes", 0711); // create the themes folder. The default themes are not copied there, but the folder is created for possible additional themes added by the player +- chdir(CurrentDirectory); ++ chdir("/usr/share/tuxdash"); + system((ostring)"cp -r maps savegames config " + TuxHomeDirectory); + } + } + cout << endl << " Using " << TuxHomeDirectory << " for configuration, map and savegame files" << endl; +- chdir(CurrentDirectory); ++ chdir("/usr/share/tuxdash"); + // finished with check of working directory + + int running=1, start, stop, framestart = time(0), frames=0, frame_count = 0; diff --git a/games-arcade/tuxdash/tuxdash-0.8-r1.ebuild b/games-arcade/tuxdash/tuxdash-0.8-r1.ebuild new file mode 100644 index 000000000000..4e237fce5c7c --- /dev/null +++ b/games-arcade/tuxdash/tuxdash-0.8-r1.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +inherit toolchain-funcs + +DESCRIPTION="A simple BoulderDash clone" +HOMEPAGE="http://www.tuxdash.de/index.php?language=EN" +SRC_URI="http://www.tuxdash.de/ressources/downloads/${PN}_src_${PV}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86 ~x86-fbsd" +IUSE="" + +RDEPEND=" + media-libs/libsdl[video] + media-libs/sdl-ttf" +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}"/${PN}-0.8-fix-build-system.patch + "${FILESDIR}"/${PN}-0.8-fix-c++14.patch + "${FILESDIR}"/${PN}-0.8-fix-paths.patch +) + +src_prepare() { + default + rm -f GPL TuxDash || die +} + +src_configure() { + tc-export CXX +} + +src_compile() { + emake -C src +} + +src_install() { + dobin tuxdash + einstalldocs + + insinto /usr/share/${PN} + doins -r themes maps fonts savegames config +} |