123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- function Setup-Obs {
- if ( ! ( Test-Path function:Log-Output ) ) {
- . $PSScriptRoot/Logger.ps1
- }
- if ( ! ( Test-Path function:Check-Git ) ) {
- . $PSScriptRoot/Check-Git.ps1
- }
- Check-Git
- if ( ! ( Test-Path function:Ensure-Location ) ) {
- . $PSScriptRoot/Ensure-Location.ps1
- }
- if ( ! ( Test-Path function:Invoke-GitCheckout ) ) {
- . $PSScriptRoot/Invoke-GitCheckout.ps1
- }
- if ( ! ( Test-Path function:Invoke-External ) ) {
- . $PSScriptRoot/Invoke-External.ps1
- }
- Log-Information 'Setting up OBS Studio...'
- $ObsVersion = $BuildSpec.dependencies.'obs-studio'.version
- $ObsRepository = $BuildSpec.dependencies.'obs-studio'.repository
- $ObsBranch = $BuildSpec.dependencies.'obs-studio'.branch
- $ObsHash = $BuildSpec.dependencies.'obs-studio'.hash
- if ( $ObsVersion -eq '' ) {
- throw 'No obs-studio version found in buildspec.json.'
- }
- Push-Location -Stack BuildTemp
- Ensure-Location -Path "$(Resolve-Path -Path "${ProjectRoot}/../")/obs-studio"
- if ( ! ( ( $script:SkipAll ) -or ( $script:SkipUnpack ) ) ) {
- Invoke-GitCheckout -Uri $ObsRepository -Commit $ObsHash -Path . -Branch $ObsBranch
- }
- if ( ! ( ( $script:SkipAll ) -or ( $script:SkipBuild ) ) ) {
- Log-Information 'Configuring OBS Studio...'
- $NumProcessors = (Get-CimInstance Win32_ComputerSystem).NumberOfLogicalProcessors
- if ( $NumProcessors -gt 1 ) {
- $env:UseMultiToolTask = $true
- $env:EnforceProcessCountAcrossBuilds = $true
- }
- $DepsPath = "plugin-deps-${script:DepsVersion}-qt${script:QtVersion}-${script:Target}"
- $CmakeArgs = @(
- '-G', $CmakeGenerator
- "-DCMAKE_SYSTEM_VERSION=${script:PlatformSDK}"
- "-DCMAKE_GENERATOR_PLATFORM=$(if (${script:Target} -eq "x86") { "Win32" } else { "x64" })"
- "-DCMAKE_BUILD_TYPE=${script:Configuration}"
- "-DQT_VERSION=${script:QtVersion}"
- '-DENABLE_PLUGINS=OFF'
- '-DENABLE_UI=OFF'
- '-DENABLE_SCRIPTING=OFF'
- "-DCMAKE_INSTALL_PREFIX:PATH=$(Resolve-Path -Path "${ProjectRoot}/../obs-build-dependencies/${DepsPath}")"
- "-DCMAKE_PREFIX_PATH:PATH=$(Resolve-Path -Path "${ProjectRoot}/../obs-build-dependencies/${DepsPath}")"
- )
- Log-Debug "Attempting to configure OBS with CMake arguments: $($CmakeArgs | Out-String)"
- Log-Information "Configuring OBS..."
- Invoke-External cmake -S . -B plugin_build_${script:Target} @CmakeArgs
- Log-Information 'Building libobs and obs-frontend-api...'
- $CmakeArgs = @(
- '--config', "$( if ( $script:Configuration -eq '' ) { 'RelWithDebInfo' } else { $script:Configuration })"
- )
- if ( $VerbosePreference -eq 'Continue' ) {
- $CmakeArgs+=('--verbose')
- }
- Invoke-External cmake --build plugin_build_${script:Target} @CmakeArgs -t obs-frontend-api
- Invoke-External cmake --install plugin_build_${script:Target} @CmakeArgs --component obs_libraries
- }
- Pop-Location -Stack BuildTemp
- }
|