--- /dev/null
+#!/sbin/openrc-run
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+command="/usr/sbin/smw-server"
+command_background="true"
+pidfile="/var/run/${RC_SVCNAME}.pid"
+name="Super Mario War server"
+description="The Super Mario War server process is in charge of hosting Super Mario War games"
+smw_server_dir="/usr/share/supermariowar-2.0_beta1/server"
+
+depend() {
+ use net
+ before logger
+}
+
+start() {
+ if [[ ! -d "${smw_server_dir}" ]]; then
+ eerror "Cannot cd into ${smw_server_dir}"
+ return 1
+ fi
+ cd "${smw_server_dir}" || return 1
+ ebegin "Starting ${name}"
+ start-stop-daemon \
+ --start \
+ --background \
+ --pidfile ${pidfile} \
+ --make-pidfile \
+ --exec ${command}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping ${name}"
+ start-stop-daemon \
+ --stop \
+ --pidfile ${pidfile}
+ eend $?
+}
--- /dev/null
+find_package(PkgConfig REQUIRED)
+pkg_check_modules(YAML-CPP REQUIRED yaml-cpp)
+find_path(YAML-CPP_INCLUDE_DIRECTORY
+ NAMES yaml.h
+ PATHS ${YAML-CPP_INCLUDE_DIRS} /usr/include/yaml-cpp
+)
+find_library(YAML-CPP_LIBRARY
+ NAMES yaml-cpp
+ PATHS ${YAML-CPP_LIBRARY_DIRS})
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(yaml-cpp
+ FOUND_VAR yaml-cpp_FOUND
+ REQUIRED_VARS YAML-CPP_LIBRARY YAML-CPP_INCLUDE_DIRECTORY
+)
+
+if (yaml-cpp_FOUND)
+ set(yaml-cpp_INCLUDE_DIRS ${YAML-CPP_INCLUDE_DIRECTORY})
+ set(yaml-cpp_LIBRARIES ${YAML-CPP_LIBRARY})
+endif ()
+mark_as_advanced(YAML-CPP_INCLUDE_DIRECTORY YAML-CPP_LIBRARY)
--- /dev/null
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils cmake-utils versionator
+
+MY_PV=$(replace_version_separator 2 '-')
+MY_PV="${MY_PV/beta1/beta.1}"
+MY_PN="smw"
+
+DESCRIPTION="Fan-made multiplayer Super Mario Bros. style deathmatch game"
+HOMEPAGE="https://github.com/mmatyas/supermariowar"
+SRC_URI="https://github.com/mmatyas/${PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86"
+LICENSE="GPL-2"
+SLOT="0"
+
+IUSE="+server"
+
+RDEPEND="
+ sys-libs/zlib
+ dev-cpp/yaml-cpp
+ net-libs/enet:1.3=
+ media-libs/sdl-mixer
+ media-libs/sdl-image"
+
+DEPEND="
+ ${RDEPEND}
+ virtual/pkgconfig"
+
+S="${WORKDIR}/${PN}-${MY_PV}"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}" || die
+ unpack ./data.zip
+}
+
+src_prepare() {
+ default
+ einfo "Copying Findyaml-cpp.cmake"
+ cp "${FILESDIR}/${P}-yaml-cpp-config.cmake" cmake/Findyaml-cpp.cmake || die
+ eend $?
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_STATIC_LIBS=OFF
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX%/}/usr"
+ -DSMW_BINDIR="${EPREFIX%/}/usr/bin"
+ -DSMW_DATADIR="${EPREFIX%/}/usr/share/${PF}"
+ )
+
+ cmake-utils_src_configure
+}
+
+src_compile() {
+ cmake-utils_src_compile
+}
+
+src_install() {
+ cmake-utils_src_install
+
+ local bin base_bin
+ for bin in "${ED}/usr/bin"/*; do
+ base_bin=$(basename "${bin}")
+ chmod 0755 "${bin}" || die
+ done
+
+ local smw_datadir="usr/share/${PF}"
+ local smw_bindir="${smw_datadir}/bin"
+ mkdir -p "${ED}/${smw_bindir}" || die
+
+ einfo "Moving ${PN} binary files to /${smw_bindir}"
+ mv "${ED}/usr/bin"/* "${ED}/${smw_bindir}" || die
+ eend $?
+
+ for bin in "${ED}/${smw_bindir}"/*; do
+ base_bin=$(basename "${bin}")
+ einfo "Creating launcher in /usr/bin for ${base_bin}"
+ cat << EOF > "${base_bin}" || die
+#!/usr/bin/env bash
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# ${PF} launcher: ${base_bin}
+exec /${smw_bindir}/${base_bin} /${smw_datadir}
+EOF
+ dobin "${base_bin}"
+ eend $?
+ done
+
+ if use server; then
+ local smw_server="${BUILD_DIR}/Binaries/Release/${MY_PN}-server"
+ local smw_serverdir="/${smw_datadir}/server"
+
+ einfo "Installing ${MY_PN}-server files"
+ dosbin "${smw_server}"
+
+ dodir "${smw_serverdir}"
+ insinto "${smw_serverdir}"
+ doins "${S}/src/server/serverconfig"
+
+ dosym "${smw_serverdir}/serverconfig" "/etc/${MY_PN}.conf"
+
+ newinitd "${FILESDIR}/smwd.initd" "${MY_PN}d"
+ eend $?
+ fi
+}