194 lines
5.8 KiB
Bash
194 lines
5.8 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
|
|
bestsource_rev=$(python -c 'import re; from pathlib import Path; f = Path("subprojects/bestsource.wrap"); re_match = re.search(r"revision *= *(.*)", f.read_text()); print(re_match.group(1))')
|
|
git-r3_fetch "https://github.com/vapoursynth/bestsource.git" "${bestsource_rev}"
|
|
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
|
|
}
|