60 lines
1.6 KiB
Batchfile
60 lines
1.6 KiB
Batchfile
@echo off
|
|
:: Script to test different build configurations for TinyTest on Windows
|
|
|
|
echo Testing multiple build configurations for TinyTest
|
|
|
|
:: Function to build and test a configuration
|
|
:build_and_test
|
|
set build_dir=%~1
|
|
set cmake_args=%~2 %~3 %~4 %~5
|
|
echo.
|
|
echo Building in %build_dir% with args: %cmake_args%
|
|
echo.
|
|
|
|
if not exist %build_dir% mkdir %build_dir%
|
|
cd %build_dir%
|
|
|
|
:: Configure
|
|
echo Configuring...
|
|
cmake .. %cmake_args%
|
|
|
|
:: Build
|
|
echo Building...
|
|
cmake --build . --config Release
|
|
|
|
:: Test (if tests are enabled)
|
|
echo %cmake_args% | findstr "BUILD_TESTING=OFF" > nul
|
|
if %errorlevel% neq 0 (
|
|
echo Testing...
|
|
ctest -C Release --output-on-failure
|
|
)
|
|
|
|
cd ..
|
|
echo Successfully built and tested %build_dir%
|
|
echo.
|
|
exit /b 0
|
|
|
|
:: Clean build directories
|
|
echo Cleaning previous build directories...
|
|
if exist build-debug rmdir /s /q build-debug
|
|
if exist build-release rmdir /s /q build-release
|
|
if exist build-shared rmdir /s /q build-shared
|
|
if exist build-static rmdir /s /q build-static
|
|
if exist build-no-tests rmdir /s /q build-no-tests
|
|
|
|
:: Test debug build
|
|
call :build_and_test build-debug "-DCMAKE_BUILD_TYPE=Debug"
|
|
|
|
:: Test release build
|
|
call :build_and_test build-release "-DCMAKE_BUILD_TYPE=Release"
|
|
|
|
:: Test shared library build
|
|
call :build_and_test build-shared "-DCMAKE_BUILD_TYPE=Release" "-DTINYTEST_BUILD_SHARED_LIBS=ON"
|
|
|
|
:: Test static library build with no warnings as errors
|
|
call :build_and_test build-static "-DCMAKE_BUILD_TYPE=Release" "-DTINYTEST_BUILD_SHARED_LIBS=OFF" "-DTINYTEST_WARNINGS_AS_ERRORS=OFF"
|
|
|
|
:: Test build without tests
|
|
call :build_and_test build-no-tests "-DCMAKE_BUILD_TYPE=Release" "-DBUILD_TESTING=OFF"
|
|
|
|
echo All configurations built successfully! |