Add JavaScriptCore as a third-party optional download to DEPS

Add the javascript shell WebKit JavaScriptCore as an optional
download in third_party/jsc. This is a CIPD download, and includes
an update.sh script to upload a new version of jsc to CIPD and
update DEPS.

Bug: b/322134579
Change-Id: I94902ccdff3d121e5be51ef6eeab595fc24ad7e3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/348161
Commit-Queue: William Hesse <whesse@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
This commit is contained in:
William Hesse 2024-01-24 13:21:02 +00:00 committed by Commit Queue
parent 6788b733f3
commit 462360f3db
3 changed files with 54 additions and 0 deletions

9
DEPS
View file

@ -72,6 +72,7 @@ vars = {
"checkout_javascript_engines": False,
"d8_tag": "version:12.1.131",
"jsshell_tag": "version:120.0",
"jsc_tag": "version:273394",
# https://chrome-infra-packages.appspot.com/p/fuchsia/third_party/clang
"clang_version": "git_revision:b3a9e8f7c0afb00147ab6c6a6ad426de149420dd",
@ -251,6 +252,14 @@ deps = {
"condition": "checkout_javascript_engines",
"dep_type": "cipd",
},
Var("dart_root") + "/third_party/jsc": {
"packages": [{
"package": "dart/third_party/jsc/linux-amd64",
"version": Var("jsc_tag"),
}],
"condition": "checkout_javascript_engines and host_os == 'linux' and host_cpu == 'x64'",
"dep_type": "cipd",
},
Var("dart_root") + "/third_party/devtools": {
"packages": [{
"package": "dart/third_party/flutter/devtools",

11
third_party/jsc/README.google vendored Normal file
View file

@ -0,0 +1,11 @@
Name: The WebKit JavaScriptCore shell.
Short Name: jsc
URL: https://webkitgtk.org/jsc-built-products/x86_64/release/
Version: 273394@main
Date: January 24, 2024
License: GPL-2.0, https://opensource.org/license/gpl-2-0/
Description:
This directory contains the Webkit JavaScriptCore shell binaries.
The binaries are used for testing dart code compiled to javascript.

34
third_party/jsc/update.sh vendored Executable file
View file

@ -0,0 +1,34 @@
#!/usr/bin/env bash
# Uploads a new version of the checked in jsc CIPD packages
# jsc is the JavaScriptCore shell from WebKit.
#
# Only the latest builds for the last few days are available
# for download. They are indexed by build number.
# This script only downloads the latest build, and uploads
# it to CIPD with the build number as the version tag.
# It updates DEPS to download that version of jsc from CIPD.
set -ex
tmpdir=$(mktemp -d)
cleanup() {
rm -rf "$tmpdir"
}
trap cleanup EXIT HUP INT QUIT TERM PIPE
pushd "$tmpdir"
URL=https://webkitgtk.org/jsc-built-products/x86_64/release
LATEST=$(curl $URL/LAST-IS)
VERSION=${LATEST%@main.zip}
curl $URL/$LATEST --output main.zip
filename="main.zip"
unzip -q $filename -d jsc
cipd create \
-name dart/third_party/jsc/linux-amd64 \
-in jsc \
-install-mode copy \
-tag version:$VERSION
rm $filename
rm -rf jsc
popd
gclient setdep --var="jsc_tag=version:$VERSION"