# 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.0-gtk3 PLOCALES="ar 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 DESCRIPTION="Advanced subtitle editor" HOMEPAGE="http://www.aegisub.org/ https://github.com/Aegisub/Aegisub" EGIT_REPO_URI="https://github.com/odrling/${PN^}.git" EGIT_BRANCH="master" _depctrlver="0.6.3-alpha" _ffiexpver=b8897ead55b84ec4148e900882bff8336b38f939 _luajsonver=1.3.3 SRC_URI="dependency_control? ( 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" KEYWORDS="" IUSE="+alsa +fonts debug +fftw openal oss portaudio pulseaudio spell +uchardet dependency_control test" 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-sound/pulseaudio ) spell? ( app-text/hunspell:= ) uchardet? ( app-i18n/uchardet ) >=dev-libs/openssl-1.0.1h-r2:0 fonts? ( media-fonts/japan7-fonts-ttf ) " DEPEND="${RDEPEND} >=dev-util/meson-0.56.0 dev-util/intltool sys-devel/gettext virtual/pkgconfig dependency_control? ( 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 } 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 } l10n_find_plocales_changes 'po' '' '.po' l10n_for_each_disabled_locale_do remove_locale use dependency_control && sed -i 's|#!/bin/sh|#!/bin/bash|' "${WORKDIR}/ffi-experiments-${_ffiexpver}/BuildLua.sh" } src_configure() { setup-wxwidgets use dependency_control && EMESON_SOURCE="${WORKDIR}/ffi-experiments-${_ffiexpver}" BUILD_DIR="${WORKDIR}/ffi-experiments-build" meson_src_configure local emesonargs=( -Dalsa=$(usex alsa enabled disabled) -Dopenal=$(usex openal enabled disabled) -Dlibpulse=$(usex pulseaudio enabled disabled) -Dportaudio=$(usex portaudio 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 -Dtests=$(usex test true false) ) meson_src_configure } src_compile() { use dependency_control && BUILD_DIR="${WORKDIR}/ffi-experiments-build" meson_src_compile meson_src_compile } src_install() { meson_src_install if use dependency_control; 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 } pkg_postrm() { gnome2_icon_cache_update xdg_desktop_database_update }