blob: 6c656f84c81d04d591afad28fdaf47741293e5b7 [file] [log] [blame]
# Copyright 2022 The Chromium OS Authors. All rights reserved.
# Distributed under the terms of the GNU General Public License v3
#
# JavaScript/Web assembly port of the Pumpkin semantic parser.
EAPI=7
inherit cros-workon dlc
DESCRIPTION='Pumpkin is a semantic parser built using web assembly and a
JavaScript API. This DLC downloads the web assembly, JavaScript wrapper, and
locale-specific binary files, which are all built in google3. Pumpkin is
currently used by accessibility services on Chrome OS.'
HOMEPAGE=""
SRC_URI="gs://chromeos-localmirror/distfiles/${PN}-1.0.tar.xz"
LICENSE="BSD-Google"
SLOT="0"
KEYWORDS="~*"
IUSE="dlc"
REQUIRED_USE="dlc"
# "cros_workon info" expects these variables to be set, so use the standard
# empty project.
CROS_WORKON_PROJECT="chromiumos/infra/build/empty-project"
CROS_WORKON_LOCALNAME="../platform/empty-project"
# DLC variables.
# 4KB * 1624 = ~6.5MB
DLC_PREALLOC_BLOCKS="1624"
DLC_PRELOAD=true
S="${WORKDIR}"
src_unpack() {
local archive="${SRC_URI##*/}"
unpack "${archive}"
}
src_install() {
# Install main Pumpkin WASM and PumpkinTagger JS wrapper files.
into "$(dlc_add_path /)"
insinto "$(dlc_add_path /)"
exeinto "$(dlc_add_path /)"
doins js_pumpkin_tagger_bin.js tagger_wasm_main.js tagger_wasm_main.wasm
# Install binary Pumpkin configs for each supported locale.
local locales=("en_us" "fr_fr" "es_es" "de_de" "it_it")
for locale in "${locales[@]}"; do
doins -r "${locale}"
done
dlc_src_install
}