name: Build wheels on: push: branches: - main # Manual run workflow_dispatch: env: BUILD_TYPE: Release jobs: # Build wheels for Linux, macOS, and Windows build_wheels: name: Wheel for ${{ matrix.os }}-${{ matrix.python }} runs-on: ${{ matrix.os }} strategy: # Build the other wheels even if one fails fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] python: ['cp310'] # python: ['cp310', 'pp39'] include: - os: ubuntu-latest platform_version: 22.04 link: static+shared toolset: gcc - os: macos-latest platform_version: 11 link: static+shared toolset: clang - os: windows-latest platform_version: 2022 link: static toolset: msvc steps: - name: Checkout repository and submodules uses: actions/checkout@v3 with: submodules: true # Install boost for Windows and macOS - name: Install boost for ${{ matrix.os }} uses: MarkusJx/install-boost@v2.4.4 id: install-boost with: boost_version: 1.80.0 platform_version: ${{ matrix.platform_version }} link: ${{ matrix.link }} toolset: ${{ matrix.toolset }} arch: x86 if: runner.os != 'Linux' - name: Build wheels uses: pypa/cibuildwheel@v2.11.4 env: CIBW_BUILD: ${{ matrix.python }}-* # CIBW_ARCHS: all CIBW_ARCHS_LINUX: x86_64 # CIBW_ARCHS_LINUX: auto # CIBW_ARCHS_LINUX: x86_64 i686 aarch64 CIBW_ARCHS_MACOS: x86_64 # CIBW_ARCHS_MACOS: x86_64 arm64 CIBW_ARCHS_WINDOWS: AMD64 BOOST_ROOT: ${{ steps.install-boost.outputs.BOOST_ROOT }} # Boost_INCLUDE_DIR: ${{ steps.install-boost.outputs.BOOST_ROOT }}/include # Boost_LIBRARY_DIRS: ${{ steps.install-boost.outputs.BOOST_ROOT }}/lib # CIBW_BEFORE_BUILD_LINUX: echo $BOOST_ROOT # CIBW_ENVIRONMENT: BOOST_ROOT='${{ steps.install-boost.outputs.BOOST_ROOT }}' CIBW_ENVIRONMENT_WINDOWS: BOOST_ROOT='${{ steps.install-boost.outputs.BOOST_ROOT }}' CIBW_ENVIRONMENT_MACOS: BOOST_ROOT='${{ steps.install-boost.outputs.BOOST_ROOT }}' # CIBW_ENVIRONMENT_LINUX: BOOST_ROOT=/boost # CIBW_ENVIRONMENT_PASS_LINUX: BOOST_ROOT CIBW_BEFORE_ALL_LINUX: yum install -y boost-devel # CIBW_BEFORE_ALL_LINUX: > # yum install boost-devel # CIBW_BEFORE_BUILD_LINUX: echo $BOOST_ROOT # CIBW_ENVIRONMENT_LINUX: BOOST_ROOT=/boost # CIBW_ENVIRONMENT_PASS_LINUX: BOOST_ROOT - name: Show files run: ls -lh wheelhouse shell: bash - name: Verify clean directory run: git diff --exit-code shell: bash - name: Upload artifacts uses: actions/upload-artifact@v3 with: path: wheelhouse/*.whl