Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,13 @@ if (DO_PLATFORM_LINUX)

# relro+now thwarts some attack vectors by reordering some ELF data structures and also by making the GOT read-only
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie -z relro -z now")

# Depending on the ordering in PATH environment variable (observed on Ubuntu2004), cmake might search
# /lib instead of /usr/lib which causes Boost::headers to get the non-existent "/include" path.
# (Enable --trace-expand in cmake and look at lines from boost_headers-config.cmake and its callers.)
# Workaround: force cmake to look in "/usr" since the /lib and /bin paths are either
# not relevant for our usage or they are symlinks to /usr/lib and /usr/bin.
set(CMAKE_PREFIX_PATH "/usr")
endif (DO_PLATFORM_LINUX)

if (DO_PLATFORM_WINDOWS AND DO_INCLUDE_SDK)
Expand Down
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -166,33 +166,33 @@ tracked appropriately.

| Architecture | Agent | SDK | Plugin |
|-----|--------|-----|--------|
| x86-64 | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20Simple%20Client%20x86-64%20Build?branchName=main)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=45&branchName=main) | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20CPP-SDK%20x86-64%20Build?branchName=main)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=46&branchName=main) | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20Plugins%20x86-64%20Build?branchName=main)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=47&branchName=main) |
| arm64 | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20Simple%20Client%20ARM%20Build?branchName=main)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=25&branchName=main) | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20CPP-SDK%20ARM%20Build?branchName=main)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=33&branchName=main) | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20Plugins%20ARM%20Build?branchName=main)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=31&branchName=main) |
| x86-64 | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20Simple%20Client%20x86-64%20Build?branchName=develop)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=45&branchName=develop) | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20CPP-SDK%20x86-64%20Build?branchName=develop)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=46&branchName=develop) | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20Plugins%20x86-64%20Build?branchName=develop)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=47&branchName=develop) |
| arm64 | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20Simple%20Client%20ARM%20Build?branchName=develop)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=25&branchName=develop) | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20CPP-SDK%20ARM%20Build?branchName=develop)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=33&branchName=develop) | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20Plugins%20ARM%20Build?branchName=develop)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=31&branchName=develop) |

#### Ubuntu 20.04

| Architecture | Agent | SDK | Plugin |
|-----|--------|-----|--------|
| x86-64 | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20Simple%20Client%20ARM%20Build?branchName=main)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=25&branchName=main) | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20CPP-SDK%20ARM%20Build?branchName=main)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=33&branchName=main) | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20Plugins%20ARM%20Build?branchName=main)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=31&branchName=main) |
| arm64 | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20Simple%20Client%20ARM%20Build?branchName=main)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=25&branchName=main) | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20CPP-SDK%20ARM%20Build?branchName=main)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=33&branchName=main) | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20Plugins%20ARM%20Build?branchName=main)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=31&branchName=main) |
| x86-64 | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20Simple%20Client%20ARM%20Build?branchName=develop)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=25&branchName=develop) | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20CPP-SDK%20ARM%20Build?branchName=develop)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=33&branchName=develop) | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20Plugins%20ARM%20Build?branchName=develop)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=31&branchName=develop) |
| arm64 | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20Simple%20Client%20ARM%20Build?branchName=develop)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=25&branchName=develop) | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20CPP-SDK%20ARM%20Build?branchName=develop)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=33&branchName=develop) | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20Plugins%20ARM%20Build?branchName=develop)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=31&branchName=develop) |

#### Debian 10

| Architecture | Agent | SDK | Plugin |
|-----|--------|-----|--------|
| arm32 | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20Simple%20Client%20ARM%20Build?branchName=main)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=25&branchName=main) | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20CPP-SDK%20ARM%20Build?branchName=main)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=33&branchName=main) | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20Plugins%20ARM%20Build?branchName=main)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=31&branchName=main) |
| arm32 | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20Simple%20Client%20ARM%20Build?branchName=develop)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=25&branchName=develop) | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20CPP-SDK%20ARM%20Build?branchName=develop)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=33&branchName=develop) | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20Plugins%20ARM%20Build?branchName=develop)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=31&branchName=develop) |

### Windows 10/11

| Architecture | SDK |
|-----|--------|
| x86-64 | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20CPP-SDK%20Windows%2010%20x64?branchName=main)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=59&branchName=main) |
| x86-64 | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20CPP-SDK%20Windows%2010%20x64?branchName=develop)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=59&branchName=develop) |

### MacOS

| Architecture | SDK |
|-----|--------|
| x86-64 | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20CPP-SDK%20MacOS%20X64?branchName=main)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=60&branchName=main) |
| x86-64 | [![Build Status](https://deliveryoptimization.visualstudio.com/client/_apis/build/status/DO%20CPP-SDK%20MacOS%20X64?branchName=develop)](https://deliveryoptimization.visualstudio.com/client/_build/latest?definitionId=60&branchName=develop) |

## Contact

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
- template: ../templates/do-docker-jobs.yml
parameters:
targetOsArch: 'debian10_arm32'
imageVersion: '0.8.0' #hard coded version because debian9 support will soon be removed
imageVersion: ${{variables.containerImageVersion}}
stepsTemplate: 'dosdkcpp-docker-steps.yml'

- template: ../templates/do-docker-jobs.yml
Expand Down
14 changes: 6 additions & 8 deletions azure-pipelines/build/windows/templates/dosdkcpp-steps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ parameters:
type: string
default: $(Agent.TempDirectory)\deliveryoptimization_tools\vcpkg
- name: dependencyScriptsLocation
type: string
type: string
default: $(Build.SourcesDirectory)/build/scripts
- name: skipTests
type: boolean
Expand All @@ -22,18 +22,17 @@ steps:
inputs:
targetType: 'inline'
script: |
if (Test-Path "$env:VCPKG_ROOT\vcpkg.exe")
if (Test-Path "$env:VCPKG_INSTALLATION_ROOT\vcpkg.exe")
{
# Must be a version of pipeline agent that has vcpkg pre-installed
Write-Host "Found existing vcpkg in $env:VCPKG_ROOT"
Write-Host "Found existing vcpkg in $env:VCPKG_INSTALLATION_ROOT"
}
else
{
$vcpkgInstallDir = ${{parameters.vcpkgDir}}
$vcpkgInstallDir = "${{parameters.vcpkgDir}}"
Write-Host "Installing vcpkg to $vcpkgInstallDir"
git clone https://github.com/microsoft/vcpkg $vcpkgInstallDir
# Build pipeline agents usually have both these defined
Write-Host "##vso[task.setvariable variable=VCPKG_ROOT;isoutput=true;isreadonly=true;]$vcpkgInstallDir"
Write-Host "##vso[task.setvariable variable=VCPKG_INSTALLATION_ROOT;isoutput=true;isreadonly=true;]$vcpkgInstallDir"
}

Expand All @@ -42,22 +41,21 @@ steps:
- task: Cache@2
inputs:
key: '${{parameters.dependencyScriptsLocation}}/install-vcpkg-deps.ps1 | "${{parameters.targetOsArch}}"'
path: $(VCPKG_ROOT)
path: $(VCPKG_INSTALLATION_ROOT)
cacheHitVar: CACHE_RESTORED

- task: PowerShell@2
condition: and(succeeded(), ne(variables.CACHE_RESTORED, 'true'))
inputs:
targetType: 'filePath'
filePath: ${{parameters.dependencyScriptsLocation}}\install-vcpkg-deps.ps1
arguments: $(VCPKG_ROOT)
displayName: 'Install vcpkg dependencies'

- task: PythonScript@0
inputs:
scriptSource: 'filePath'
scriptPath: 'build/build.py'
arguments: '--project sdk --config ${{parameters.config}} --vcpkgdir $(VCPKG_ROOT) --clean'
arguments: '--project sdk --config ${{parameters.config}} --vcpkgdir $(VCPKG_INSTALLATION_ROOT) --clean'
displayName: 'Build sdk-cpp ${{parameters.targetOsArch}}-${{parameters.config}}'

- task: CmdLine@2
Expand Down
45 changes: 0 additions & 45 deletions build/docker/debian9/arm32/Dockerfile

This file was deleted.

35 changes: 13 additions & 22 deletions build/scripts/bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
# This script handles provisioning of build environments for the Delivery Optimization client components on supported platforms
###

# Treat all command failures as fatal'
# Treat all command failures as fatal
set -e

# Defaults
Expand All @@ -22,7 +22,7 @@ function usage {
cat <<EOM
$(basename $0) - Script to setup development environments for Delivery Optimization
Usage: $(basename $0) --platform <platform to install for> --install <install command>
--platform # Platform to provision, supported platforms: ubuntu1804, ubuntu2004, debian9, debian 10, osx. Required
--platform # Platform to provision, supported platforms: ubuntu1804, ubuntu2004, debian 10, osx. Required
--install # Which command to run, supported commands: build, developertools, containertools, qemu, all. Default is all
EOM
exit 1
Expand All @@ -39,7 +39,7 @@ function parseArgs {
;;
--platform | -p)
PLATFORM="${2,,}"
if [[ "$PLATFORM" == "debian9" || "$PLATFORM" == "debian10" || "$PLATFORM" == "ubuntu1804" || "$PLATFORM" == "ubuntu2004" || "$PLATFORM" == "osx" ]];
if [[ "$PLATFORM" == "debian10" || "$PLATFORM" == "ubuntu1804" || "$PLATFORM" == "ubuntu2004" || "$PLATFORM" == "osx" ]];
then
echo -e "[INFO] Platform set to: ${PLATFORM}"
else
Expand Down Expand Up @@ -86,32 +86,19 @@ function installBuildDependencies

apt-get install -y make build-essential g++ gdb gdbserver gcc git wget
apt-get install -y python3 ninja-build

if [[ "$PLATFORM" == "debian9" ]];
then
# libmsgsl-dev package not available on Debian9. Install from source.
cd /tmp/
git clone https://github.com/Microsoft/GSL.git
cd GSL/
git checkout tags/v2.0.0
cmake -DGSL_TEST=OFF .
make
make install
else
apt-get -y install cmake libmsgsl-dev
fi

apt-get install -y cmake libmsgsl-dev
apt-get install -y libboost-system-dev libboost-filesystem-dev libboost-program-options-dev
apt-get install -y libproxy-dev libssl-dev uuid-dev libcurl4-openssl-dev

rm -rf /tmp/gtest
mkdir /tmp/gtest
cd /tmp/gtest
pushd /tmp/gtest

if [[ "$PLATFORM" == "ubuntu2004" || "$PLATFORM" == "debian10" ]];
then
# The latest native-version of gtest on ubuntu2004 and debian10 currently has a bug where CMakeLists doesn't declare an install target, causing 'make install' to fail
# Clone from source and use release-1.10.0 instead, since gtest is a source package anyways
# The latest native-version of gtest on ubuntu2004 and debian10 currently has a bug where
# CMakeLists doesn't declare an install target, causing 'make install' to fail.
# Clone from source and use release-1.10.0 instead, since gtest is a source package anyways.
git clone https://github.com/google/googletest.git .
git checkout release-1.10.0
mkdir cmake
Expand All @@ -126,6 +113,10 @@ function installBuildDependencies
make
make install
fi

popd
rm -rf /tmp/gtest

else
echo "[INFO] Builds not supported on this platform, no dependencies installed"
fi
Expand Down Expand Up @@ -196,7 +187,7 @@ function installAll

function isSupportedLinux()
{
if [[ "$PLATFORM" == "debian9" || "$PLATFORM" == "debian10" || "$PLATFORM" == "ubuntu1804" || "$PLATFORM" == "ubuntu2004" ]];
if [[ "$PLATFORM" == "debian10" || "$PLATFORM" == "ubuntu1804" || "$PLATFORM" == "ubuntu2004" ]];
then
return 0
else
Expand Down
6 changes: 3 additions & 3 deletions build/scripts/install-vcpkg-deps.ps1
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.

if (-not (Test-Path "$env:VCPKG_ROOT\vcpkg.exe"))
if (-not (Test-Path "$env:VCPKG_INSTALLATION_ROOT\vcpkg.exe"))
{
Write-Host "vcpkg not found in $env:VCPKG_ROOT"
Write-Host "vcpkg not found in $env:VCPKG_INSTALLATION_ROOT"
exit 1
}

cd $env:VCPKG_ROOT
cd $env:VCPKG_INSTALLATION_ROOT
git checkout 2021.05.12
.\bootstrap-vcpkg.bat
.\vcpkg integrate install
Expand Down