aboutsummaryrefslogtreecommitdiffstats
path: root/.ci
diff options
context:
space:
mode:
authormattprost <matt.prost@ni.com>2022-06-15 12:48:49 -0500
committerskooNI <60897865+skooNI@users.noreply.github.com>2022-07-20 15:57:20 -0500
commit047085a985d4ccd3397537852f75600982398bf4 (patch)
treec6e1c5bb6cfe5a43a594b132852da3bf72077944 /.ci
parentf1917e661e8bc9802ac10b42c3080ffa0cf8892f (diff)
downloaduhd-047085a985d4ccd3397537852f75600982398bf4.tar.gz
uhd-047085a985d4ccd3397537852f75600982398bf4.tar.bz2
uhd-047085a985d4ccd3397537852f75600982398bf4.zip
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>
Diffstat (limited to '.ci')
-rw-r--r--.ci/templates/job-uhd-build-src.yml1
-rw-r--r--.ci/templates/steps-build-uhd-make-homebrew-macos.yml45
2 files changed, 44 insertions, 2 deletions
diff --git a/.ci/templates/job-uhd-build-src.yml b/.ci/templates/job-uhd-build-src.yml
index a09047e1b..3ef0b6161 100644
--- a/.ci/templates/job-uhd-build-src.yml
+++ b/.ci/templates/job-uhd-build-src.yml
@@ -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
diff --git a/.ci/templates/steps-build-uhd-make-homebrew-macos.yml b/.ci/templates/steps-build-uhd-make-homebrew-macos.yml
index 6feaed48b..44726946b 100644
--- a/.ci/templates/steps-build-uhd-make-homebrew-macos.yml
+++ b/.ci/templates/steps-build-uhd-make-homebrew-macos.yml
@@ -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
@@ -31,5 +44,33 @@ steps:
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