#!/usr/bin/env bash # set -x # go.sh [systems] # # Convenience script to generate systems. Do not call from build steps or tests # - call fremontcutbuilder and dartdomgenerator instead. Do not add 'real' # functionality here - change the python code instead. # # I find it essential to generate all the systems so I know if I am breaking # other systems. My habit is to run: # # ./go.sh | tee Q # # I can inspect file Q if needed. # # Re-gen all sdk/lib files # # The following gives a picture of the changes due to 'work' # # git checkout master # select client without changes # ./go.sh # mv ../generated ../generated0 # save generated files # git checkout work # select client with changes # ./go.sh # meld ../generated0 ../generated # compare directories with too SYSTEMS="htmldart2js" if [[ "$1" != "" ]] ; then if [[ "$1" =~ ^-- ]]; then ARG_OPTION="$1" fi fi # vpython3 is available through depot_tools. See # https://github.com/dart-lang/sdk/wiki/Building for instructions on installing # depot_tools. reset && \ vpython3 ./dartdomgenerator.py --systems="$SYSTEMS" --logging=40 --update-dom-metadata --gen-interop "$ARG_OPTION" # Build the platform dill to be used by the bindings emitter. cd ../../.. ./tools/build.py -m release compile_dart2js_platform cd ./tools/dom/scripts # Calculate, emit, and format the bindings. BINDINGS="../web_library_bindings.dart" dart --enable-asserts ./web_library_bindings_emitter.dart $BINDINGS dart format $BINDINGS