| :: TODO(yjbanov): migrate LUCI to felt.bat and delete this file. | |
| :: 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 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 SDK_PREBUILTS_DIR=%FLUTTER_DIR%\prebuilts | |
| SET PREBUILT_TARGET=windows-x64 | |
| IF NOT DEFINED DART_SDK_DIR ( | |
| SET DART_SDK_DIR=%SDK_PREBUILTS_DIR%\%PREBUILT_TARGET%\dart-sdk | |
| ) | |
| :: 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 | |
| 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(yjbanov): The batch script does not support snapshot option. | |
| :: Support snapshot option. | |
| CALL :installdeps | |
| IF "%1"=="test" (%DART_SDK_DIR%\bin\dart %DEV_DIR%\felt.dart %* --browser=chrome) ELSE ( %DART_SDK_DIR%\bin\dart %DEV_DIR%\felt.dart %* ) | |
| EXIT /B %ERRORLEVEL% | |
| :installdeps | |
| ECHO "Running \`pub get\` in 'engine/src/flutter/web_sdk/web_engine_tester'" | |
| cd "%FLUTTER_DIR%web_sdk\web_engine_tester" | |
| CALL %DART_SDK_DIR%\bin\dart pub get | |
| ECHO "Running \`pub get\` in 'engine/src/flutter/lib/web_ui'" | |
| cd %WEB_UI_DIR% | |
| CALL %DART_SDK_DIR%\bin\dart pub get | |
| EXIT /B 0 |