diff --git a/SpatialGDK/Build/Scripts/ExternalSchemaCodegen.bat b/SpatialGDK/Build/Scripts/ExternalSchemaCodegen.bat index 81fd7ccc51..050bfd9e3f 100644 --- a/SpatialGDK/Build/Scripts/ExternalSchemaCodegen.bat +++ b/SpatialGDK/Build/Scripts/ExternalSchemaCodegen.bat @@ -1,7 +1,8 @@ -@echo off +@echo off -IF NOT "%~2"=="" IF "%~3"=="" GOTO START -ECHO This script requires two parameters (both defined relative to project root): +IF NOT "%~3"=="" IF "%~4"=="" GOTO START +ECHO This script requires three parameters (the first parameter is the project root and the other parameters should be defined relative to project root): +ECHO - path to your project root containing the 'spatial' folder ECHO - path to external schema directory ECHO - target output folder for generated code exit /b 1 @@ -9,18 +10,18 @@ exit /b 1 :START call :MarkStartOfBlock "Setup variables" + pushd %1 + set GAME_FOLDER=%cd% + popd pushd %~dp0\..\..\.. set GDK_FOLDER=%cd% - pushd ..\..\.. - set GAME_FOLDER=%cd% - set SCHEMA_COMPILER_PATH=%GDK_FOLDER%\SpatialGDK\Binaries\ThirdParty\Improbable\Programs\schema_compiler.exe - set CODEGEN_EXE_PATH=%GDK_FOLDER%\SpatialGDK\Binaries\ThirdParty\Improbable\Programs\CodeGenerator.exe - set SCHEMA_STD_COPY_DIR=%GAME_FOLDER%\spatial\build\dependencies\schema\standard_library - set SPATIAL_SCHEMA_FOLDER=%GAME_FOLDER%\spatial\schema - set BUNDLE_CACHE_DIR=%GDK_FOLDER%\SpatialGDK\Intermediate\ExternalSchemaCodegen - set SCHEMA_BUNDLE_FILE_NAME=external_schema_bundle.json - popd - popd + set SCHEMA_COMPILER_PATH=%GDK_FOLDER%\SpatialGDK\Binaries\ThirdParty\Improbable\Programs\schema_compiler.exe + set CODEGEN_EXE_PATH=%GDK_FOLDER%\SpatialGDK\Binaries\ThirdParty\Improbable\Programs\CodeGenerator.exe + set SCHEMA_STD_COPY_DIR=%GAME_FOLDER%\spatial\build\dependencies\schema\standard_library + set SPATIAL_SCHEMA_FOLDER=%GAME_FOLDER%\spatial\schema + set BUNDLE_CACHE_DIR=%GDK_FOLDER%\SpatialGDK\Intermediate\ExternalSchemaCodegen + set SCHEMA_BUNDLE_FILE_NAME=external_schema_bundle.json + popd call :MarkEndOfBlock "Setup variables" call :MarkStartOfBlock "Clean folders" @@ -33,19 +34,19 @@ call :MarkEndOfBlock "Create folders" if not exist "%SCHEMA_COMPILER_PATH%" ( - echo Error: Schema compiler executable not found at "%SCHEMA_COMPILER_PATH%" ! Please run Setup.bat in your UnrealGDK root to generate it. - exit /b 1 + echo Error: Schema compiler executable not found at "%SCHEMA_COMPILER_PATH%" ! Please run Setup.bat in your UnrealGDK root to generate it. + exit /b 1 ) if not exist "%SCHEMA_STD_COPY_DIR%" ( - echo Error: Could not locate SpatialOS standard library files at "%SCHEMA_STD_COPY_DIR%" ! Please run Setup.bat in your UnrealGDK root to generate it. - exit /b 1 + echo Error: Could not locate SpatialOS standard library files at "%SCHEMA_STD_COPY_DIR%" ! Please run Setup.bat in your UnrealGDK root to generate it. + exit /b 1 ) call :MarkStartOfBlock "Collecting external schema files" set EXTERNAL_SCHEMA_FILES= setlocal enabledelayedexpansion -FOR /F %%i in ('dir /s/b "%GAME_FOLDER%\%1\*.schema"') do ( set "EXTERNAL_SCHEMA_FILES=!EXTERNAL_SCHEMA_FILES! %%i" ) +FOR /F %%i in ('dir /s/b "%GAME_FOLDER%\%2\*.schema"') do ( set "EXTERNAL_SCHEMA_FILES=!EXTERNAL_SCHEMA_FILES! %%i" ) setlocal disabledelayedexpansion call :MarkEndOfBlock "Collecting external schema files" @@ -54,16 +55,16 @@ call :MarkStartOfBlock "Running schema compiler" call :MarkEndOfBlock "Running schema compiler" if not exist "%CODEGEN_EXE_PATH%" ( - echo Error: Codegen executable not found at "%CODEGEN_EXE_PATH%"! Please run Setup.bat in your UnrealGDK root to generate it. - exit /b 1 + echo Error: Codegen executable not found at "%CODEGEN_EXE_PATH%"! Please run Setup.bat in your UnrealGDK root to generate it. + exit /b 1 ) call :MarkStartOfBlock "Running code generator" -%CODEGEN_EXE_PATH% --input-bundle "%BUNDLE_CACHE_DIR%\%SCHEMA_BUNDLE_FILE_NAME%" --output-dir "%GAME_FOLDER%\%2" +%CODEGEN_EXE_PATH% --input-bundle "%BUNDLE_CACHE_DIR%\%SCHEMA_BUNDLE_FILE_NAME%" --output-dir "%GAME_FOLDER%\%3" if ERRORLEVEL 1 ( - echo Error: Code generation failed - pause - exit /b 1 + echo Error: Code generation failed + pause + exit /b 1 ) echo Code successfully generated at "%GAME_FOLDER%\%2" call :MarkEndOfBlock "Running code generator"