ci: Build init_usrp example for macOS

Generating this binary allows us to sanity check the linking for UHD
builds on macOS.

Signed-off-by: mattprost <matt.prost@ni.com>
This commit is contained in:
mattprost 2022-06-15 12:48:49 -05:00 committed by skooNI
parent f1917e661e
commit 047085a985
2 changed files with 44 additions and 2 deletions

View File

@ -83,6 +83,7 @@ jobs:
parameters:
uhdSrcDir: $(Build.SourcesDirectory)
uhdBuildDir: $(Build.BinariesDirectory)/uhddev/build
uhdGenerateTestBinaries: true
- ${{ if eq(parameters.toolset, 'ninja') }}:
- template: steps-build-uhd-ninja.yml

View File

@ -3,9 +3,14 @@ parameters:
type: string
- name: uhdBuildDir
type: string
- name: uhdGenerateTestBinaries
type: boolean
default: false
steps:
- script: |
mkdir -p ${{ parameters.uhdBuildDir }}
cd ${{ parameters.uhdBuildDir }}
pyenv exec python3 -m venv ${{ parameters.uhdBuildDir }}/pyenv
source ${{ parameters.uhdBuildDir }}/pyenv/bin/activate
python3 -m pip install mako numpy requests ruamel.yaml
@ -15,12 +20,20 @@ steps:
mkdir -p ${{ parameters.uhdBuildDir }}
cd ${{ parameters.uhdBuildDir }}
source ${{ parameters.uhdBuildDir }}/pyenv/bin/activate
cmake ${{ parameters.uhdSrcDir }}/host
if [[ "${{ parameters.uhdGenerateTestBinaries }}" = "True" ]]; then
mkdir -p ${{ parameters.uhdBuildDir }}-installed
echo "Setting CMAKE_INSTALL_PREFIX to ${{ parameters.uhdBuildDir }}-installed"
export UHD_CI_CMAKE_OPTIONS="-DCMAKE_INSTALL_PREFIX=${{ parameters.uhdBuildDir }}-installed"
fi
cmake \
$UHD_CI_CMAKE_OPTIONS \
-DENABLE_SIM=OFF \
${{ parameters.uhdSrcDir }}/host
displayName: cmake homebrew macOS UHD
- script: |
source ${{ parameters.uhdBuildDir }}/pyenv/bin/activate
cd ${{ parameters.uhdBuildDir }}
source ${{ parameters.uhdBuildDir }}/pyenv/bin/activate
make -j$(sysctl -n hw.ncpu) -k
displayName: make homebrew macOS UHD
@ -30,6 +43,34 @@ steps:
continueOnError: true
displayName: ctest make homebrew macOS UHD
- script: |
cd ${{ parameters.uhdBuildDir }}
source ${{ parameters.uhdBuildDir }}/pyenv/bin/activate
make install
displayName: Install uhd to uhdBuildDir-installed
condition: and(succeeded(), ${{ parameters.uhdGenerateTestBinaries }})
# init_usrp is an example for how to write third-party apps using CMake that
# link against UHD. This will test the UHDConfig.cmake (and related) CMake
# files, as well as the example. We can only do this if UHD was previously
# installed.
# We need to match the install prefix with the previous step in order to find
# UHDConfig.cmake.
- script: |
export EXAMPLE_BUILD_DIR="${{ parameters.uhdBuildDir }}/build_init_usrp"
export EXAMPLE_SRC_DIR="${{ parameters.uhdSrcDir }}/host/examples/init_usrp"
mkdir -p $EXAMPLE_BUILD_DIR
cd $EXAMPLE_BUILD_DIR
source ${{ parameters.uhdBuildDir }}/pyenv/bin/activate
cmake \
-DENABLE_SIM=OFF \
-DCMAKE_INSTALL_PREFIX=${{ parameters.uhdBuildDir }}-installed \
-DCMAKE_PREFIX_PATH=${{ parameters.uhdBuildDir }}-installed \
$EXAMPLE_SRC_DIR && \
make -j$(sysctl -n hw.ncpu) -k
displayName: Build init_usrp
condition: and(succeeded(), ${{ parameters.uhdGenerateTestBinaries }})
- script: |
rm -rf ${{ parameters.uhdBuildDir }}/pyenv
displayName: Delete venv