JD2022-TU1/main/extern/UbiServices/upstream/build/build_ubiservices.bat

173 lines
8 KiB
Batchfile

@echo off
set CONFIGURATION_DIR=%~dp0..\_configurations
set BUILD_ERROR=0
:CLEAN
del /F "%~dp0\build.*?.out" >nul 2>&1
del /F "%~dp0\builds.*?.out" >nul 2>&1
:BUILD
if exist %CONFIGURATION_DIR%\platformsConfiguration (
copy /y %CONFIGURATION_DIR%\platformsConfiguration %CONFIGURATION_DIR%\platformsConfiguration.bat
call %CONFIGURATION_DIR%\platformsConfiguration.bat
del /q /f %CONFIGURATION_DIR%\platformsConfiguration.bat
Setlocal EnableDelayedExpansion
if "!platformCount!"=="" (
echo.
echo. ##############################################################################
echo.
echo. One platform must be at least targeted. Edit the file platformsConfiguration at $[packageRoot]/_configurations
echo.
echo. ##############################################################################
set BUILD_ERROR=5
)
Setlocal DisableDelayedExpansion
goto:EXIT
) else (
goto:PROMPT
)
:PROMPT
if [%1] == [] (
REM Without parameter, we ask choice for modules activation
set /p modules_activation="Enter TRUE or FALSE to define the default state(ON or OFF) for Ubiservices SDK's modules: "
goto:CHECK_MODULE_ACTIVATION
)
echo Command line parameter:%1
REM With parameter, we use provided selection
if %1 == modules_all_on (
set modules_activation=TRUE
goto:CHECK_MODULE_ACTIVATION
)
if %1 == modules_all_off (
set modules_activation=FALSE
goto:CHECK_MODULE_ACTIVATION
)
REM Provided parameter is invalid !!!
echo. There was an error with the input. The only command line accepted parameter are modules_all_on or modules_all_off.
echo. Ex: build_ubiservices.bat modules_all_on
set BUILD_ERROR=5
goto:EXIT
:CHECK_MODULE_ACTIVATION
if not "%modules_activation%"=="TRUE" (
if not "%modules_activation%"=="FALSE" (
echo. There was an error with the input. The only values accepted are TRUE or FALSE.
set BUILD_ERROR=5
goto:EXIT
)
)
goto:GENERATE
:GENERATE
mkdir %CONFIGURATION_DIR%
copy /Y %~dp0private\platformsConfiguration %CONFIGURATION_DIR%
copy /Y %~dp0private\cmake\productConfiguration.template.cmake %CONFIGURATION_DIR%\productConfiguration.cmake
copy /Y %~dp0private\cmake\harbourConfiguration.template.cmake %CONFIGURATION_DIR%\harbourConfiguration.cmake
attrib -r %CONFIGURATION_DIR%\productConfiguration.cmake
attrib -r %CONFIGURATION_DIR%\harbourConfiguration.cmake
attrib -r %CONFIGURATION_DIR%\platformsConfiguration
set US_SED_EXE=%~dp0..\external\tools\sed\sed
pushd %CONFIGURATION_DIR%
rem The following options are flags for the _configuration/productConfiguration.cmake file
%US_SED_EXE% -i s/${US_USE_PRIVATE_EXTERNAL_HARBOUR_CONFIGURATION}//g productConfiguration.cmake
%US_SED_EXE% -i s/${US_PRIVATE_HARBOUR_CONFIGURATION_PATH}//g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_LOG_ENABLED_RETAIL}/FALSE/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_HIDE_DEBUG_INFO_IN_RETAIL}/FALSE/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_STEAM_AUTHENTICATION}/FALSE/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_ENABLE_UBIMOBILE}/FALSE/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_PC_USES_UNMANAGED_PRIMARY_STORE}/FALSE/g productConfiguration.cmake
rem The following options are flags for the unity configuration inside the configuration/productConfiguration.cmake file
%US_SED_EXE% -i s/${US_USE_PRIVATE_UNITY3D_PATH}/FALSE/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_PRIVATE_UNIY3D_PATH}//g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_APPLICATION}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_BATTLEPASS}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_BLOCKLIST}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_CHALLENGE}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_CLUB}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_ENTITY}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_FRIEND}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_GAMESPLAYED}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_LEADERBOARD}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_LOCALIZATION}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_MATCHMAKING}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_MODERATION}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_NEWS}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_PERSONA}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_PLAYER_ONLINE_STATUS}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_PLAYERREPORTS}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_PROFILE}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_RECOMMENDATIONS}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_SECONDARYSTORE_INSTANTIATION}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_STATS}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_STORE}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_TLOG}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_UGC}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_UPLAY}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_USER}/%modules_activation%/g productConfiguration.cmake
%US_SED_EXE% -i s/${US_USE_PRIVATE_US_MODULE_VOICECHAT}/%modules_activation%/g productConfiguration.cmake
rem The following options are flags for the _configuration/harbourConfiguration.cmake file
rem ---- EAL configuration ----
%US_SED_EXE% -i s/${HARBOUR_PRIVATE_BUILD_HARBOUR_EAL}//g harbourConfiguration.cmake
%US_SED_EXE% -i s/${HARBOUR_PRIVATE_EAL_INCLUDE_DIRECTORY}//g harbourConfiguration.cmake
rem ---- libraries(ubiservices, rdv, harbourEal, etc) outputs ----
%US_SED_EXE% -i s/${HARBOUR_PRIVATE_LIB_OUTPUT_DIRECTORY}//g harbourConfiguration.cmake
rem ---- sharpmake configuration ----
%US_SED_EXE% -i s/${HARBOUR_PRIVATE_GENERATE_SHARPMAKE_INTERFACES}//g harbourConfiguration.cmake
rem ---- OpenSSL: configuration ----
%US_SED_EXE% -i s/${HARBOUR_PRIVATE_USE_DEPRECATED_OPENSSL_1_0_2}//g harbourConfiguration.cmake
%US_SED_EXE% -i s/${HARBOUR_PRIVATE_USE_LATEST_OPENSSL_WITH_QUIC_SUPPORT}//g harbourConfiguration.cmake
rem ---- blob and unicode configuration ----
%US_SED_EXE% -i s/${HARBOUR_PRIVATE_USE_BLOB}/TRUE/g harbourConfiguration.cmake
%US_SED_EXE% -i s/${HARBOUR_PRIVATE_USE_UNICODE}/FALSE/g harbourConfiguration.cmake
rem ---- XBoxOne C++11 live sdk ----
%US_SED_EXE% -i s/${HARBOUR_PRIVATE_XBOXLIVESDKCPP_INCLUDE_DIR}//g harbourConfiguration.cmake
%US_SED_EXE% -i s/${HARBOUR_PRIVATE_XBOXLIVESDKCPP_CPPRESTSDK_INCLUDE_DIR}//g harbourConfiguration.cmake
del /F "sed*"
popd
echo. ##############################################################################
echo.
echo. Generating platformsConfiguration, productConfiguration.cmake, harbourConfiguration.cmake at location : %CONFIGURATION_DIR%
echo. To run this build script again , these configuration files must be edited properly.
echo.
echo. ##############################################################################
set BUILD_ERROR=5
goto:EXIT
:EXIT
echo.
echo ... Exit build process (%BUILD_ERROR%)
echo.
pause
EXIT /B %BUILD_ERROR%