summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Ospald <hasufell@gentoo.org>2012-07-20 21:20:00 +0000
committerJulian Ospald <hasufell@gentoo.org>2012-07-20 21:20:00 +0000
commit81cba4704de5ed6ff7fcaf4662c82d65c86227b4 (patch)
tree2c040373093f9d7425c752ad4f9328b3503fc305 /games-engines/odamex
parentMask next Calligra rc (diff)
downloadgentoo-2-81cba4704de5ed6ff7fcaf4662c82d65c86227b4.tar.gz
gentoo-2-81cba4704de5ed6ff7fcaf4662c82d65c86227b4.tar.bz2
gentoo-2-81cba4704de5ed6ff7fcaf4662c82d65c86227b4.zip
initial import with Mike Wood wrt bug #197228
(Portage version: 2.2.0_alpha120/cvs/Linux x86_64)
Diffstat (limited to 'games-engines/odamex')
-rw-r--r--games-engines/odamex/ChangeLog8
-rw-r--r--games-engines/odamex/files/odamex-0.6.1-build.patch212
-rw-r--r--games-engines/odamex/metadata.xml36
-rw-r--r--games-engines/odamex/odamex-0.6.1.ebuild96
4 files changed, 352 insertions, 0 deletions
diff --git a/games-engines/odamex/ChangeLog b/games-engines/odamex/ChangeLog
new file mode 100644
index 000000000000..f397fcf11e19
--- /dev/null
+++ b/games-engines/odamex/ChangeLog
@@ -0,0 +1,8 @@
+# ChangeLog for games-engines/odamex
+# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/games-engines/odamex/ChangeLog,v 1.1 2012/07/20 21:20:00 hasufell Exp $
+
+ 20 Jul 2012; Julian Ospald <hasufell@gentoo.org>
+ +files/odamex-0.6.1-build.patch, +metadata.xml:
+ initial import with Mike Wood wrt bug #197228
+
diff --git a/games-engines/odamex/files/odamex-0.6.1-build.patch b/games-engines/odamex/files/odamex-0.6.1-build.patch
new file mode 100644
index 000000000000..152d19211200
--- /dev/null
+++ b/games-engines/odamex/files/odamex-0.6.1-build.patch
@@ -0,0 +1,212 @@
+From: Julian Ospald <hasufell@gentoo.org>
+Date: Sun Jul 15 10:08:51 UTC 2012
+Subject: build system
+
+a. add install rules and make paths modifiable
+b. add odamex.wad install destination to wad search path
+c. add various cmake options
+d. use CMAKE_BINDIR as default bin patch in odalauncher
+
+--- odamex-src-0.6.1/CMakeLists.txt
++++ odamex-src-0.6.1/CMakeLists.txt
+@@ -2,6 +2,26 @@
+ project(Odamex)
+ cmake_minimum_required(VERSION 2.8)
+
++# cmake modules
++include( CMakeDependentOption )
++include( GNUInstallDirs )
++
++# options
++option(BUILD_CLIENT "Build client target" 1)
++option(BUILD_SERVER "Build server target" 1)
++option(BUILD_MASTER "Build master server target" 1)
++cmake_dependent_option( BUILD_ODALAUNCH "Build odalaunch target" 1 BUILD_CLIENT 0 )
++cmake_dependent_option( ENABLE_PORTMIDI "Enable portmidi support" 1 BUILD_CLIENT 0 )
++
++configure_file (
++ "${PROJECT_SOURCE_DIR}/config.h.in"
++ "${PROJECT_BINARY_DIR}/config.h"
++ )
++
++include_directories(
++ ${PROJECT_BINARY_DIR}
++)
++
+ set(PROJECT_VERSION 0.6.1)
+ set(PROJECT_COPYRIGHT "2006-2012")
+
+@@ -40,13 +60,31 @@
+ set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
+
+ # Subdirectories for individual projects
+-add_subdirectory(client)
+-add_subdirectory(server)
+-add_subdirectory(master)
+-add_subdirectory(odalaunch)
++if(BUILD_CLIENT)
++ add_subdirectory(client)
++endif()
++if(BUILD_SERVER)
++ add_subdirectory(server)
++endif()
++if(BUILD_MASTER)
++ add_subdirectory(master)
++endif()
++if(BUILD_ODALAUNCH)
++ add_subdirectory(odalaunch)
++endif()
++
++if(NOT BUILD_CLIENT AND NOT BUILD_SERVER AND NOT BUILD_MASTER)
++ message(FATAL_ERROR "No target chosen, doing nothing.")
++endif()
++
+
+ # Disable the ag-odalaunch target completely: -DNO_AG-ODALAUNCH_TARGET
+ # This is only really useful when setting up a universal build.
+ if(NOT NO_AG-ODALAUNCH_TARGET)
+ add_subdirectory(ag-odalaunch)
+ endif()
++
++# global install rules
++if(UNIX)
++ install(FILES odamex.wad DESTINATION ${CMAKE_INSTALL_DATADIR})
++endif()
+--- odamex-src-0.6.1/client/CMakeLists.txt
++++ odamex-src-0.6.1/client/CMakeLists.txt
+@@ -52,7 +52,7 @@
+
+ # Portmidi configuration
+ find_package(PortMidi)
+-if(PortMidi_FOUND)
++if(PortMidi_FOUND AND ENABLE_PORTMIDI)
+ include_directories(${PortMidi_INCLUDE_DIR})
+ ADD_DEFINITIONS(-DPORTMIDI ${PortMidi_CFLAGS})
+ else()
+@@ -141,5 +141,8 @@
+ " )
+ endif()
+
++ # UNIX install rules
++ elseif(UNIX)
++ install( TARGETS odamex DESTINATION ${CMAKE_INSTALL_BINDIR} )
+ endif()
+ endif()
+--- odamex-src-0.6.1/master/CMakeLists.txt
++++ odamex-src-0.6.1/master/CMakeLists.txt
+@@ -12,3 +12,9 @@
+ elseif(SOLARIS)
+ target_link_libraries(odamast socket nsl)
+ endif()
++
++# install rules
++if(UNIX)
++ install( TARGETS odamast DESTINATION ${CMAKE_INSTALL_BINDIR} )
++endif()
++
+--- odamex-src-0.6.1/odalaunch/CMakeLists.txt
++++ odamex-src-0.6.1/odalaunch/CMakeLists.txt
+@@ -61,3 +61,9 @@
+ )
+ endif()
+ endif()
++
++# install rules
++if(UNIX)
++ install( TARGETS odalaunch DESTINATION ${CMAKE_INSTALL_BINDIR} )
++endif()
++
+--- odamex-src-0.6.1/server/CMakeLists.txt
++++ odamex-src-0.6.1/server/CMakeLists.txt
+@@ -39,3 +39,8 @@
+ elseif(SOLARIS)
+ target_link_libraries(odasrv socket nsl)
+ endif()
++
++# install rules
++if(UNIX)
++ install( TARGETS odasrv DESTINATION ${CMAKE_INSTALL_BINDIR} )
++endif()
+--- /dev/null
++++ odamex-src-0.6.1/config.h.in
+@@ -0,0 +1,7 @@
++#ifndef CONFIG_H
++#define CONFIG_H
++
++#define CMAKE_WADDIR "@CMAKE_INSTALL_DATADIR@"
++#define CMAKE_BINDIR "@CMAKE_INSTALL_BINDIR@"
++
++#endif
+--- odamex-src-0.6.1/client/src/d_main.cpp
++++ odamex-src-0.6.1/client/src/d_main.cpp
+@@ -25,6 +25,7 @@
+ //-----------------------------------------------------------------------------
+
+ #include "version.h"
++#include "config.h"
+
+ #include <sstream>
+ #include <string>
+@@ -836,6 +837,7 @@
+ D_AddSearchDir(dirs, getenv("DOOMWADPATH"), separator);
+ D_AddSearchDir(dirs, getenv("HOME"), separator);
+ D_AddSearchDir(dirs, waddirs.cstring(), separator);
++ D_AddSearchDir(dirs, CMAKE_WADDIR, separator);
+
+ dirs.erase(std::unique(dirs.begin(), dirs.end()), dirs.end());
+
+--- odamex-src-0.6.1/server/src/d_main.cpp
++++ odamex-src-0.6.1/server/src/d_main.cpp
+@@ -25,6 +25,7 @@
+ //-----------------------------------------------------------------------------
+
+ #include "version.h"
++#include "config.h"
+
+ #include <sstream>
+ #include <string>
+@@ -628,9 +629,9 @@
+ D_AddSearchDir(dirs, Args.CheckValue("-waddir"), separator);
+ D_AddSearchDir(dirs, getenv("DOOMWADDIR"), separator);
+ D_AddSearchDir(dirs, getenv("DOOMWADPATH"), separator);
+- D_AddSearchDir(dirs, getenv("HOME"), separator);
+- D_AddSearchDir(dirs, waddirs.cstring(), separator);
+-
++ D_AddSearchDir(dirs, getenv("HOME"), separator);
++ D_AddSearchDir(dirs, waddirs.cstring(), separator);
++ D_AddSearchDir(dirs, CMAKE_WADDIR, separator);
+
+ dirs.erase(std::unique(dirs.begin(), dirs.end()), dirs.end());
+
+--- odamex-src-0.6.1/odalaunch/src/dlg_main.cpp
++++ odamex-src-0.6.1/odalaunch/src/dlg_main.cpp
+@@ -27,6 +27,7 @@
+ #include "str_utils.h"
+
+ #include "md5.h"
++#include "config.h"
+
+ #include <wx/settings.h>
+ #include <wx/menu.h>
+@@ -42,6 +43,7 @@
+ #include <wx/process.h>
+ #include <wx/toolbar.h>
+ #include <wx/xrc/xmlres.h>
++#include <wx/string.h>
+
+ #ifdef __WXMSW__
+ #include <windows.h>
+@@ -190,10 +192,12 @@
+ }
+ #endif
+
++ const char *cmake_bindir_str = CMAKE_BINDIR;
++ wxString cmake_bindir = wxString::FromAscii(cmake_bindir_str);
+ launchercfg_s.get_list_on_start = 1;
+ launchercfg_s.show_blocked_servers = 0;
+ launchercfg_s.wad_paths = wxGetCwd();
+- launchercfg_s.odamex_directory = wxGetCwd();
++ launchercfg_s.odamex_directory = cmake_bindir;
+
+ m_LstCtrlServers = XRCCTRL(*this, "Id_LstCtrlServers", LstOdaServerList);
+ m_LstCtrlPlayers = XRCCTRL(*this, "Id_LstCtrlPlayers", LstOdaPlayerList);
diff --git a/games-engines/odamex/metadata.xml b/games-engines/odamex/metadata.xml
new file mode 100644
index 000000000000..403b5348bbb7
--- /dev/null
+++ b/games-engines/odamex/metadata.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>games</herd>
+ <maintainer>
+ <email>hasufell@gentoo.org</email>
+ <name>Julian Ospald</name>
+ <description>Maintainer, assign bugs to him</description>
+ </maintainer>
+ <maintainer>
+ <email>mwoodj@knology.net</email>
+ <name>Mike Wood</name>
+ <description>Proxy maintainer. CC him on bugs</description>
+ </maintainer>
+ <use>
+ <flag name="odalaunch">Build the wxwidgets based launcher.</flag>
+ <flag name="master">Build master server target (advertises odamex server list)</flag>
+ <flag name="portmidi">Enable portmidi support.</flag>
+ <flag name="server">Build server target.</flag>
+ </use>
+ <upstream>
+ <changelog>http://odamex.net/changelog.php</changelog>
+ <doc lang="en">http://odamex.net/wiki/Odamex</doc>
+ <bugs-to>http://odamex.net/bugs/</bugs-to>
+ </upstream>
+ <longdescription lang="en">
+ Odamex is a free and open source port for the classic
+ first-person-shooter Doom. Odamex's goal is to emulate the feel of and
+ retain many aspects of the original Doom executables while offering a
+ broader expanse of security features, personal configuration, gameplay
+ options, and editing features. Odamex can run on a wide range of
+ operating systems and hardware, so players should be able to play
+ on almost any platform.
+ </longdescription>
+</pkgmetadata>
+
diff --git a/games-engines/odamex/odamex-0.6.1.ebuild b/games-engines/odamex/odamex-0.6.1.ebuild
new file mode 100644
index 000000000000..d56751a0eed6
--- /dev/null
+++ b/games-engines/odamex/odamex-0.6.1.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/games-engines/odamex/odamex-0.6.1.ebuild,v 1.1 2012/07/20 21:20:00 hasufell Exp $
+
+EAPI=4
+WX_GTK_VER="2.8"
+inherit cmake-utils eutils gnome2-utils wxwidgets games
+
+MY_P=${PN}-src-${PV}
+DESCRIPTION="An online multiplayer, free software engine for Doom and Doom II"
+HOMEPAGE="http://odamex.net/"
+SRC_URI="mirror://sourceforge/${PN}/Odamex/${PV}/${MY_P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="dedicated +odalaunch master portmidi server"
+
+RDEPEND="
+ !dedicated? (
+ >=media-libs/libsdl-1.2.9[X,audio,joystick,video]
+ >=media-libs/sdl-mixer-1.2.6
+ odalaunch? ( x11-libs/wxGTK:${WX_GTK_VER}[X] )
+ portmidi? ( media-libs/portmidi )
+ )"
+DEPEND="${RDEPEND}"
+
+S=${WORKDIR}/${MY_P}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-build.patch
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_BINDIR="${GAMES_BINDIR}"
+ -DCMAKE_INSTALL_DATADIR="${GAMES_DATADIR}"/${PN}
+ $(cmake-utils_use_build master MASTER)
+ )
+
+ if use dedicated ; then
+ mycmakeargs+=(
+ -DBUILD_CLIENT=OFF
+ -DBUILD_ODALAUNCH=OFF
+ -DBUILD_SERVER=ON
+ -DENABLE_PORTMIDI=OFF
+ )
+ else
+ mycmakeargs+=(
+ -DBUILD_CLIENT=ON
+ $(cmake-utils_use_build odalaunch ODALAUNCH)
+ $(cmake-utils_use_build server SERVER)
+ $(cmake-utils_use_enable portmidi PORTMIDI)
+ )
+ fi
+
+ cmake-utils_src_configure
+}
+
+src_compile() {
+ cmake-utils_src_compile
+}
+
+src_install() {
+ cmake-utils_src_install
+
+ if ! use dedicated ; then
+ newicon -s 128 "${S}/media/icon_${PN}_128.png" "${PN}.png"
+ make_desktop_entry ${PN}
+
+ if use odalaunch ; then
+ newicon -s 128 "${S}/media/icon_odalaunch_128.png" "odalaunch.png"
+ make_desktop_entry odalaunch "Odamex Launcher" odalaunch
+ fi
+ fi
+
+ prepgamesdirs
+}
+
+pkg_preinst() {
+ games_pkg_preinst
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ games_pkg_postinst
+ einfo
+ elog "This is just the engine, you will need doom resource files in order to play."
+ elog "Check: http://odamex.net/wiki/FAQ#What_data_files_are_required.3F"
+ einfo
+ gnome2_icon_cache_update
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+}