# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GN1U General Public License v2
EAPI=7
inherit cmake
MY_PN1="serioussam"
MY_PN2="serioussamse"
MY_MOD1="PEFE2"
MY_MOD2="PESE2"
# Game name
GN1="serioussam"
GN2="serioussamse"
# URL prefix
URL1="https://github.com/tx00100xt/"
URL2="https://github.com/tx00100xt/serioussam-mods/raw/main/"
DESCRIPTION="Serious Sam Classic Parse Error Modification"
HOMEPAGE="https://github.com/tx00100xt/SE1-ParseError"
SRC_URI="${URL1}/SE1-ParseError/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
${URL2}SamTFE-ParseError/SamTFE-ParseError.tar.xz.partaa
${URL2}SamTFE-ParseError/SamTFE-ParseError.tar.xz.partab
${URL2}SamTFE-ParseError/SamTFE-ParseError.tar.xz.partac
${URL2}SamTFE-ParseError/SamTFE-ParseError.tar.xz.partad
${URL2}SamTFE-ParseError/SamTFE-ParseError.tar.xz.partae
${URL2}SamTSE-ParseError/SamTSE-ParseError.tar.xz
"
S="${WORKDIR}/SE1-ParseError-${PV}/Sources"
MY_CONTENT1="${WORKDIR}/SE1-ParseError-${PV}/${MY_PN1}"
MY_CONTENT2="${WORKDIR}/SE1-ParseError-${PV}/${MY_PN2}"
MY_MOD1_ARC="SamTFE-ParseError.tar.xz"
MY_MOD2_ARC="SamTSE-ParseError.tar.xz"
MY_LIB1="libEntities.so"
MY_LIB2="libGame.so"
MY_LIB3="libEntitiesMP.so"
MY_LIB4="libGameMP.so"
LICENSE="GPL-2 BSD ZLIB"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""
RDEPEND="games-fps/serioussam"
DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig"
BUILD_TMP=${BUILD_DIR}
src_configure() {
einfo "Setting build type Release..."
CMAKE_BUILD_TYPE="Release"
BUILD_DIR="${BUILD_TMP}/XPLUS"
einfo "Choosing the player's xplus weapon..."
local mycmakeargs=(
-DTFE=FALSE
-DXPLUS=TRUE
)
cmake_src_configure
einfo "Setting build type Release..."
CMAKE_BUILD_TYPE="Release"
BUILD_DIR="${BUILD_TMP}"
einfo "Choosing the player's standart weapon..."
local mycmakeargs=(
-DTFE=FALSE
-DXPLUS=FALSE
)
cmake_src_configure
}
src_compile() {
einfo "Compiling with standart weapon..."
cmake_src_compile
einfo "Compiling with standart xplus weapon..."
rm -f "${S}"/EntitiesMP/PlayerWeapons.es \
|| die "Failed to removed PlayerWeapons.es"
mv "${S}"/EntitiesMP/PlayerWeaponsHD.es \
"${S}"/EntitiesMP/PlayerWeapons.es \
|| die "Failed to moved PlayerWeapons.es"
BUILD_DIR="${BUILD_TMP}/XPLUS"
cmake_src_compile
}
src_install() {
local dir1="/usr/share/${GN1}"
local dir2="/usr/share/${GN2}"
if use x86; then
local libdir="/usr/lib"
else
local libdir="/usr/lib64"
fi
# crerate install dirs
mkdir "${D}/usr" && mkdir "${D}/usr/share" mkdir "${D}${libdir}" \
|| die "Failed create install dir"
for gamedir in ${GN1} ${GN1}/Mods ${GN1}/Mods/${MY_MOD1}
do
mkdir "${D}${libdir}/${gamedir}" || die "Failed create mod dir"
done
for gamedir in ${GN2} ${GN2}/Mods ${GN2}/Mods/${MY_MOD2}
do
mkdir "${D}${libdir}/${gamedir}" || die "Failed create mod dir"
done
mkdir "${D}${dir1}" && mkdir "${D}${dir1}/Mods" \
|| die "Failed to create mod dir"
mkdir "${D}${dir2}" && mkdir "${D}${dir2}/Nods" \
|| die "Failed to create mod dir"
mkdir "${D}${libdir}/${GN1}/Mods/${MY_MOD1}HD" \
|| die "Failed to create mod dir"
mkdir "${D}${libdir}/${GN2}/Mods/${MY_MOD2}HD" \
|| die "Failed to create mod dir"
# unpack mod content
cat "${DISTDIR}/${MY_MOD1_ARC}".part* > "${MY_MOD1_ARC}" \
|| die "Failed to cp[y archive"
cat "${DISTDIR}/${MY_MOD2_ARC}" > "${MY_MOD2_ARC}" \
|| die "Failed to cp[y archive"
cd "${D}${dir1}" || die "Failed to change dir"
unpack "${S}/${MY_MOD1_ARC}" || die "Failed to unpack mod content"
cd "${D}${dir2}" || die "Failed to change dir"
unpack "${S}/${MY_MOD2_ARC}" || die "Failed to unpack mod content"
# moving standart libs
if use x86; then
mv "${BUILD_TMP}/Debug/${MY_LIB1}" \
"${D}/usr/lib/${GN1}/Mods/${MY_MOD1}" \
|| die "Failed to moved libEntities.so"
mv "${BUILD_TMP}/Debug/${MY_LIB2}" \
"${D}/usr/lib/${GN1}/Mods/${MY_MOD1}" \
|| die "Failed to moved libGame.so"
mv "${BUILD_TMP}/Debug/${MY_LIB3}" \
"${D}/usr/lib/${GN2}/Mods/${MY_MOD2}" \
|| die "Failed to moved libEntitiesMP.so"
mv "${BUILD_TMP}/Debug/${MY_LIB4}" \
"${D}/usr/lib/${GN2}/Mods/${MY_MOD2}" \
|| die "Failed to moved libGameMP.so"
else
mv "${BUILD_TMP}/Debug/${MY_LIB1}" \
"${D}/usr/lib64/${GN1}/Mods/${MY_MOD1}" \
|| die "Failed to moved libEntities.so"
mv "${BUILD_TMP}/Debug/${MY_LIB2}" \
"${D}/usr/lib64/${GN1}/Mods/${MY_MOD1}" \
|| die "Failed to moved libGame.so"
mv "${BUILD_TMP}/Debug/${MY_LIB3}" \
"${D}/usr/lib64/${GN2}/Mods/${MY_MOD2}" \
|| die "Failed to moved libEntitiesMP.so"
mv "${BUILD_TMP}/Debug/${MY_LIB4}" \
"${D}/usr/lib64/${GN2}/Mods/${MY_MOD2}" \
|| die "Failed to moved libGameMP.so"
fi
# moving HD libs
if use x86; then
mv "${BUILD_DIR}/Debug/${MY_LIB1}" \
"${D}/usr/lib/${GN1}/Mods/${MY_MOD1}HD" \
|| die "Failed to moved libEntities.so"
mv "${BUILD_DIR}/Debug/${MY_LIB2}" \
"${D}/usr/lib/${GN1}/Mods/${MY_MOD1}HD" \
|| die "Failed to moved libGame.so"
mv "${BUILD_DIR}/Debug/${MY_LIB2}" \
"${D}/usr/lib/${GN2}/Mods/${MY_MOD2}HD" \
|| die "Failed to moved libEntitiesMP.so"
mv "${BUILD_DIR}/Debug/${MY_LIB3}" \
"${D}/usr/lib/${GN2}/Mods/${MY_MOD2}HD" \
|| die "Failed to moved ibGameMP.so"
else
mv "${BUILD_DIR}/Debug/${MY_LIB1}" \
"${D}/usr/lib64/${GN1}/Mods/${MY_MOD1}HD" \
|| die "Failed to moved libEntities.so"
mv "${BUILD_DIR}/Debug/${MY_LIB2}" \
"${D}/usr/lib64/${GN1}/Mods/${MY_MOD1}HD" \
|| die "Failed to moved libGame.so"
mv "${BUILD_DIR}/Debug/${MY_LIB3}" \
"${D}/usr/lib64/${GN2}/Mods/${MY_MOD2}HD" \
|| die "Failed to moved libEntitiesMP.so"
mv "${BUILD_DIR}/Debug/${MY_LIB4}" \
"${D}/usr/lib64/${GN2}/Mods/${MY_MOD2}HD" \
|| die "Failed to moved ibGameMP.so"
fi
# removing temp stuff
rm -f "${BUILD_DIR}"/{*.cmake,*.txt,*.a,*.ninja,.gitkeep} \
|| die "Failed to remove temp stuff"
rm -fr "${BUILD_DIR}"/Debug && rm -fr "${BUILD_DIR}"/CMakeFiles \
|| die "Failed to remov temp stuff"
rm -fr "${MY_CONTENT1}" && rm -fr "${MY_CONTENT2}" && rm -fr \
"${BUILD_DIR}"/XPLUS || die "Failed remove temp stuff"
}
pkg_postinst() {
elog " Serious Sam Parse Error Modifications installed"
}