onnxruntime/tools/ci_build/github/windows/install_protoc.ps1
Changming Sun ffcfb1ec98
Remove protobuf submodule (#15190)
### Description
Remove protobuf submodule as a follow-up of #13523

"Android CI Pipeline" and "Zip-Nuget-Java-Nodejs Packaging Pipeline"
need to be tested.


### Motivation and Context
It is related to
[AB#11753](https://aiinfra.visualstudio.com/6a833879-cd9b-44a4-a9de-adc2d818f13c/_workitems/edit/11753)

Fixed
[AB#14027](https://aiinfra.visualstudio.com/6a833879-cd9b-44a4-a9de-adc2d818f13c/_workitems/edit/14027)
2023-03-27 10:35:49 -07:00

76 lines
No EOL
2.6 KiB
PowerShell

# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
# This script depends on python.exe, cmake.exe and Visual C++ spectre-mitigated libs.
# Please setup AGENT_TEMPDIRECTORY env variable before running this script
# This file is very similar to install_third_party_deps.ps1 expect this one only installs protobuf.
# This file is mainly for cross-compiling use cases.
param (
[string]$cpu_arch = "x64",
[string]$build_config = "RelWithDebInfo",
[string]$install_prefix = ".",
[switch]$use_cache
)
. "$PSScriptRoot\helpers.ps1"
$ort_src_root = (Get-Item $PSScriptRoot).parent.parent.parent.parent.FullName
Write-Host "ONNX Runtime src root: $ort_src_root"
$ErrorActionPreference = "Stop"
$Env:Path = "$install_prefix\bin;" + $env:Path
$Env:MSBUILDDISABLENODEREUSE=1
New-Item -Path "$install_prefix" -ItemType Directory -Force
# Setup compile flags
$compile_flags = '/MP /guard:cf /Qspectre /DWIN32 /D_WINDOWS /DWINVER=0x0601 /D_WIN32_WINNT=0x0601 /DNTDDI_VERSION=0x06010000 /W3 '
$linker_flags=@('/guard:cf')
if ($use_cache) {
$debug_info_format = "/Z7"
}
else {
$debug_info_format = "/Zi"
}
if($build_config -eq 'Release'){
$compile_flags += "/O2", "/Ob2", "/DNDEBUG", "/Gw", "/GL"
} elseif($build_config -eq 'RelWithDebInfo'){
$compile_flags += "$debug_info_format", "/O2", "/Ob1", "/DNDEBUG", "/Gw", "/GL"
} elseif($build_config -eq 'Debug'){
$compile_flags += "$debug_info_format", "/Ob0", "/Od", "/RTC1"
} elseif($build_config -eq 'MinSizeRel'){
$compile_flags += "/O1", "/Ob1", "/DNDEBUG", "/Gw", "/GL"
}
Write-Host $compile_flags
# cmake args that applies to every 3rd-party library
[string[]]$cmake_extra_args="-DCMAKE_CXX_STANDARD=17 `"-DCMAKE_CXX_FLAGS=$compile_flags /EHsc`" ", "`"-DCMAKE_C_FLAGS=$compile_flags`"", "--compile-no-warning-as-error", "--fresh", "-Wno-dev"
if($cpu_arch -eq 'x86'){
$cmake_extra_args += "-A", "Win32", "-T", "host=x64"
$linker_flags += '/machine:x86'
} elseif($cpu_arch -eq 'x64') {
$linker_flags += '/machine:x64'
} else {
throw "$cpu_arch is not supported"
}
if ($use_cache) {
if ($build_config -eq 'RelWithDebInfo') {
$cmake_extra_args += "-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=`"/MD /Z7 /O2 /Ob1 /DNDEBUG`""
}
elseif ($build_config -eq 'Debug') {
$cmake_extra_args += "-DCMAKE_CXX_FLAGS_DEBUG=`"/MDd /Z7 /Ob0 /Od /RTC1`""
}
}
$cmake_extra_args += "-DCMAKE_EXE_LINKER_FLAGS=`"$linker_flags`""
# Find the full path of cmake.exe
$cmake_command = (Get-Command -CommandType Application cmake)[0]
$cmake_path = $cmake_command.Path
Install-Protobuf -cmake_path $cmake_path -src_root $ort_src_root -build_config $build_config -cmake_extra_args $cmake_extra_args