1@ECHO OFF 2 3SETLOCAL 4 5SET EXITCODE=0 6 7SET clean=false 8SET addon= 9 10SETLOCAL EnableDelayedExpansion 11FOR %%b IN (%*) DO ( 12 IF %%b == clean ( 13 SET clean=true 14 ) ELSE ( 15 SET addon=!addon! %%b 16 ) 17) 18SETLOCAL DisableDelayedExpansion 19 20rem set Visual C++ build environment 21call "%VS140COMNTOOLS%..\..\VC\bin\amd64\vcvars64.bat" || call "%VS140COMNTOOLS%..\..\VC\bin\vcvars32.bat" 22 23SET WORKDIR=%WORKSPACE% 24 25IF "%WORKDIR%" == "" ( 26 SET WORKDIR=%CD%\..\.. 27) 28 29rem setup some paths that we need later 30SET CUR_PATH=%CD% 31SET BASE_PATH=%WORKDIR%\cmake 32SET SCRIPTS_PATH=%BASE_PATH%\scripts\windows 33SET ADDONS_PATH=%BASE_PATH%\addons 34SET ADDON_DEPENDS_PATH=%ADDONS_PATH%\output 35SET ADDONS_BUILD_PATH=%ADDONS_PATH%\build 36SET ADDONS_DEFINITION_PATH=%ADDONS_PATH%\addons 37 38SET ERRORFILE=%ADDONS_PATH%\make-addons.error 39 40IF %clean% == true ( 41 rem remove the build directory if it exists 42 IF EXIST "%ADDONS_BUILD_PATH%" ( 43 RMDIR "%ADDONS_BUILD_PATH%" /S /Q > NUL 44 ) 45 46 rem remove the build directory if it exists 47 IF EXIST "%ADDON_DEPENDS_PATH%" ( 48 RMDIR "%ADDON_DEPENDS_PATH%" /S /Q > NUL 49 ) 50 51 GOTO END 52) 53 54rem create the depends directory 55IF NOT EXIST "%ADDON_DEPENDS_PATH%" MKDIR "%ADDON_DEPENDS_PATH%" 56 57rem create the build directory 58IF NOT EXIST "%ADDONS_BUILD_PATH%" MKDIR "%ADDONS_BUILD_PATH%" 59 60rem go into the build directory 61CD "%ADDONS_BUILD_PATH%" 62 63ECHO -------------------------------------------------- 64ECHO Preparing addons development environment 65ECHO -------------------------------------------------- 66 67SET ADDONS_TO_BUILD= 68IF "%addon%" NEQ "" ( 69 SET ADDONS_TO_BUILD=%addon% 70) ELSE ( 71 SETLOCAL EnableDelayedExpansion 72 FOR /D %%a IN (%ADDONS_DEFINITION_PATH%\*) DO ( 73 SET ADDONS_TO_BUILD=!ADDONS_TO_BUILD! %%~nxa 74 ) 75 SETLOCAL DisableDelayedExpansion 76) 77 78rem execute cmake to generate Visual Studio 12 project files 79cmake "%ADDONS_PATH%" -G "Visual Studio 16 2019" ^ 80 -DCMAKE_BUILD_TYPE=Release ^ 81 -DCMAKE_USER_MAKE_RULES_OVERRIDE="%SCRIPTS_PATH%/CFlagOverrides.cmake" ^ 82 -DCMAKE_USER_MAKE_RULES_OVERRIDE_CXX="%SCRIPTS_PATH%/CXXFlagOverrides.cmake" ^ 83 -DCMAKE_INSTALL_PREFIX=%WORKDIR%\addons ^ 84 -DCMAKE_SOURCE_DIR=%WORKDIR% ^ 85 -DBUILD_DIR=%ADDONS_BUILD_PATH% ^ 86 -DADDON_DEPENDS_PATH=%ADDON_DEPENDS_PATH% ^ 87 -DPACKAGE_ZIP=ON ^ 88 -DADDONS_TO_BUILD="%ADDONS_TO_BUILD%" 89IF ERRORLEVEL 1 ( 90 ECHO cmake error level: %ERRORLEVEL% > %ERRORFILE% 91 GOTO ERROR 92) 93 94rem everything was fine 95GOTO END 96 97:ERROR 98rem something went wrong 99ECHO Failed to prepare addons development environment 100ECHO See %ERRORFILE% for more details 101SET EXITCODE=1 102 103:END 104rem go back to the original directory 105cd %CUR_PATH% 106 107rem exit the script with the defined exitcode 108EXIT /B %EXITCODE% 109