82 lines
3.0 KiB
Batchfile
82 lines
3.0 KiB
Batchfile
@echo off
|
|
|
|
:: Validate mandatory environment variables
|
|
if "%CONFIGURATION%"=="" (
|
|
echo Please define 'Configuration' environment variable.
|
|
exit /B 1
|
|
)
|
|
if "%PLATFORM%"=="" (
|
|
echo Please define 'Platform' environment variable.
|
|
exit /B 1
|
|
)
|
|
|
|
:: Set PRODUCT_SOURCE_DIR root directory
|
|
setlocal enabledelayedexpansion
|
|
if "%PRODUCT_SOURCE_DIR%"=="" (
|
|
:: Delayed expansion is required within parentheses https://superuser.com/questions/78496/variables-in-batch-file-not-being-set-when-inside-if
|
|
cd /d "%~dp0"
|
|
cd ..\..
|
|
set PRODUCT_SOURCE_DIR=!CD!
|
|
cd ..\..
|
|
echo PRODUCT_SOURCE_DIR set to '!PRODUCT_SOURCE_DIR!'.
|
|
)
|
|
endlocal & set PRODUCT_SOURCE_DIR=%PRODUCT_SOURCE_DIR%
|
|
echo.
|
|
|
|
:: Prepare CMAKE parameters
|
|
set CMAKE_INSTALL_PREFIX=%PRODUCT_SOURCE_DIR%\third_parties\googletest\install
|
|
set CMAKE_PREFIX_PATH=
|
|
set CMAKE_PREFIX_PATH=%CMAKE_PREFIX_PATH%;
|
|
|
|
echo ============================================================================
|
|
echo Cloning googletest into %PRODUCT_SOURCE_DIR%\third_parties\googletest
|
|
echo ============================================================================
|
|
mkdir "%PRODUCT_SOURCE_DIR%\third_parties" >NUL 2>NUL
|
|
cd "%PRODUCT_SOURCE_DIR%\third_parties"
|
|
git clone "https://github.com/google/googletest.git"
|
|
cd googletest
|
|
echo.
|
|
|
|
echo Checking out version 1.8.0...
|
|
git -c advice.detachedHead=false checkout release-1.8.0
|
|
echo.
|
|
|
|
echo ============================================================================
|
|
echo Generating googletest...
|
|
echo ============================================================================
|
|
mkdir build >NUL 2>NUL
|
|
cd build
|
|
cmake -Wno-dev -DCMAKE_GENERATOR_PLATFORM=%PLATFORM% -T %PLATFORMTOOLSET% -Dgtest_force_shared_crt=ON -DBUILD_GMOCK=OFF -DBUILD_GTEST=ON -DCMAKE_INSTALL_PREFIX="%CMAKE_INSTALL_PREFIX%" -DCMAKE_PREFIX_PATH="%CMAKE_PREFIX_PATH%" ..
|
|
if %errorlevel% neq 0 exit /b %errorlevel%
|
|
echo.
|
|
|
|
echo.
|
|
echo.
|
|
echo ==================================================================================
|
|
echo Patching googletest to silence MSVC warning C4996 about deprecated 'std::tr1' namespace
|
|
echo ==================================================================================
|
|
echo add_definitions(-D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING)>>..\googletest\CMakeLists.txt
|
|
echo add_definitions(-D_CRT_SECURE_NO_WARNINGS)>>..\googletest\CMakeLists.txt
|
|
cmake .. 1>NUL 2>NUL
|
|
echo Done patching.
|
|
echo.
|
|
echo.
|
|
|
|
:: Continue with compilation
|
|
echo ============================================================================
|
|
echo Compiling googletest...
|
|
echo ============================================================================
|
|
cmake --build . --config %CONFIGURATION% -- -maxcpucount /m
|
|
if %errorlevel% neq 0 exit /b %errorlevel%
|
|
echo.
|
|
|
|
echo ============================================================================
|
|
echo Installing googletest into %CMAKE_INSTALL_PREFIX%
|
|
echo ============================================================================
|
|
cmake --build . --config %CONFIGURATION% --target INSTALL
|
|
if %errorlevel% neq 0 exit /b %errorlevel%
|
|
echo.
|
|
|
|
::Return to launch folder
|
|
cd /d "%~dp0"
|