Skip to content

Commit

Permalink
games-arcade/tuxdash: Fix building with GCC 6
Browse files Browse the repository at this point in the history
Gentoo-bug: 600084
* EAPI=6
* Remove games.eclass

Package-Manager: Portage-2.3.3, Repoman-2.3.1
  • Loading branch information
SoapGentoo committed Dec 30, 2016
1 parent 31f4624 commit 9a523f1
Show file tree
Hide file tree
Showing 4 changed files with 205 additions and 0 deletions.
11 changes: 11 additions & 0 deletions games-arcade/tuxdash/files/tuxdash-0.8-fix-build-system.patch
Original file line number Diff line number Diff line change
@@ -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
101 changes: 101 additions & 0 deletions games-arcade/tuxdash/files/tuxdash-0.8-fix-c++14.patch
Original file line number Diff line number Diff line change
@@ -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;
45 changes: 45 additions & 0 deletions games-arcade/tuxdash/files/tuxdash-0.8-fix-paths.patch
Original file line number Diff line number Diff line change
@@ -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;
48 changes: 48 additions & 0 deletions games-arcade/tuxdash/tuxdash-0.8-r1.ebuild
Original file line number Diff line number Diff line change
@@ -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
}

0 comments on commit 9a523f1

Please sign in to comment.