173 lines
5.4 KiB
Batchfile
173 lines
5.4 KiB
Batchfile
@echo off
|
|
echo Building libwebm dynamic library (Release + Debug) for win64...
|
|
|
|
REM Clean previous build
|
|
echo Cleaning previous build...
|
|
if exist lib\libwebm rmdir /S /Q lib\libwebm
|
|
if exist include\libwebm rmdir /S /Q include\libwebm
|
|
if exist oss\libwebm\build_win64 rmdir /S /Q oss\libwebm\build_win64
|
|
if exist oss\libwebm\build_debug rmdir /S /Q oss\libwebm\build_debug
|
|
|
|
REM Create output directories
|
|
echo Creating output directories...
|
|
mkdir lib\libwebm 2>nul
|
|
mkdir include\libwebm 2>nul
|
|
|
|
REM =============================================================================
|
|
REM Build Release version (SHARED)
|
|
REM =============================================================================
|
|
echo.
|
|
echo ========================================
|
|
echo Building RELEASE shared version of libwebm...
|
|
echo ========================================
|
|
|
|
REM Create build directory
|
|
cd oss\libwebm
|
|
mkdir build_win64 2>nul
|
|
cd build_win64
|
|
|
|
REM Configure with CMake (Release Shared)
|
|
echo Configuring libwebm Release shared build...
|
|
cmake -G "Visual Studio 17 2022" -A x64 -DBUILD_SHARED_LIBS=ON -DENABLE_TESTS=OFF -DENABLE_SAMPLE_PROGRAMS=OFF -DCMAKE_INSTALL_PREFIX="D:/Project/video-av1" ..
|
|
if %ERRORLEVEL% neq 0 (
|
|
echo CMake Release shared configuration failed!
|
|
cd ..\..\..
|
|
exit /b 1
|
|
)
|
|
|
|
REM Build the library (Release)
|
|
echo Building libwebm Release shared...
|
|
cmake --build . --config Release
|
|
if %ERRORLEVEL% neq 0 (
|
|
echo Release shared build failed!
|
|
cd ..\..\..
|
|
exit /b 1
|
|
)
|
|
|
|
REM Go back to libwebm source directory
|
|
cd ..
|
|
|
|
REM =============================================================================
|
|
REM Build Debug version (SHARED)
|
|
REM =============================================================================
|
|
echo.
|
|
echo ========================================
|
|
echo Building DEBUG shared version of libwebm...
|
|
echo ========================================
|
|
|
|
REM Create debug build directory
|
|
mkdir build_debug 2>nul
|
|
cd build_debug
|
|
|
|
REM Configure with CMake (Debug Shared)
|
|
echo Configuring libwebm Debug shared build...
|
|
cmake -G "Visual Studio 17 2022" -A x64 -DBUILD_SHARED_LIBS=ON -DENABLE_TESTS=OFF -DENABLE_SAMPLE_PROGRAMS=OFF ..
|
|
if %ERRORLEVEL% neq 0 (
|
|
echo CMake Debug shared configuration failed!
|
|
cd ..\..\..
|
|
exit /b 1
|
|
)
|
|
|
|
REM Build the library (Debug)
|
|
echo Building libwebm Debug shared...
|
|
cmake --build . --config Debug
|
|
if %ERRORLEVEL% neq 0 (
|
|
echo Debug shared build failed!
|
|
cd ..\..\..
|
|
exit /b 1
|
|
)
|
|
|
|
REM Rename debug library and DLL immediately after build
|
|
echo Renaming debug library...
|
|
if exist Debug\webm.lib (
|
|
ren Debug\webm.lib webm-debug.lib
|
|
echo Renamed webm.lib to webm-debug.lib
|
|
) else (
|
|
echo WARNING: webm.lib not found in debug build!
|
|
)
|
|
|
|
if exist Debug\webm.dll (
|
|
ren Debug\webm.dll webm-debug.dll
|
|
echo Renamed webm.dll to webm-debug.dll
|
|
) else (
|
|
echo WARNING: webm.dll not found in debug build!
|
|
)
|
|
|
|
REM Go back to root directory
|
|
cd ..\..\.
|
|
|
|
REM =============================================================================
|
|
REM Install header files FIRST (to ensure headers are copied even if libraries fail)
|
|
REM =============================================================================
|
|
echo.
|
|
echo Installing header files...
|
|
copy "oss\libwebm\*.hpp" "include\libwebm\" 2>nul
|
|
echo Copied root header files
|
|
|
|
xcopy /E /I /Y "oss\libwebm\mkvmuxer" "include\libwebm\mkvmuxer"
|
|
if %ERRORLEVEL% neq 0 (
|
|
echo WARNING: Failed to copy mkvmuxer headers, but continuing...
|
|
) else (
|
|
echo Successfully copied mkvmuxer headers
|
|
)
|
|
|
|
xcopy /E /I /Y "oss\libwebm\mkvparser" "include\libwebm\mkvparser"
|
|
if %ERRORLEVEL% neq 0 (
|
|
echo WARNING: Failed to copy mkvparser headers, but continuing...
|
|
) else (
|
|
echo Successfully copied mkvparser headers
|
|
)
|
|
|
|
xcopy /E /I /Y "oss\libwebm\common" "include\libwebm\common"
|
|
if %ERRORLEVEL% neq 0 (
|
|
echo WARNING: Failed to copy common headers, but continuing...
|
|
) else (
|
|
echo Successfully copied common headers
|
|
)
|
|
|
|
xcopy /E /I /Y "oss\libwebm\webvtt" "include\libwebm\webvtt"
|
|
if %ERRORLEVEL% neq 0 (
|
|
echo WARNING: Failed to copy webvtt headers, but continuing...
|
|
) else (
|
|
echo Successfully copied webvtt headers
|
|
)
|
|
|
|
REM =============================================================================
|
|
REM Install shared library files
|
|
REM =============================================================================
|
|
echo.
|
|
echo Installing shared library files...
|
|
|
|
REM Copy Release shared library files
|
|
echo Copying Release shared library...
|
|
copy "oss\libwebm\build_win64\Release\webm.lib" "lib\libwebm\"
|
|
copy "oss\libwebm\build_win64\Release\webm.dll" "lib\libwebm\"
|
|
if %ERRORLEVEL% neq 0 (
|
|
echo Failed to copy Release shared library!
|
|
exit /b 1
|
|
)
|
|
|
|
REM Copy Debug shared library files (already renamed)
|
|
echo Copying Debug shared library...
|
|
copy "oss\libwebm\build_debug\Debug\webm-debug.lib" "lib\libwebm\"
|
|
copy "oss\libwebm\build_debug\Debug\webm-debug.dll" "lib\libwebm\"
|
|
if %ERRORLEVEL% neq 0 (
|
|
echo Failed to copy Debug shared library!
|
|
exit /b 1
|
|
)
|
|
|
|
echo.
|
|
echo ========================================
|
|
echo libwebm shared build completed successfully!
|
|
echo ========================================
|
|
echo Release Shared Library:
|
|
echo - lib\libwebm\webm.lib (import library)
|
|
echo - lib\libwebm\webm.dll (runtime library)
|
|
echo Debug Shared Library:
|
|
echo - lib\libwebm\webm-debug.lib (import library)
|
|
echo - lib\libwebm\webm-debug.dll (runtime library)
|
|
echo Headers: include\libwebm\
|
|
echo.
|
|
echo NOTE: DLL files must be distributed with your application.
|
|
echo Place DLL files in the same directory as your executable.
|
|
echo. |