mirror of
https://github.com/dart-lang/sdk
synced 2024-09-06 00:59:09 +00:00
![Aske Simon Christensen](/assets/img/avatar_default.png)
This adds a --platform= option to dart2wasm to read the SDK libraries from that dill file instead of compiling them from source every time. If the option is not given, the SDK libraries are compiled, like before. Also adds a "dart2wasm" build target, which will build the dart2wasm platform dill and compile dart2wasm to two AOT snapshots (with and without asserts). The dart2wasm scripts in sdk/bin are updated to run via these snapshots and use this platform dill. This speeds up test runs for the dart2wasm-hostasserts-linux-x64-d8 configuration by approximately 45x. Change-Id: If2c7750a6eb39725310745f887792784d0dfc583 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/243624 Commit-Queue: Aske Simon Christensen <askesc@google.com> Reviewed-by: William Hesse <whesse@google.com> Reviewed-by: Joshua Litt <joshualitt@google.com>
65 lines
1.9 KiB
Bash
Executable file
65 lines
1.9 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
|
|
# for details. All rights reserved. Use of this source code is governed by a
|
|
# BSD-style license that can be found in the LICENSE file.
|
|
|
|
# Run dart2wasm on the Dart VM. This script assumes the Dart repo's
|
|
# directory structure.
|
|
|
|
function follow_links() {
|
|
file="$1"
|
|
while [ -h "$file" ]; do
|
|
# On Mac OS, readlink -f doesn't work.
|
|
file="$(readlink "$file")"
|
|
done
|
|
echo "$file"
|
|
}
|
|
|
|
# Unlike $0, $BASH_SOURCE points to the absolute path of this file.
|
|
PROG_NAME="$(follow_links "$BASH_SOURCE")"
|
|
|
|
# Handle the case where dart-sdk/bin has been symlinked to.
|
|
PROG_DIR="$(cd "${PROG_NAME%/*}" ; pwd -P)"
|
|
SDK_DIR="$(cd "${PROG_DIR}/../.." ; pwd -P)"
|
|
|
|
# Locate build directory, containing executables, snapshots and platform dill.
|
|
if [[ `uname` == 'Darwin' ]]; then
|
|
OUT_DIR="$SDK_DIR/xcodebuild"
|
|
else
|
|
OUT_DIR="$SDK_DIR/out"
|
|
fi
|
|
DART_CONFIGURATION=${DART_CONFIGURATION:-ReleaseX64}
|
|
BIN_DIR="$OUT_DIR/$DART_CONFIGURATION"
|
|
|
|
DART_PRECOMPILED_RUNTIME="$BIN_DIR/dart_precompiled_runtime"
|
|
|
|
# Point to SDK directory.
|
|
SDK_ARG="--dart-sdk=$SDK_DIR"
|
|
|
|
# Point to built platform dill.
|
|
PLATFORM="$BIN_DIR/dart2wasm_platform.dill"
|
|
PLATFORM_ARG="--platform=$PLATFORM"
|
|
|
|
unset EXTRA_VM_OPTIONS
|
|
declare -a EXTRA_VM_OPTIONS
|
|
|
|
# Choose snapshot with or without asserts enabled.
|
|
SNAPSHOT_NAME="dart2wasm"
|
|
case $0 in
|
|
*_developer)
|
|
EXTRA_VM_OPTIONS+=('--enable_asserts')
|
|
SNAPSHOT_NAME="dart2wasm_asserts"
|
|
;;
|
|
esac
|
|
SNAPSHOT="$BIN_DIR/$SNAPSHOT_NAME.snapshot"
|
|
|
|
# We allow extra vm options to be passed in through an environment variable.
|
|
if [[ $DART_VM_OPTIONS ]]; then
|
|
read -a OPTIONS <<< "$DART_VM_OPTIONS"
|
|
EXTRA_VM_OPTIONS+=("${OPTIONS[@]}")
|
|
fi
|
|
|
|
DART_ROOT="$(cd "${SDK_DIR}/.." ; pwd -P)"
|
|
|
|
exec "$DART_PRECOMPILED_RUNTIME" "--packages=$DART_ROOT/.packages" "${EXTRA_VM_OPTIONS[@]}" "$SNAPSHOT" "$SDK_ARG" "$PLATFORM_ARG" "$@"
|