blob: bacd1b0d509751c33c56695790e7640b4bfa37de [file] [log] [blame]
:: felt_windows: a command-line utility for Windows for building and testing
:: Flutter web engine.
:: FELT stands for Flutter Engine Local Tester.
@ECHO OFF
SETLOCAL
FOR /F "tokens=1-2 delims=:" %%a in ('where gclient') DO SET GCLIENT_PATH=%%b
IF %GCLIENT_PATH%==[] (ECHO "ERROR: gclient is not in your PATH")
FOR /F "tokens=1-2 delims=:" %%a in ('where ninja') DO SET NINJA_PATH=%%b
IF %NINJA_PATH%==[] (ECHO "ERROR: ninja is not in your PATH")
SET FELT_DIR=%~dp0
:: web_ui directory is the parent of felt directory.
FOR %%a IN ("%FELT_DIR:~0,-1%") DO SET WEB_UI_DIR=%%~dpa
:: Flutter Directory is grandparent of web_ui directory.
FOR %%a IN ("%WEB_UI_DIR:~0,-1%") DO SET orTempValue=%%~dpa
FOR %%a IN ("%orTempValue:~0,-1%") DO SET FLUTTER_DIR=%%~dpa
:: Engine source directory is the parent of flutter directory.
FOR %%a IN ("%FLUTTER_DIR:~0,-1%") DO SET ENGINE_SRC_DIR=%%~dpa
SET DEV_DIR="%WEB_UI_DIR%dev"
SET OUT_DIR="%ENGINE_SRC_DIR%out"
SET HOST_DEBUG_UNOPT_DIR="%ENGINE_SRC_DIR%out\host_debug_unopt"
SET DART_SDK_DIR=%ENGINE_SRC_DIR%out\host_debug_unopt\dart-sdk
SET PUB_DIR="%DART_SDK_DIR%\bin\pub"
SET SCRIPT_PATH="%DEV_DIR%felt.dart"
SET STAMP_PATH="%DART_TOOL_DIR%felt.snapshot.stamp"
SET GN="%FLUTTER_DIR%tools\gn"
SET DART_TOOL_DIR="%WEB_UI_DIR%.dart_tool"
SET SNAPSHOT_PATH="%DART_TOOL_DIR%felt.snapshot"
:: Set revision from using git in Flutter directory.
CD %FLUTTER_DIR%
FOR /F "tokens=1 delims=:" %%a in ('git rev-parse HEAD') DO SET REVISION=%%a
:: Uncomment for debugging the values.
:: ECHO "FELT_DIR:%FELT_DIR%"
:: ECHO "WEB_UI_DIR:%WEB_UI_DIR%"
:: ECHO "FLUTTER_DIR:%FLUTTER_DIR%"
:: ECHO "ENGINE_SRC_DIR:%ENGINE_SRC_DIR%"
:: ECHO "REVISION:%REVISION%"
SET orTempValue=1
IF NOT EXIST %OUT_DIR% (SET orTempValue=0)
IF NOT EXIST %HOST_DEBUG_UNOPT_DIR% (SET orTempValue=0)
IF %orTempValue%==0 (
ECHO "Compiling the Dart SDK."
CALL gclient sync
CALL python %GN% --unoptimized --full-dart-sdk
CALL ninja -C %HOST_DEBUG_UNOPT_DIR%)
:: TODO(nurhan): The batch script does not support snanphot option.
:: Support snapshot option.
CALL :installdeps
IF %1==test (%DART_SDK_DIR%\bin\dart "%DEV_DIR%\felt.dart" %* --browser=edge) ELSE ( %DART_SDK_DIR%\bin\dart "%DEV_DIR%\felt.dart" %* )
EXIT /B 0
:installdeps
ECHO "Running \`pub get\` in 'engine/src/flutter/web_sdk/web_engine_tester'"
cd "%FLUTTER_DIR%web_sdk\web_engine_tester"
CALL %PUB_DIR% get
ECHO "Running \`pub get\` in 'engine/src/flutter/lib/web_ui'"
cd %WEB_UI_DIR%
CALL %PUB_DIR% get
EXIT /B 0