Skip to content
Snippets Groups Projects
Commit d3e94622 authored by Andreas Traczyk's avatar Andreas Traczyk
Browse files

build: build specific contribs on windows

Change-Id: I2b5b0d4892d44ff861a45a2a4d7cff937b1e280f
parent fef70387
Branches
Tags
No related merge requests found
...@@ -9,6 +9,7 @@ if "%~1" == "" goto Usage ...@@ -9,6 +9,7 @@ if "%~1" == "" goto Usage
set doFetch=N set doFetch=N
set doBuildContrib=N set doBuildContrib=N
set doBuildDaemon=N set doBuildDaemon=N
set targetContrib=""
set SCRIPTNAME=%~nx0 set SCRIPTNAME=%~nx0
...@@ -38,6 +39,12 @@ if /I "%1"=="x86" ( ...@@ -38,6 +39,12 @@ if /I "%1"=="x86" (
set BUILD.uwp=Y set BUILD.uwp=Y
) else if /I "%1"=="win32" ( ) else if /I "%1"=="win32" (
set BUILD.win32=Y set BUILD.win32=Y
) else if /I "%1" neq "" (
if "%doBuildContrib%" neq "N" (
set targetContrib=%1
) else if "%doFetch%" neq "N" (
set targetContrib=%1
)
) else ( ) else (
goto Usage goto Usage
) )
...@@ -71,9 +78,9 @@ if "%BUILD.uwp%"=="Y" ( ...@@ -71,9 +78,9 @@ if "%BUILD.uwp%"=="Y" (
if "%arch%" neq "N" ( if "%arch%" neq "N" (
if "%platform%" neq "N" ( if "%platform%" neq "N" (
if "%doFetch%" neq "N" ( if "%doFetch%" neq "N" (
call %CONTRIB_DIR%\src\fetch_all.bat %platform% %arch% call %CONTRIB_DIR%\src\fetch_all.bat %platform% %arch% %targetContrib%
) else if "%doBuildContrib%" neq "N" ( ) else if "%doBuildContrib%" neq "N" (
call %CONTRIB_DIR%\build_all.bat %platform% %arch% call %CONTRIB_DIR%\build_all.bat %platform% %arch% %targetContrib%
) else if "%doBuildDaemon%" neq "N" ( ) else if "%doBuildDaemon%" neq "N" (
goto buildDaemon goto buildDaemon
) )
......
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
set CONTRIB_DIR=%~dp0 set CONTRIB_DIR=%~dp0
set platform=win32 set platform=win32
set arch=64 set arch=x64
if "%1"=="uwp" ( if "%1"=="uwp" (
set platform=x86 set platform=uwp
if "%2"=="x86" ( if "%2"=="x86" (
set arch=x86 set arch=x86
goto arch_x86 goto arch_x86
...@@ -51,69 +51,77 @@ if "%1"=="uwp" ( ...@@ -51,69 +51,77 @@ if "%1"=="uwp" (
) )
:uwpProjs :uwpProjs
set TOBUILD=( ^ set TOBUILD= ^
build\jsoncpp\makefiles\vs2017\lib_json.vcxproj, ^ x264=build\x264\SMP\libx264.vcxproj, ^
build\argon2\vs2015\Argon2Ref\Argon2Ref.vcxproj, ^ opus=build\opus\SMP\libopus.vcxproj, ^
build\gmp\SMP\libgmp.vcxproj, ^ ffmpeg=ffmpeg, ^
build\iconv\SMP\libiconv.vcxproj, ^ restbed=restbed, ^
build\zlib\SMP\libzlib.vcxproj, ^ jsoncpp=build\jsoncpp\makefiles\vs2017\lib_json.vcxproj, ^
build\nettle\SMP\libnettle.vcxproj, ^ argon2=build\argon2\vs2015\Argon2Ref\Argon2Ref.vcxproj, ^
build\nettle\SMP\libhogweed.vcxproj, ^ gmp=build\gmp\SMP\libgmp.vcxproj, ^
build\gnutls\SMP\libgnutls.vcxproj, ^ iconv=build\iconv\SMP\libiconv.vcxproj, ^
build\msgpack-c\vs2017\msgpackc-static.vcxproj, ^ zlib=build\zlib\SMP\libzlib.vcxproj, ^
build\opendht\MSVC\opendht_vs2017.vcxproj, ^ nettle=build\nettle\SMP\libnettle.vcxproj, ^
build\pjproject\pjlib-util\build\pjlib_util.vcxproj, ^ hogweed=build\nettle\SMP\libhogweed.vcxproj, ^
build\pjproject\pjmedia\build\pjmedia.vcxproj, ^ gnutls=build\gnutls\SMP\libgnutls.vcxproj, ^
build\pjproject\pjmedia\build\pjmedia_codec.vcxproj, ^ msgpack=build\msgpack-c\vs2017\msgpackc-static.vcxproj, ^
build\pjproject\pjlib\build\pjlib.vcxproj, ^ opendht=build\opendht\MSVC\opendht_vs2017.vcxproj, ^
build\pjproject\pjsip\build\pjsip_core.vcxproj, ^ pjlib_util=build\pjproject\pjlib-util\build\pjlib_util.vcxproj, ^
build\pjproject\pjsip\build\pjsip_simple.vcxproj, ^ pjmedia=build\pjproject\pjmedia\build\pjmedia.vcxproj, ^
build\pjproject\pjsip\build\pjsua_lib.vcxproj, ^ pjmedia_codec=build\pjproject\pjmedia\build\pjmedia_codec.vcxproj, ^
build\pjproject\pjsip\build\pjsua2_lib.vcxproj, ^ pjlib=build\pjproject\pjlib\build\pjlib.vcxproj, ^
build\pjproject\pjsip\build\pjsip_ua.vcxproj, ^ pjsip_core=build\pjproject\pjsip\build\pjsip_core.vcxproj, ^
build\pjproject\pjnath\build\pjnath.vcxproj, ^ pjsip_simple=build\pjproject\pjsip\build\pjsip_simple.vcxproj, ^
build\pthreads\MSVC\pthreads.vcxproj, ^ pjsua_lib=build\pjproject\pjsip\build\pjsua_lib.vcxproj, ^
build\libupnp\build\vs2017\ixml.vcxproj, ^ pjsua2_lib=build\pjproject\pjsip\build\pjsua2_lib.vcxproj, ^
build\libupnp\build\vs2017\threadutil.vcxproj, ^ pjsip_ua=build\pjproject\pjsip\build\pjsip_ua.vcxproj, ^
build\libupnp\build\vs2017\libupnp.vcxproj, ^ pjnath=build\pjproject\pjnath\build\pjnath.vcxproj, ^
build\secp256k1\MSVC\secp256k1.vcxproj, ^ pthreads=build\pthreads\MSVC\pthreads.vcxproj, ^
build\portaudio\msvc\uwp\portaudio.vcxproj, ^ xml=build\libupnp\build\vs2017\ixml.vcxproj, ^
build\yaml-cpp\msvc\yaml-cpp.vcxproj, ^ threadutil=build\libupnp\build\vs2017\threadutil.vcxproj, ^
build\pcre\msvc\pcre.vcxproj, ^ upnp=build\libupnp\build\vs2017\libupnp.vcxproj, ^
) secp256k1=build\secp256k1\MSVC\secp256k1.vcxproj, ^
portaudio=build\portaudio\msvc\portaudio.vcxproj, ^
yaml-cpp=build\yaml-cpp\msvc\yaml-cpp.vcxproj, ^
pcre=build\pcre\msvc\pcre.vcxproj
goto startBuild goto startBuild
:win32Projs :win32Projs
set TOBUILD=( ^ set TOBUILD= ^
build\jsoncpp\makefiles\vs2017\lib_json.vcxproj, ^ vpx=build\vpx\SMP\libvpx.vcxproj, ^
build\argon2\vs2015\Argon2Ref\Argon2Ref.vcxproj, ^ x264=build\x264\SMP\libx264.vcxproj, ^
build\gmp\SMP\libgmp.vcxproj, ^ opus=build\opus\SMP\libopus.vcxproj, ^
build\iconv\SMP\libiconv.vcxproj, ^ ffmpeg=ffmpeg, ^
build\zlib\SMP\libzlib.vcxproj, ^ restbed=restbed, ^
build\nettle\SMP\libnettle.vcxproj, ^ jsoncpp=build\jsoncpp\makefiles\vs2017\lib_json.vcxproj, ^
build\nettle\SMP\libhogweed.vcxproj, ^ argon2=build\argon2\vs2015\Argon2Ref\Argon2Ref.vcxproj, ^
build\gnutls\SMP\libgnutls.vcxproj, ^ gmp=build\gmp\SMP\libgmp.vcxproj, ^
build\msgpack-c\vs2017\msgpackc-static.vcxproj, ^ iconv=build\iconv\SMP\libiconv.vcxproj, ^
build\opendht\MSVC\opendht_vs2017.vcxproj, ^ zlib=build\zlib\SMP\libzlib.vcxproj, ^
build\pjproject\pjlib-util\build\pjlib_util.vcxproj, ^ nettle=build\nettle\SMP\libnettle.vcxproj, ^
build\pjproject\pjmedia\build\pjmedia.vcxproj, ^ hogweed=build\nettle\SMP\libhogweed.vcxproj, ^
build\pjproject\pjmedia\build\pjmedia_codec.vcxproj, ^ gnutls=build\gnutls\SMP\libgnutls.vcxproj, ^
build\pjproject\pjlib\build\pjlib.vcxproj, ^ msgpack=build\msgpack-c\vs2017\msgpackc-static.vcxproj, ^
build\pjproject\pjsip\build\pjsip_core.vcxproj, ^ opendht=build\opendht\MSVC\opendht_vs2017.vcxproj, ^
build\pjproject\pjsip\build\pjsip_simple.vcxproj, ^ pjlib_util=build\pjproject\pjlib-util\build\pjlib_util.vcxproj, ^
build\pjproject\pjsip\build\pjsua_lib.vcxproj, ^ pjmedia=build\pjproject\pjmedia\build\pjmedia.vcxproj, ^
build\pjproject\pjsip\build\pjsua2_lib.vcxproj, ^ pjmedia_codec=build\pjproject\pjmedia\build\pjmedia_codec.vcxproj, ^
build\pjproject\pjsip\build\pjsip_ua.vcxproj, ^ pjlib=build\pjproject\pjlib\build\pjlib.vcxproj, ^
build\pjproject\pjnath\build\pjnath.vcxproj, ^ pjsip_core=build\pjproject\pjsip\build\pjsip_core.vcxproj, ^
build\pthreads\MSVC\pthreads.vcxproj, ^ pjsip_simple=build\pjproject\pjsip\build\pjsip_simple.vcxproj, ^
build\libupnp\build\vs2017\ixml.vcxproj, ^ pjsua_lib=build\pjproject\pjsip\build\pjsua_lib.vcxproj, ^
build\libupnp\build\vs2017\threadutil.vcxproj, ^ pjsua2_lib=build\pjproject\pjsip\build\pjsua2_lib.vcxproj, ^
build\libupnp\build\vs2017\libupnp.vcxproj, ^ pjsip_ua=build\pjproject\pjsip\build\pjsip_ua.vcxproj, ^
build\secp256k1\MSVC\secp256k1.vcxproj, ^ pjnath=build\pjproject\pjnath\build\pjnath.vcxproj, ^
build\portaudio\msvc\portaudio.vcxproj, ^ pthreads=build\pthreads\MSVC\pthreads.vcxproj, ^
build\yaml-cpp\msvc\yaml-cpp.vcxproj, ^ xml=build\libupnp\build\vs2017\ixml.vcxproj, ^
build\pcre\msvc\pcre.vcxproj, ^ threadutil=build\libupnp\build\vs2017\threadutil.vcxproj, ^
) upnp=build\libupnp\build\vs2017\libupnp.vcxproj, ^
secp256k1=build\secp256k1\MSVC\secp256k1.vcxproj, ^
portaudio=build\portaudio\msvc\portaudio.vcxproj, ^
yaml-cpp=build\yaml-cpp\msvc\yaml-cpp.vcxproj, ^
pcre=build\pcre\msvc\pcre.vcxproj
goto startBuild goto startBuild
:startBuild :startBuild
...@@ -170,23 +178,73 @@ if not defined MSYS2_BIN ( ...@@ -170,23 +178,73 @@ if not defined MSYS2_BIN (
if exist C:\msys\usr\bin\bash.exe set MSYS2_BIN="C:\msys\usr\bin\bash.exe" if exist C:\msys\usr\bin\bash.exe set MSYS2_BIN="C:\msys\usr\bin\bash.exe"
) )
if "%1"=="win32" ( if /I %3 equ "" (
:: build livpx goto build_all
call :build %CONTRIB_DIR%build\vpx\SMP\libvpx.vcxproj ) else (
goto build_one
)
:build_all
set "keyname="
for %%I in (%TOBUILD%) do (
if not defined keyname (
set keyname=%%I
) else (
echo building: !keyname!
call :build %%I %1 %2
set %%keyname%%=%%I
set "keyname="
)
)
goto cleanup
:build_one
set found="N"
set "keyname="
for %%I in (%TOBUILD%) do (
if not defined keyname (
set keyname=%%I
) else (
if /I %3 equ !keyname! (
echo building: !keyname!
set found="Y"
call :build %%I %1 %2
goto cleanup
)
set %%keyname%%=%%I
set "keyname="
)
)
if %found%=="N" (
echo "%3" not in listed contrib
)
goto cleanup
:parameterError
echo "parameter error"
goto cleanup
:cleanup
endlocal
@endlocal
exit /B %ERRORLEVEL%
:build
if /I %1 equ ffmpeg (
%MSYS2_BIN% --login -x %CONTRIB_DIR%src/ffmpeg/windows-configure-make.sh %2 %3
) else if /I %1 equ restbed (
goto build_restbed %2 %3
) else (
msbuild %CONTRIB_DIR%%1 %MSBUILD_ARGS%
) )
:: build libx264
call :build %CONTRIB_DIR%build\x264\SMP\libx264.vcxproj
:: build libopus
call :build %CONTRIB_DIR%build\opus\SMP\libopus.vcxproj
:: build ffmpeg
%MSYS2_BIN% --login -x %CONTRIB_DIR%src/ffmpeg/windows-configure-make.sh %1 %2
:build_restbed
:: build openssl :: build openssl
cd %CONTRIB_DIR%build\restbed\dependency\openssl cd %CONTRIB_DIR%build\restbed\dependency\openssl
if "%1"=="win32" ( if "%2"=="win32" (
call perl Configure VC-WIN64A call perl Configure VC-WIN64A
call ms\do_win64a call ms\do_win64a
) else if "%1"=="uwp" ( ) else if "%2"=="uwp" (
call perl Configure no-asm no-hw no-dso VC-WINUNIVERSAL call perl Configure no-asm no-hw no-dso VC-WINUNIVERSAL
call ms\do_winuniversal call ms\do_winuniversal
call ms\setVSvars universal10.0x64 call ms\setVSvars universal10.0x64
...@@ -200,31 +258,10 @@ mkdir build ...@@ -200,31 +258,10 @@ mkdir build
cd build cd build
setlocal setlocal
set PATH=C:\\Program Files\\CMake\\bin\\;%PATH% set PATH=C:\\Program Files\\CMake\\bin\\;%PATH%
if "%2"=="x86" ( if "%3"=="x86" (
cmake -DBUILD_SSL=ON -G "Visual Studio 15 2017 Win32" .. cmake -DBUILD_SSL=ON -G "Visual Studio 15 2017 Win32" ..
) else if "%2"=="x64" ( ) else if "%3"=="x64" (
cmake -DBUILD_SSL=ON -G "Visual Studio 15 2017 Win64" .. cmake -DBUILD_SSL=ON -G "Visual Studio 15 2017 Win64" ..
) )
cmake --build . --target ALL_BUILD --config Release cmake --build . --target ALL_BUILD --config Release
cd ..\.. cd ..\..
\ No newline at end of file
:: build the list
for %%I in %TOBUILD% do (
call :build "%CONTRIB_DIR%%%I"
)
goto cleanup
:parameterError
echo "parameter error"
goto cleanup
:cleanup
endlocal
@endlocal
exit /B %ERRORLEVEL%
:build
echo "building " %*
msbuild %* %MSBUILD_ARGS%
exit /B 0
\ No newline at end of file
...@@ -68,11 +68,34 @@ vpx, ^ ...@@ -68,11 +68,34 @@ vpx, ^
x264, ^ x264, ^
yaml-cpp, ^ yaml-cpp, ^
) )
if /I %3 equ "" (
goto fetch goto fetch
) else (
goto fetch_one
)
:fetch :fetch
if exist %SRC%\..\build rd /S /Q %SRC%\..\build
for %%I in %DEPENDENCIES% do (
echo fetching: %%I
call %SRC%\%%I\fetch_and_patch.bat %1 %2
)
goto cleanup
:fetch_one
set found="N"
for %%I in %DEPENDENCIES% do ( for %%I in %DEPENDENCIES% do (
if /I %3 equ %%I (
if exist %SRC%\..\build\%%I rd /S /Q %SRC%\..\build\%%I
echo fetching: %%I
set found="Y"
call %SRC%\%%I\fetch_and_patch.bat %1 %2 call %SRC%\%%I\fetch_and_patch.bat %1 %2
) )
)
if %found%=="N" (
echo "%3" not in listed contrib
)
:cleanup
@endlocal @endlocal
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment