Build and sign arm/arm64 Onebranch pipeline for linux (#2987)

Enables building and signing arm/arm64 bits for linux.

Also, several minor improvements to the OBP workflow.

With this PR, linux onebranch build workflow does not install anything online anymore. Everything is set up in the docker image.
This commit is contained in:
Yi Huang 2022-08-17 04:28:14 -07:00 коммит произвёл GitHub
Родитель ce482de278
Коммит cb65c5d187
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
14 изменённых файлов: 262 добавлений и 36 удалений

Просмотреть файл

@ -1,6 +1,10 @@
# #
# Run this OBP will generate a docker image and push it to isolated ACR hosted by Onebranch. # Run this OBP will generate a docker image and push it to isolated ACR hosted by Onebranch.
# For testing this pipeline, set enable_isolated_acr_push and enable_service_tree_acr_path to false. #
# Set enable_isolated_acr_push and enable_service_tree_acr_path to true when the docker(s)
# are ready to be uploaded.
#
# By default, this pipeline does not build dockers if RunFor* is not set.
# #
trigger: none # https://aka.ms/obpipelines/triggers trigger: none # https://aka.ms/obpipelines/triggers
@ -10,6 +14,18 @@ parameters: # parameters are shown up in ADO UI in a build queue time
displayName: 'Enable debug output' displayName: 'Enable debug output'
type: boolean type: boolean
default: false default: false
- name: 'RunForLinux'
displayName: 'Build docker image for Linux'
type: boolean
default: false
- name: 'RunForWindows'
displayName: 'Build docker image for Windows'
type: boolean
default: false
- name: 'DockerTag'
displayName: 'Docker tag'
type: string
default: 'latest'
variables: variables:
CDP_DEFINITION_BUILD_COUNT: $[counter('', 0)] # needed for onebranch.pipeline.version task https://aka.ms/obpipelines/versioning CDP_DEFINITION_BUILD_COUNT: $[counter('', 0)] # needed for onebranch.pipeline.version task https://aka.ms/obpipelines/versioning
@ -39,9 +55,10 @@ extends:
enabled: false # onebranch publish all sdl results to TSA. If TSA is disabled all SDL tools will forced into 'break' build mode. enabled: false # onebranch publish all sdl results to TSA. If TSA is disabled all SDL tools will forced into 'break' build mode.
stages: stages:
- stage: main - stage: docker
jobs: jobs:
- job: download_external_libs - job: download_external_libs
condition: eq('${{ parameters.RunForWindows }}', 'true')
displayName: Download external libs displayName: Download external libs
pool: pool:
type: linux # read more about custom job types at https://aka.ms/obpipelines/yaml/jobs type: linux # read more about custom job types at https://aka.ms/obpipelines/yaml/jobs
@ -57,10 +74,8 @@ extends:
echo Copying $(xgameplatformlib.secureFilePath) to artifacts... echo Copying $(xgameplatformlib.secureFilePath) to artifacts...
mkdir -p $(Build.SourcesDirectory)/out mkdir -p $(Build.SourcesDirectory)/out
cp $(xgameplatformlib.secureFilePath) $(Build.SourcesDirectory)/out cp $(xgameplatformlib.secureFilePath) $(Build.SourcesDirectory)/out
- stage: docker
dependsOn: main
jobs:
- job: linuxContainers # build linux images - job: linuxContainers # build linux images
condition: eq('${{ parameters.RunForLinux }}', 'true')
displayName: Build docker image for linux displayName: Build docker image for linux
variables: variables:
ob_git_checkout: true ob_git_checkout: true
@ -75,10 +90,11 @@ extends:
dockerFileContextPath: .azure/dockers/ob/linux dockerFileContextPath: .azure/dockers/ob/linux
saveImageToPath: msquicbuild-linux.tar saveImageToPath: msquicbuild-linux.tar
enable_network: true enable_network: true
build_tag: $(Build.BuildNumber) build_tag: ${{ parameters.DockerTag }}
enable_isolated_acr_push: true enable_isolated_acr_push: true
enable_service_tree_acr_path: true enable_service_tree_acr_path: true
- job: windowsContainers # build windows images - job: windowsContainers # build windows images
dependsOn: download_external_libs
displayName: Build docker image for windows displayName: Build docker image for windows
variables: variables:
ob_git_checkout: true ob_git_checkout: true
@ -98,7 +114,7 @@ extends:
dockerFileContextPath: .azure\dockers\ob\windows dockerFileContextPath: .azure\dockers\ob\windows
saveImageToPath: msquicbuild-windows.tar.gz saveImageToPath: msquicbuild-windows.tar.gz
enable_network: true enable_network: true
build_tag: $(Build.BuildNumber) build_tag: ${{ parameters.DockerTag }}
compress: true compress: true
enable_isolated_acr_push: true enable_isolated_acr_push: true
enable_service_tree_acr_path: true enable_service_tree_acr_path: true

Просмотреть файл

@ -38,7 +38,7 @@ variables:
WindowsContainerImage: 'cdpxwin1809.azurecr.io/global/vse2019:latest' WindowsContainerImage: 'cdpxwin1809.azurecr.io/global/vse2019:latest'
WindowsContainerImage2: 'cdpxb7b51c2f738e43e48f7605d9a8e5f6d700.azurecr.io/b7b51c2f-738e-43e4-8f76-05d9a8e5f6d7/official/msquicbuild:20220812.8' WindowsContainerImage2: 'cdpxb7b51c2f738e43e48f7605d9a8e5f6d700.azurecr.io/b7b51c2f-738e-43e4-8f76-05d9a8e5f6d7/official/msquicbuild:20220812.8'
LinuxContainerImage: 'cdpxb7b51c2f738e43e48f7605d9a8e5f6d700.azurecr.io/b7b51c2f-738e-43e4-8f76-05d9a8e5f6d7/official/msquicbuild:20220811.5' LinuxContainerImage: 'cdpxb7b51c2f738e43e48f7605d9a8e5f6d700.azurecr.io/b7b51c2f-738e-43e4-8f76-05d9a8e5f6d7/official/msquicbuild:xcomp1'
LinuxContainerImage2: 'cdpxlinux.azurecr.io/global/ubuntu-1804:latest' LinuxContainerImage2: 'cdpxlinux.azurecr.io/global/ubuntu-1804:latest'
resources: resources:

Просмотреть файл

@ -364,6 +364,16 @@ stages:
arch: arm64 arch: arm64
tls: openssl tls: openssl
extraBuildArgs: -DisableLogs extraBuildArgs: -DisableLogs
extraName: 'android'
- template: ./templates/build-config-user.yml
parameters:
image: ubuntu-latest
platform: linux
arch: arm64
tls: openssl
extraBuildArgs: -DisableLogs -ToolchainFile cmake/toolchains/aarch64-linux.cmake -OneBranch
extraPrepareArgs: -InstallArm64Toolchain
- template: ./templates/build-config-user.yml - template: ./templates/build-config-user.yml
parameters: parameters:
@ -372,6 +382,7 @@ stages:
arch: x64 arch: x64
tls: openssl tls: openssl
extraBuildArgs: -DisableLogs extraBuildArgs: -DisableLogs
extraName: 'android'
- template: ./templates/build-config-user.yml - template: ./templates/build-config-user.yml
parameters: parameters:

Просмотреть файл

@ -12,6 +12,12 @@ RUN apt-get update && apt-get install -y apt-transport-https \
apt-add-repository ppa:lttng/stable-2.12 && \ apt-add-repository ppa:lttng/stable-2.12 && \
apt-get update && apt-get install -y tzdata && apt-get install -y \ apt-get update && apt-get install -y tzdata && apt-get install -y \
build-essential \ build-essential \
gcc-arm-linux-gnueabihf \
g++-arm-linux-gnueabihf \
binutils-arm-linux-gnueabihf \
gcc-aarch64-linux-gnu \
g++-aarch64-linux-gnu \
binutils-aarch64-linux-gnu \
cmake \ cmake \
git \ git \
make \ make \
@ -20,8 +26,17 @@ RUN apt-get update && apt-get install -y apt-transport-https \
lttng-tools \ lttng-tools \
perl \ perl \
nasm \ nasm \
ruby \
ruby-dev \
rpm \
libssl-dev \
cppcheck \
clang-tidy \
gdb \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
RUN gem install fpm
RUN wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb && \ RUN wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb && \
sudo dpkg -i packages-microsoft-prod.deb && \ sudo dpkg -i packages-microsoft-prod.deb && \
sudo add-apt-repository universe && \ sudo add-apt-repository universe && \
@ -29,4 +44,19 @@ RUN wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsof
sudo apt-get install -y \ sudo apt-get install -y \
# INSTALL POWERSHELl # INSTALL POWERSHELl
powershell \ powershell \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
RUN dpkg --add-architecture arm64
RUN dpkg --add-architecture armhf
RUN cat /etc/apt/sources.list | grep "^deb" | sed 's/deb /deb [arch=amd64] /g' > /etc/apt/sources.list
COPY arm-cross-compile-sources.list /etc/apt/sources.list.d/
RUN apt-get update
RUN apt-get install -y liblttng-ust-dev:arm64 \
liblttng-ust-dev:armhf \
libssl-dev:arm64 \
libssl-dev:armhf \
&& rm -rf /var/lib/apt/lists/*

Просмотреть файл

@ -0,0 +1,7 @@
deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal main restricted
deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal-updates main restricted
deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal universe
deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal-updates universe
deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal multiverse
deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal-updates multiverse
deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal-backports main restricted universe multiverse

Просмотреть файл

@ -26,4 +26,18 @@ jobs:
inputs: inputs:
pwsh: true pwsh: true
filePath: scripts/build.ps1 filePath: scripts/build.ps1
arguments: -Tls ${{ parameters.tls }} -Config ${{ parameters.config }} -Platform ${{ parameters.platform }} -Arch x64 -CI -UseSystemOpenSSLCrypto arguments: -Tls ${{ parameters.tls }} -Config ${{ parameters.config }} -Platform ${{ parameters.platform }} -Arch x64 -CI -UseSystemOpenSSLCrypto -OneBranch
- task: PowerShell@2
displayName: arm64
target: linux_build_container
inputs:
pwsh: true
filePath: scripts/build.ps1
arguments: -Tls ${{ parameters.tls }} -Config ${{ parameters.config }} -Platform ${{ parameters.platform }} -Arch arm64 -ToolchainFile cmake/toolchains/aarch64-linux.cmake -CI -UseSystemOpenSSLCrypto -OneBranch
- task: PowerShell@2
displayName: arm
target: linux_build_container
inputs:
pwsh: true
filePath: scripts/build.ps1
arguments: -Tls ${{ parameters.tls }} -Config ${{ parameters.config }} -Platform ${{ parameters.platform }} -Arch arm -ToolchainFile cmake/toolchains/arm-linux.cmake -CI -UseSystemOpenSSLCrypto -OneBranch

Просмотреть файл

@ -0,0 +1,68 @@
set(GCC_COMPILER_VERSION "" CACHE STRING "GCC Compiler version")
set(GNU_MACHINE "aarch64-linux-gnu" CACHE STRING "GNU compiler triplet")
if(COMMAND toolchain_save_config)
return() # prevent recursive call
endif()
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_VERSION 1)
if(NOT DEFINED CMAKE_SYSTEM_PROCESSOR)
set(CMAKE_SYSTEM_PROCESSOR aarch64)
else()
#message("CMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR}")
endif()
include("${CMAKE_CURRENT_LIST_DIR}/gnu.toolchain.cmake")
if(CMAKE_SYSTEM_PROCESSOR STREQUAL arm AND NOT ARM_IGNORE_FP)
set(FLOAT_ABI_SUFFIX "")
if(NOT SOFTFP)
set(FLOAT_ABI_SUFFIX "hf")
endif()
endif()
if(NOT "x${GCC_COMPILER_VERSION}" STREQUAL "x")
set(__GCC_VER_SUFFIX "-${GCC_COMPILER_VERSION}")
endif()
find_program(CMAKE_C_COMPILER NAMES ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-gcc${__GCC_VER_SUFFIX})
if (NOT CMAKE_C_COMPILER)
message(FATAL_ERROR "${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-gcc${__GCC_VER_SUFFIX} not found")
endif()
find_program(CMAKE_CXX_COMPILER NAMES ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-g++${__GCC_VER_SUFFIX})
if (NOT CMAKE_CXX_COMPILER)
message(FATAL_ERROR "${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-g++${__GCC_VER_SUFFIX} not found")
endif()
find_program(CMAKE_LINKER NAMES ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-ld${__GCC_VER_SUFFIX} ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-ld)
if(NOT CMAKE_LINKER)
message(FATAL_ERROR "CMAKE_LINKER=${CMAKE_LINKER} is defined")
endif()
find_program(CMAKE_AR NAMES ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-ar${__GCC_VER_SUFFIX} ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-ar)
if(NOT CMAKE_AR)
message(FATAL_ERROR "CMAKE_AR=${CMAKE_AR} is defined")
endif()
if(NOT DEFINED ARM_LINUX_SYSROOT AND DEFINED GNU_MACHINE)
set(ARM_LINUX_SYSROOT /usr/${GNU_MACHINE}${FLOAT_ABI_SUFFIX})
endif()
if(USE_NEON)
message(WARNING "You use obsolete variable USE_NEON to enable NEON instruction set. Use -DENABLE_NEON=ON instead." )
set(ENABLE_NEON TRUE)
elseif(USE_VFPV3)
message(WARNING "You use obsolete variable USE_VFPV3 to enable VFPV3 instruction set. Use -DENABLE_VFPV3=ON instead." )
set(ENABLE_VFPV3 TRUE)
endif()
set(CMAKE_FIND_ROOT_PATH ${CMAKE_FIND_ROOT_PATH} ${ARM_LINUX_SYSROOT})
set(TOOLCHAIN_CONFIG_VARS ${TOOLCHAIN_CONFIG_VARS}
ARM_LINUX_SYSROOT
ENABLE_NEON
ENABLE_VFPV3
)
toolchain_save_config()

Просмотреть файл

@ -0,0 +1,61 @@
set(GCC_COMPILER_VERSION "" CACHE STRING "GCC Compiler version")
set(GNU_MACHINE "arm-linux-gnueabihf" CACHE STRING "GNU compiler triplet")
if(COMMAND toolchain_save_config)
return() # prevent recursive call
endif()
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_VERSION 1)
if(NOT DEFINED CMAKE_SYSTEM_PROCESSOR)
set(CMAKE_SYSTEM_PROCESSOR arm)
else()
#message("CMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR}")
endif()
include("${CMAKE_CURRENT_LIST_DIR}/gnu.toolchain.cmake")
if(NOT "x${GCC_COMPILER_VERSION}" STREQUAL "x")
set(__GCC_VER_SUFFIX "-${GCC_COMPILER_VERSION}")
endif()
find_program(CMAKE_C_COMPILER NAMES ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-gcc${__GCC_VER_SUFFIX})
if (NOT CMAKE_C_COMPILER)
message(FATAL_ERROR "${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-gcc${__GCC_VER_SUFFIX} not found")
endif()
find_program(CMAKE_CXX_COMPILER NAMES ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-g++${__GCC_VER_SUFFIX})
if (NOT CMAKE_CXX_COMPILER)
message(FATAL_ERROR "${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-g++${__GCC_VER_SUFFIX} not found")
endif()
find_program(CMAKE_LINKER NAMES ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-ld${__GCC_VER_SUFFIX} ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-ld)
if(NOT CMAKE_LINKER)
message(FATAL_ERROR "CMAKE_LINKER=${CMAKE_LINKER} is defined")
endif()
find_program(CMAKE_AR NAMES ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-ar${__GCC_VER_SUFFIX} ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-ar)
if(NOT CMAKE_AR)
message(FATAL_ERROR "CMAKE_AR=${CMAKE_AR} is defined")
endif()
if(NOT DEFINED ARM_LINUX_SYSROOT AND DEFINED GNU_MACHINE)
set(ARM_LINUX_SYSROOT /usr/${GNU_MACHINE}${FLOAT_ABI_SUFFIX})
endif()
if(USE_NEON)
message(WARNING "You use obsolete variable USE_NEON to enable NEON instruction set. Use -DENABLE_NEON=ON instead." )
set(ENABLE_NEON TRUE)
elseif(USE_VFPV3)
message(WARNING "You use obsolete variable USE_VFPV3 to enable VFPV3 instruction set. Use -DENABLE_VFPV3=ON instead." )
set(ENABLE_VFPV3 TRUE)
endif()
set(CMAKE_FIND_ROOT_PATH ${CMAKE_FIND_ROOT_PATH} ${ARM_LINUX_SYSROOT})
set(TOOLCHAIN_CONFIG_VARS ${TOOLCHAIN_CONFIG_VARS}
ARM_LINUX_SYSROOT
ENABLE_NEON
ENABLE_VFPV3
)
toolchain_save_config()

Просмотреть файл

@ -29,7 +29,7 @@ endif()
if(NOT DEFINED CMAKE_C_COMPILER) if(NOT DEFINED CMAKE_C_COMPILER)
find_program(CMAKE_C_COMPILER NAMES ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-gcc${__GCC_VER_SUFFIX}) find_program(CMAKE_C_COMPILER NAMES ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-gcc${__GCC_VER_SUFFIX})
else() else()
#message(WARNING "CMAKE_C_COMPILER=${CMAKE_C_COMPILER} is defined") message(WARNING "CMAKE_C_COMPILER=${CMAKE_C_COMPILER} is defined")
endif() endif()
if(NOT DEFINED CMAKE_CXX_COMPILER) if(NOT DEFINED CMAKE_CXX_COMPILER)
find_program(CMAKE_CXX_COMPILER NAMES ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-g++${__GCC_VER_SUFFIX}) find_program(CMAKE_CXX_COMPILER NAMES ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-g++${__GCC_VER_SUFFIX})

Просмотреть файл

@ -99,6 +99,9 @@ This script provides helpers for building msquic.
.PARAMETER SysRoot .PARAMETER SysRoot
Directory with cross-compilation tools Directory with cross-compilation tools
.PARAMETER OneBranch
Build is occuring from Onebranch pipeline.
.EXAMPLE .EXAMPLE
build.ps1 build.ps1
@ -203,7 +206,10 @@ param (
[string]$LibraryName = "msquic", [string]$LibraryName = "msquic",
[Parameter(Mandatory = $false)] [Parameter(Mandatory = $false)]
[string]$SysRoot = "" [string]$SysRoot = "/",
[Parameter(Mandatory = $false)]
[switch]$OneBranch = $false
) )
Set-StrictMode -Version 'Latest' Set-StrictMode -Version 'Latest'
@ -347,20 +353,19 @@ function CMake-Generate {
"arm64" { $Arguments += " -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_OSX_DEPLOYMENT_TARGET=""11.0"""} "arm64" { $Arguments += " -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_OSX_DEPLOYMENT_TARGET=""11.0"""}
} }
} }
if ($Platform -eq "Linux") { if ($Platform -eq "linux") {
$Arguments += " $Generator" $Arguments += " $Generator"
$HostArch = "$([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture)".ToLower() $HostArch = "$([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture)".ToLower()
if ($HostArch -ne $Arch) { if ($HostArch -ne $Arch) {
# cross-compilation if ($OneBranch) {
if ($SysRoot -eq "") { $Arguments += " -DONEBRANCH=1"
Write-Error "SysRoot must be set for cross-compilation."
} }
$Arguments += " -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_CROSSCOMPILING=1 -DCMAKE_SYSROOT=$SysRoot " $Arguments += " -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_CROSSCOMPILING=1 -DCMAKE_SYSROOT=$SysRoot"
switch ($Arch) { switch ($Arch) {
"arm64" { $Arguments += " -DCMAKE_CXX_COMPILER_TARGET=aarch64-linux-gnu -DCMAKE_C_COMPILER_TARGET=aarch64-linux-gnu -DCMAKE_TARGET_ARCHITECTURE=arm64" } "arm64" { $Arguments += " -DCMAKE_CXX_COMPILER_TARGET=aarch64-linux-gnu -DCMAKE_C_COMPILER_TARGET=aarch64-linux-gnu -DCMAKE_TARGET_ARCHITECTURE=arm64" }
"arm" { $Arguments += " -DCMAKE_CXX_COMPILER_TARGET=arm-linux-gnueabihf -DCMAKE_C_COMPILER_TARGET=arm-linux-gnueabihf -DCMAKE_TARGET_ARCHITECTURE=arm" } "arm" { $Arguments += " -DCMAKE_CXX_COMPILER_TARGET=arm-linux-gnueabihf -DCMAKE_C_COMPILER_TARGET=arm-linux-gnueabihf -DCMAKE_TARGET_ARCHITECTURE=arm" }
} }
} }
} }
if($Static) { if($Static) {
$Arguments += " -DQUIC_BUILD_SHARED=off" $Arguments += " -DQUIC_BUILD_SHARED=off"
@ -457,6 +462,7 @@ function CMake-Generate {
$Arguments += " -DANDROID_NDK=""$NDK""" $Arguments += " -DANDROID_NDK=""$NDK"""
$Arguments += " -DCMAKE_TOOLCHAIN_FILE=""$NdkToolchainFile""" $Arguments += " -DCMAKE_TOOLCHAIN_FILE=""$NdkToolchainFile"""
} }
$Arguments += " -DQUIC_LIBRARY_NAME=$LibraryName" $Arguments += " -DQUIC_LIBRARY_NAME=$LibraryName"
$Arguments += " ../../.." $Arguments += " ../../.."

Просмотреть файл

@ -108,6 +108,8 @@ if [ -z ${OUTPUT} ]; then
OUTPUT="artifacts/packages/${OS}/${ARCH}_${CONFIG}_openssl" OUTPUT="artifacts/packages/${OS}/${ARCH}_${CONFIG}_openssl"
fi fi
echo "ARCH=$ARCH PKGARCH=$PKGARCH ARTIFACTS=$ARTIFACTS"
mkdir -p ${OUTPUT} mkdir -p ${OUTPUT}
if [ "$OS" == "linux" ]; then if [ "$OS" == "linux" ]; then

Просмотреть файл

@ -159,11 +159,17 @@ foreach ($Build in $AllBuilds) {
Compress-Archive -Path "$TempDir/*" -DestinationPath (Join-Path $DistDir "msquic_$($Platform)_$BuildBaseName.zip") -Force Compress-Archive -Path "$TempDir/*" -DestinationPath (Join-Path $DistDir "msquic_$($Platform)_$BuildBaseName.zip") -Force
# For now, package only x64 Release binaries # For now, package only x64 Release binaries
if ($Platform -eq "linux" -and $BuildBaseName -like "*x64_Release*") { if ($Platform -eq "linux" -and $BuildBaseName -like "*_Release*") {
Write-Output "Packaging $Build" Write-Output "Packaging $Build"
$OldLoc = Get-Location $OldLoc = Get-Location
Set-Location $RootDir Set-Location $RootDir
& $RootDir/scripts/make-packages.sh --output $DistDir if ($BuildBaseName -like "*arm64_*") {
& $RootDir/scripts/make-packages.sh --output $DistDir --arch arm64
} elseif ($BuildBaseName -like "*arm_*") {
& $RootDir/scripts/make-packages.sh --output $DistDir --arch arm
} else {
& $RootDir/scripts/make-packages.sh --output $DistDir # x64
}
Set-Location $OldLoc Set-Location $OldLoc
} }

Просмотреть файл

@ -79,6 +79,9 @@ param (
[Parameter(Mandatory = $false)] [Parameter(Mandatory = $false)]
[switch]$InstallXdpSdk, [switch]$InstallXdpSdk,
[Parameter(Mandatory = $false)]
[switch]$InstallArm64Toolchain,
[Parameter(Mandatory = $false)] [Parameter(Mandatory = $false)]
[switch]$InstallXdpDriver, [switch]$InstallXdpDriver,
@ -505,19 +508,6 @@ if ($IsLinux) {
Install-Clog2Text Install-Clog2Text
} }
if ($ForOneBranch) {
sh -c "wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null"
sh -c "echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ bionic main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null"
$ForBuild = $true
}
if ($ForOneBranchPackage) {
sudo apt-get update
# used for packaging
sudo apt-get install -y ruby ruby-dev rpm
sudo gem install fpm
}
if ($ForBuild) { if ($ForBuild) {
sudo apt-add-repository ppa:lttng/stable-2.12 sudo apt-add-repository ppa:lttng/stable-2.12
sudo apt-get update sudo apt-get update
@ -525,6 +515,11 @@ if ($IsLinux) {
sudo apt-get install -y build-essential sudo apt-get install -y build-essential
sudo apt-get install -y liblttng-ust-dev sudo apt-get install -y liblttng-ust-dev
sudo apt-get install -y libssl-dev sudo apt-get install -y libssl-dev
if ($InstallArm64Toolchain) {
sudo apt-get install -y gcc-aarch64-linux-gnu
sudo apt-get install -y binutils-aarch64-linux-gnu
sudo apt-get install -y g++-aarch64-linux-gnu
}
# only used for the codecheck CI run: # only used for the codecheck CI run:
sudo apt-get install -y cppcheck clang-tidy sudo apt-get install -y cppcheck clang-tidy
# used for packaging # used for packaging

Просмотреть файл

@ -221,11 +221,21 @@ else()
list(APPEND OPENSSL_CONFIG_FLAGS -latomic) list(APPEND OPENSSL_CONFIG_FLAGS -latomic)
else() else()
if (CMAKE_TARGET_ARCHITECTURE STREQUAL arm64) if (CMAKE_TARGET_ARCHITECTURE STREQUAL arm64)
set(OPENSSL_CONFIG_CMD ${CMAKE_CURRENT_SOURCE_DIR}/openssl/Configure linux-aarch64) if (ONEBRANCH)
set(OPENSSL_CONFIG_CMD ${CMAKE_CURRENT_SOURCE_DIR}/openssl/Configure linux-aarch64
--cross-compile-prefix=${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-)
else()
set(OPENSSL_CONFIG_CMD ${CMAKE_CURRENT_SOURCE_DIR}/openssl/Configure linux-aarch64)
endif()
list(APPEND OPENSSL_CONFIG_FLAGS -latomic) list(APPEND OPENSSL_CONFIG_FLAGS -latomic)
elseif (CMAKE_TARGET_ARCHITECTURE STREQUAL arm) elseif (CMAKE_TARGET_ARCHITECTURE STREQUAL arm)
set(OPENSSL_CONFIG_CMD ${CMAKE_CURRENT_SOURCE_DIR}/openssl/Configure linux-armv4) if (ONEBRANCH)
list(APPEND OPENSSL_CONFIG_FLAGS -latomic) set(OPENSSL_CONFIG_CMD ${CMAKE_CURRENT_SOURCE_DIR}/openssl/Configure linux-armv4
--cross-compile-prefix=${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-)
else()
set(OPENSSL_CONFIG_CMD ${CMAKE_CURRENT_SOURCE_DIR}/openssl/Configure linux-armv4)
endif()
list(APPEND OPENSSL_CONFIG_FLAGS -latomic)
else() else()
set(OPENSSL_CONFIG_CMD ${CMAKE_CURRENT_SOURCE_DIR}/openssl/config set(OPENSSL_CONFIG_CMD ${CMAKE_CURRENT_SOURCE_DIR}/openssl/config
CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER}) CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER})