Skip to content

Commit

Permalink
games-simulation/corsix-th: migrate to lua-single.eclass
Browse files Browse the repository at this point in the history
LuaJIT is in principle supported upstream but requires one to override
cmake detection of the Lua library, and more importantly
dev-lua/luasocket doesn't support this implementation yet.

PUC Lua 5.4 is known not to be supported yet, see e.g.
http://lua-users.org/lists/lua-l/2020-07/msg00047.html

Closes: https://bugs.gentoo.org/752954
Signed-off-by: Marek Szuba <[email protected]>
  • Loading branch information
Marek Szuba committed Dec 1, 2020
1 parent 5ee15fd commit 93e915d
Show file tree
Hide file tree
Showing 3 changed files with 96 additions and 0 deletions.
84 changes: 84 additions & 0 deletions games-simulation/corsix-th/corsix-th-0.64-r100.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

LUA_COMPAT=( lua5-{1..3} )

inherit cmake lua-single xdg

MY_PN="CorsixTH"
MY_PV="$(ver_rs 2 -)"

DESCRIPTION="Open source clone of Theme Hospital"
HOMEPAGE="https://corsixth.com"
SRC_URI="https://github.com/${MY_PN}/${MY_PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"

LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~arm ~x86"
IUSE="doc +midi +sound +truetype +videos"

REQUIRED_USE="${LUA_REQUIRED_USE}"

RDEPEND="${LUA_DEPS}
$(lua_gen_cond_dep '
>=dev-lua/luafilesystem-1.5[${LUA_USEDEP}]
>=dev-lua/lpeg-0.9[${LUA_USEDEP}]
>=dev-lua/luasocket-3.0_rc1-r4[${LUA_USEDEP}]
')
media-libs/libsdl2[opengl,video]
sound? ( media-libs/sdl2-mixer[midi?] )
truetype? ( >=media-libs/freetype-2.5.3:2 )
videos? ( >=media-video/ffmpeg-2.2.3:0= )
"

DEPEND="${RDEPEND}"

# Technically, build-time generation of documentation could use any version
# of Lua (or to be precise: if in src_configure cmake has been told to use
# LuaJIT documentation generation looks for LuaJIT, otherwise any
# dev-lang/lua slot will do; see the first few lines of the bundled file
# CMake/GenerateDoc.cmake for details) - but since dev-lang/lua:0 conflicts
# with the other slots of same, try to keep the deptree sane until we get
# rid of unslotted Lua.
BDEPEND="
virtual/pkgconfig
doc? (
app-doc/doxygen[dot]
${LUA_DEPS}
)
"

PATCHES=(
"${FILESDIR}"/${PN}-0.64-cmake_lua_detection.patch
)

S="${WORKDIR}/${MY_PN}-${MY_PV}"

src_prepare() {
cmake_src_prepare
}

src_configure() {
local mycmakeargs=(
-DLUA_VERSION=$(lua_get_version)
-DWITH_AUDIO=$(usex sound)
-DWITH_FREETYPE2=$(usex truetype)
-DWITH_MOVIES=$(usex videos)
)
cmake_src_configure
}

src_compile() {
cmake_src_compile
use doc && cmake_src_compile doc
}

src_install() {
cmake_src_install
dodoc {changelog,CONTRIBUTING}.txt

docinto html
use doc && dodoc -r "${BUILD_DIR}"/doc/*
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- a/CorsixTH/CMakeLists.txt
+++ b/CorsixTH/CMakeLists.txt
@@ -103,7 +103,7 @@
endif()

# Find Lua
-find_package(Lua REQUIRED)
+find_package(Lua ${LUA_VERSION} EXACT REQUIRED)
if(Lua_FOUND)
target_link_libraries(CorsixTH ${LUA_LIBRARY})
include_directories(${LUA_INCLUDE_DIR})
1 change: 1 addition & 0 deletions profiles/package.mask
Original file line number Diff line number Diff line change
Expand Up @@ -569,6 +569,7 @@ dev-lua/luacrypto
>=games-roguelike/stone-soup-0.25.1-r100
>=games-rpg/kqlives-0.99-r100
>=games-rpg/sumwars-0.5.8-r100
>=games-simulation/corsix-th-0.64-r100
>=mail-filter/imapfilter-2.6.16-r100
>=media-gfx/geeqie-1.5.1-r1
>=media-sound/aqualung-1.1-r100
Expand Down

0 comments on commit 93e915d

Please sign in to comment.