summaryrefslogtreecommitdiff
path: root/games-engines/devilutionx
diff options
context:
space:
mode:
Diffstat (limited to 'games-engines/devilutionx')
-rw-r--r--games-engines/devilutionx/Manifest3
-rw-r--r--games-engines/devilutionx/devilutionx-9999.ebuild60
-rw-r--r--games-engines/devilutionx/files/devilutionx-facebookincubator_find_libsodium.patch88
-rw-r--r--games-engines/devilutionx/metadata.xml11
4 files changed, 162 insertions, 0 deletions
diff --git a/games-engines/devilutionx/Manifest b/games-engines/devilutionx/Manifest
new file mode 100644
index 000000000000..fa03c45c4cd7
--- /dev/null
+++ b/games-engines/devilutionx/Manifest
@@ -0,0 +1,3 @@
+AUX devilutionx-facebookincubator_find_libsodium.patch 3401 BLAKE2B 3f721056ffd63cb063affb4a54641859e3a45360aa1695fc31f3aecd94fa47ddfb986f5fc35a8c5fd5d706e7f1dce5d8dae4d6def5ed163dda8957ab61728818 SHA512 91ba2f33dec4ea56f0ed5aec334fab2a97bbae82ca425c9962c62d6aedf67b16821bfe47f7abfbdb737e5685531be55442972aabcf39b36092f59b79752dbcbc
+EBUILD devilutionx-9999.ebuild 1354 BLAKE2B 642a915685356f4726d28b07b8186149cb1df7a0b0f1310fe24ce6fc286cdb6c65641b6845d17dd9a52f58703c1b80f9a8be5a798e720b4e327b1dcbd5abf897 SHA512 e6399058fe35c9bb6b4c1771e3b6e008561d53887eed8ed452524a507a50c4ba58ec0ee36a60d944394be863b320e4cc0ced0a2549fea20fdab362d55a8a1c2d
+MISC metadata.xml 349 BLAKE2B 11288d110457dff20a74658a3405aadc17fe8acce67069fd5493f0f81e8e2aa59f45ed5808377362f6840670ae6153b199c724b2801b4689394cadb98a8061a1 SHA512 b759e6fb2533964a7226df5a5877f70eb303689f7c0fd598d1d002444ee71ac0b83747a7c8c262f2ad1d087b232de2c1c7bd3b512bbcf3469eec037009ea7f4d
diff --git a/games-engines/devilutionx/devilutionx-9999.ebuild b/games-engines/devilutionx/devilutionx-9999.ebuild
new file mode 100644
index 000000000000..3070232b1069
--- /dev/null
+++ b/games-engines/devilutionx/devilutionx-9999.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake-utils desktop
+
+DESCRIPTION="Diablo engine for modern operating systems"
+HOMEPAGE="https://github.com/diasurgical/devilutionX"
+if [[ "${PV}" == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/diasurgical/devilutionX.git"
+else
+ SRC_URI="https://github.com/diasurgical/devilutionX/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="public-domain"
+SLOT="0"
+
+IUSE="debug"
+
+RDEPEND="
+ dev-libs/libsodium
+ media-libs/libsdl2[haptic]
+ media-libs/sdl2-mixer
+ media-libs/sdl2-ttf
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ virtual/pkgconfig
+"
+
+src_prepare() {
+ # https://github.com/diasurgical/devilutionX/issues/225
+ eapply -R "${FILESDIR}"/${PN}-facebookincubator_find_libsodium.patch
+
+ cmake-utils_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DBINARY_RELEASE=ON
+ -DDEBUG="$(usex debug)"
+ )
+ cmake-utils_src_configure
+}
+
+src_install() {
+ dobin "${BUILD_DIR}/${PN}"
+ make_desktop_entry ${PN} "Diablo devolved"
+}
+
+pkg_postinst() {
+ einfo "In order to play the game you need to install the file"
+ einfo " diabdat.mpq"
+ einfo "from the original game CD into the following directory:"
+ einfo " \${HOME}/.local/share/diasurgical/devilution/"
+ einfo "and make sure it's writeable (chmod u+w)."
+}
diff --git a/games-engines/devilutionx/files/devilutionx-facebookincubator_find_libsodium.patch b/games-engines/devilutionx/files/devilutionx-facebookincubator_find_libsodium.patch
new file mode 100644
index 000000000000..e81de974c4db
--- /dev/null
+++ b/games-engines/devilutionx/files/devilutionx-facebookincubator_find_libsodium.patch
@@ -0,0 +1,88 @@
+From 1f7f5bf3dccee957e23bdf4d976883b155d5e81a Mon Sep 17 00:00:00 2001
+From: Anders Jenbo <anders@jenbo.dk>
+Date: Tue, 23 Jul 2019 21:34:08 +0200
+Subject: [PATCH] Use facebookincubator findflindsodium cmake helper
+
+https://github.com/facebookincubator/fizz/blob/master/fizz/cmake/FindSodium.cmake
+---
+ CMake/Findsodium.cmake | 34 ++++++++++++++++++++--------------
+ 1 file changed, 20 insertions(+), 14 deletions(-)
+
+diff --git a/CMake/Findsodium.cmake b/CMake/Findsodium.cmake
+index 0667920c..c664ccbe 100644
+--- a/CMake/Findsodium.cmake
++++ b/CMake/Findsodium.cmake
+@@ -55,22 +55,22 @@ if (UNIX)
+ endif()
+
+ if(sodium_USE_STATIC_LIBS)
+- if (sodium_PKG_STATIC_LIBRARIES)
+- foreach(_libname ${sodium_PKG_STATIC_LIBRARIES})
+- if (NOT _libname MATCHES "^lib.*\\.a$") # ignore strings already ending with .a
+- list(INSERT sodium_PKG_STATIC_LIBRARIES 0 "lib${_libname}.a")
+- endif()
+- endforeach()
+- list(REMOVE_DUPLICATES sodium_PKG_STATIC_LIBRARIES)
+- else()
+- # if pkgconfig for libsodium doesn't provide
+- # static lib info, then override PKG_STATIC here..
++ foreach(_libname ${sodium_PKG_STATIC_LIBRARIES})
++ if (NOT _libname MATCHES "^lib.*\\.a$") # ignore strings already ending with .a
++ list(INSERT sodium_PKG_STATIC_LIBRARIES 0 "lib${_libname}.a")
++ endif()
++ endforeach()
++ list(REMOVE_DUPLICATES sodium_PKG_STATIC_LIBRARIES)
++
++ # if pkgconfig for libsodium doesn't provide
++ # static lib info, then override PKG_STATIC here..
++ if (NOT sodium_PKG_STATIC_FOUND)
+ set(sodium_PKG_STATIC_LIBRARIES libsodium.a)
+ endif()
+
+ set(XPREFIX sodium_PKG_STATIC)
+ else()
+- if (sodium_PKG_LIBRARIES STREQUAL "")
++ if (NOT sodium_PKG_FOUND)
+ set(sodium_PKG_LIBRARIES sodium)
+ endif()
+
+@@ -101,7 +101,7 @@ elseif (WIN32)
+
+ if (MSVC)
+ # detect target architecture
+- file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/arch.c" [=[
++ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/arch.cpp" [=[
+ #if defined _M_IX86
+ #error ARCH_VALUE x86_32
+ #elif defined _M_X64
+@@ -109,7 +109,7 @@ elseif (WIN32)
+ #endif
+ #error ARCH_VALUE unknown
+ ]=])
+- try_compile(_UNUSED_VAR "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/arch.c"
++ try_compile(_UNUSED_VAR "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/arch.cpp"
+ OUTPUT_VARIABLE _COMPILATION_LOG
+ )
+ string(REGEX REPLACE ".*ARCH_VALUE ([a-zA-Z0-9_]+).*" "\\1" _TARGET_ARCH "${_COMPILATION_LOG}")
+@@ -224,7 +224,8 @@ endif()
+
+ # communicate results
+ include(FindPackageHandleStandardArgs)
+-find_package_handle_standard_args(sodium
++find_package_handle_standard_args(
++ Sodium # The name must be either uppercase or match the filename case.
+ REQUIRED_VARS
+ sodium_LIBRARY_RELEASE
+ sodium_LIBRARY_DEBUG
+@@ -233,6 +234,11 @@ find_package_handle_standard_args(sodium
+ sodium_VERSION
+ )
+
++if(Sodium_FOUND)
++ set(sodium_LIBRARIES
++ optimized ${sodium_LIBRARY_RELEASE} debug ${sodium_LIBRARY_DEBUG})
++endif()
++
+ # mark file paths as advanced
+ mark_as_advanced(sodium_INCLUDE_DIR)
+ mark_as_advanced(sodium_LIBRARY_DEBUG)
diff --git a/games-engines/devilutionx/metadata.xml b/games-engines/devilutionx/metadata.xml
new file mode 100644
index 000000000000..81aca5b1e557
--- /dev/null
+++ b/games-engines/devilutionx/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>polynomial-c@gentoo.org</email>
+ <name>Lars Wendler</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">diasurgical/devilutionX</remote-id>
+ </upstream>
+</pkgmetadata>