# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 WX_GTK_VER=3.0 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 gnome2-utils l10n 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="meson" _depctrlver="0.6.3-alpha" _ffiexpver=e8d9c915390aaa8ffa1d220f4696f4fe2ca6ae6e _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 libressl dependency_control" 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,threads] 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 ) libressl? ( dev-libs/libressl:0 ) !libressl? ( >=dev-libs/openssl-1.0.1h-r2:0 ) fonts? ( media-fonts/japan7-fonts-ttf ) " DEPEND="${RDEPEND} dev-util/intltool sys-devel/gettext virtual/pkgconfig dependency_control? ( dev-lua/moonscript ) " REQUIRED_USE="|| ( alsa openal oss portaudio pulseaudio )" PATCHES=( ) src_unpack() { default_src_unpack git-r3_src_unpack } src_prepare() { default_src_prepare sed -i 's/(unnamed branch)/master/g' tools/version.sh # 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 ) meson_src_configure } src_compile() { use dependency_control && BUILD_DIR="${WORKDIR}/ffi-experiments-build" meson_src_compile all lua 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 }