follow cibuildwheel docs for building python wheels. initial attempt.
diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml
new file mode 100644
index 0000000..bcd800c
--- /dev/null
+++ b/.github/workflows/build_wheels.yml
@@ -0,0 +1,53 @@
+name: Build Python Wheels
+
+on: [push, pull_request]
+
+env:
+ BUILD_TYPE: Release
+
+jobs:
+ build_wheels:
+ name: Build wheels on ${{ matrix.config.name }}
+ runs-on: ${{ matrix.config.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ config:
+ - {
+ name: "MacOS Latest, Clang",
+ os: macos-latest,
+ cc: "clang", cxx: "clang++"
+ }
+ - {
+ name: "Ubuntu Latest, GCC",
+ os: ubuntu-latest,
+ cc: "gcc", cxx: "g++"
+ }
+ - {
+ name: "Windows Latest, MSVC",
+ os: windows-latest,
+ cc: "cl", cxx: "cl",
+ environment_script: "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars64.bat"
+ }
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ with:
+ submodules: true
+ persist-credentials: false
+
+ - name: Set up Python 3.x
+ uses: actions/setup-python@v2
+ with:
+ python-version: '3.8' # 3.x grabs latest minor version of python3, but not always fully supported (dependencies)
+
+ - name: Install Python dependencies
+ run: python -m pip install --upgrade pip setuptools wheel numpy tox pytest cibuildwheel==2.1.1 twine
+
+ - name: Build wheels
+ run: python -m cibuildwheel --output-dir wheelhouse
+
+ - uses: actions/upload-artifact@v2
+ with:
+ path: ./wheelhouse/*.whl