odrling-overlay/media-video/aegisub/aegisub-9999.ebuild

193 lines
5.6 KiB
Bash

# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
LUA_COMPAT=( luajit )
LUA_REQ_USE="lua52compat"
WX_GTK_VER=3.2-gtk3
PLOCALES="ar be bg ca cs da de el es eu fa fi fr_FR gl hu id it ja ko nl pl pt_BR pt_PT ru sr_RS sr_RS@latin uk_UA vi zh_CN zh_TW"
inherit meson lua-single wxwidgets xdg-utils git-r3 plocale
DESCRIPTION="Advanced subtitle editor"
HOMEPAGE="http://www.aegisub.org/ https://github.com/Aegisub/Aegisub"
EGIT_REPO_URI="https://github.com/odrling/${PN^}.git https://github.com/vapoursynth/bestsource.git"
EGIT_BRANCH="master"
_depctrlver="0.6.3-alpha"
_ffiexpver=b8897ead55b84ec4148e900882bff8336b38f939
_luajsonver=1.3.3
SRC_URI="dependencycontrol? (
https://github.com/TypesettingTools/DependencyControl/archive/v${_depctrlver}.tar.gz
-> DependencyControl-${_depctrlver}.tar.gz
https://github.com/TypesettingTools/ffi-experiments/archive/${_ffiexpver}.tar.gz
-> ffi-experiments-${_ffiexpver}.tar.gz
https://github.com/harningt/luajson/archive/${_luajsonver}.tar.gz
-> luajson-${_luajsonver}.tar.gz
)"
# Submodules are used to pull bundled libraries.
EGIT_SUBMODULES=()
LICENSE="BSD MIT"
SLOT="0"
IUSE="+alsa +fonts debug +fftw openal oss portaudio pulseaudio spell +uchardet dependencycontrol test vapoursynth +bestsource"
RESTRICT="test"
# aegisub bundles luabins (https://github.com/agladysh/luabins).
# Unfortunately, luabins upstream is practically dead since 2010.
# Thus unbundling luabins isn't worth the effort.
RDEPEND="
x11-libs/wxGTK:${WX_GTK_VER}[X,opengl,debug?]
dev-lang/luajit:2[lua52compat]
dev-libs/boost:=[icu,nls]
dev-libs/icu:=
media-libs/ffmpegsource:=
media-libs/fontconfig
media-libs/freetype
media-libs/libass:=[fontconfig]
sys-libs/zlib
virtual/libiconv
virtual/opengl
alsa? ( media-libs/alsa-lib )
fftw? ( >=sci-libs/fftw-3.3:= )
openal? ( media-libs/openal )
portaudio? ( =media-libs/portaudio-19* )
pulseaudio? ( media-libs/libpulse )
spell? ( app-text/hunspell:= )
uchardet? ( app-i18n/uchardet )
>=dev-libs/openssl-1.0.1h-r2:0
fonts? ( media-fonts/amaranth )
vapoursynth? ( media-libs/vapoursynth )
bestsource? ( dev-libs/jansson )
"
DEPEND="${RDEPEND}
>=dev-build/meson-0.56.0
dev-util/intltool
sys-devel/gettext
virtual/pkgconfig
dependencycontrol? ( dev-lua/moonscript )
"
REQUIRED_USE="|| ( alsa openal oss portaudio pulseaudio )"
PATCHES=(
)
pkg_setup() {
lua-single_pkg_setup
}
src_unpack() {
default_src_unpack
git-r3_src_unpack
if use bestsource; then
git-r3_fetch "https://github.com/vapoursynth/bestsource.git" "ba1249c1f5443be6d0ec2be32490af5bbc96bf99"
git-r3_checkout "https://github.com/vapoursynth/bestsource.git" "${S}/subprojects/bestsource"
fi
}
src_prepare() {
default_src_prepare
# Remove tests that require unavailable uuid Lua module.
rm automation/tests/modules/lfs.moon || die
remove_locale() {
rm "po/${1}.po" || die
}
plocale_find_changes 'po' '' '.po'
plocale_for_each_disabled_locale remove_locale
use dependencycontrol && sed -i 's|#!/bin/sh|#!/bin/bash|' "${WORKDIR}/ffi-experiments-${_ffiexpver}/BuildLua.sh"
}
src_configure() {
setup-wxwidgets
use dependencycontrol && \
EMESON_SOURCE="${WORKDIR}/ffi-experiments-${_ffiexpver}" \
BUILD_DIR="${WORKDIR}/ffi-experiments-build" \
meson_src_configure
use bestsource && meson subprojects packagefiles --apply bestsource
local emesonargs=(
-Dalsa=$(usex alsa enabled disabled)
-Dopenal=$(usex openal enabled disabled)
-Dlibpulse=$(usex pulseaudio enabled disabled)
-Dportaudio=$(usex portaudio enabled disabled)
-Dvapoursynth=$(usex vapoursynth enabled disabled)
-Dbestsource=$(usex bestsource enabled disabled)
#-Doss=$(usex oss true false)
-Dfftw3=$(usex fftw enabled disabled)
-Dffms2=enabled
-Dhunspell=$(usex spell enabled disabled)
-Duchardet=$(usex uchardet enabled disabled)
-Dsystem_luajit=true
-Dlocal_boost=false
-Dbuild_appimage=false
-Dbuild_osx_bundle=false
-Dtests=$(usex test true false)
)
meson_src_configure
}
src_compile() {
use dependencycontrol && BUILD_DIR="${WORKDIR}/ffi-experiments-build" meson_src_compile
meson_src_compile
}
src_install() {
meson_src_install
if use dependencycontrol; then
ffi_build="${WORKDIR}/ffi-experiments-build"
automation_dir="/usr/share/aegisub/automation"
insinto "$automation_dir/include/BM/BadMutex"
doins "${ffi_build}/bad-mutex/libBadMutex.so"
insinto "$automation_dir/include/BM"
doins "${ffi_build}/bad-mutex/BadMutex.lua"
insinto "$automation_dir/include/DM/DownloadManager"
doins "${ffi_build}/download-manager/libDownloadManager.so"
insinto "$automation_dir/include/DM"
doins "${ffi_build}/download-manager/DownloadManager.lua"
insinto "$automation_dir/include/PT/PreciseTimer"
doins "${ffi_build}/precise-timer/libPreciseTimer.so"
insinto "$automation_dir/include/PT"
doins "${ffi_build}/precise-timer/PreciseTimer.lua"
insinto "$automation_dir/include/requireffi"
doins "${ffi_build}/requireffi/requireffi.lua"
insinto "$automation_dir/include/l0"
doins "${WORKDIR}/DependencyControl-${_depctrlver}/modules/DependencyControl.moon"
doins -r "${WORKDIR}/DependencyControl-${_depctrlver}/modules/DependencyControl"
insinto "$automation_dir/autoload"
doins "${WORKDIR}/DependencyControl-${_depctrlver}/macros/l0.DependencyControl.Toolbox.moon"
insinto "$automation_dir/include"
doins "${WORKDIR}/luajson-${_luajsonver}/lua/json.lua"
doins -r "${WORKDIR}/luajson-${_luajsonver}/lua/json"
fi
}
pkg_preinst() {
gnome2_icon_savelist
}
pkg_postinst() {
gnome2_icon_cache_update
xdg_desktop_database_update
xdg_icon_cache_update
}
pkg_postrm() {
gnome2_icon_cache_update
xdg_desktop_database_update
xdg_icon_cache_update
}