build the bundled onetbb as a shared library on windows #277
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Workflow derived from https://github.com/r-lib/actions/tree/v2/examples | |
| # Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help | |
| on: | |
| push: | |
| branches: [main, master] | |
| pull_request: | |
| branches: [main, master] | |
| name: R-CMD-check | |
| jobs: | |
| R-CMD-check: | |
| runs-on: ${{ matrix.config.os }} | |
| name: ${{ matrix.config.os }} (${{ matrix.config.r }}) | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| config: | |
| - {os: macOS-latest, r: 'release'} | |
| - {os: ubuntu-latest, r: 'release'} | |
| - {os: ubuntu-24.04-arm, r: 'release'} | |
| - {os: windows-latest, r: 'release'} | |
| - {os: windows-11-arm, r: 'release'} | |
| # Rtools42 provides only a pre-oneTBB copy of TBB, so this is the | |
| # one configuration that builds the bundled oneTBB on Windows | |
| - {os: windows-latest, r: '4.2'} | |
| env: | |
| GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
| R_KEEP_PKG_SOURCE: yes | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: r-lib/actions/setup-r@v2 | |
| with: | |
| r-version: ${{ matrix.config.r }} | |
| use-public-rspm: true | |
| - uses: r-lib/actions/setup-r-dependencies@v2 | |
| with: | |
| extra-packages: any::rcmdcheck | |
| needs: check | |
| - uses: r-lib/actions/check-r-package@v2 | |
| # Verify that a package can still compile and link against the TBB API that | |
| # RcppParallel advertises. This is the contract rstan (via StanHeaders) | |
| # depends on, and it is not covered by R CMD check: RcppParallel can install | |
| # perfectly well while leaving downstream packages unable to build. | |
| downstream: | |
| runs-on: ${{ matrix.config.os }} | |
| name: downstream (${{ matrix.config.os }}, ${{ matrix.config.r }}) | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| config: | |
| # Rtools42 has no oneTBB, so this one builds the bundled copy | |
| - {os: windows-latest, r: '4.2'} | |
| - {os: windows-latest, r: 'release'} | |
| # RcppParallelLibs() changed for every Windows platform, and arm64 | |
| # has both its own vendored patch and itt_notify compiled out, so | |
| # its export surface is the one most likely to differ | |
| - {os: windows-11-arm, r: 'release'} | |
| env: | |
| GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
| VERBOSE: 1 | |
| # the default shell on Windows runners is PowerShell, which aliases 'r' | |
| # to Invoke-History and so mangles 'R CMD INSTALL' | |
| defaults: | |
| run: | |
| shell: bash | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: r-lib/actions/setup-r@v2 | |
| with: | |
| r-version: ${{ matrix.config.r }} | |
| use-public-rspm: true | |
| - name: install RcppParallel | |
| run: R CMD INSTALL --preclean . | |
| - name: build against RcppParallel | |
| run: Rscript .github/scripts/tbb-downstream-check.R |