@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%