Skip to content

cvxopt/cvxopt-wheels

Repository files navigation

CVXOPT wheels for macOS, Linux, and Windows

This repository automates CVXOPT wheel building using multibuild, Travis CI, and AppVeyor.

Build Status AppVeyor Build Status

Copyright and license

CVXOPT is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

CVXOPT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

What is being built?

We currently build the following:

  • Self-contained wheels for macOS and Linux (manylinux1), including the optional dependencies DSDP, FFTW, GLPK, and GSL. The Linux wheels are linked against OpenBLAS, and the macOS wheels are linked against Accelerate.
  • Wheels for Windows without any of the optional dependencies (Python 3.5+ wheels include GLPK). The wheels are linked against OpenBLAS.

The build process performs the following steps:

  • downloads SuiteSparse source
  • builds OpenBLAS (Linux)
  • builds all optional dependencies (DSDP, FFTW, GLPK, and GSL) (macOS/Linux)
  • builds CVXOPT wheel, linking against dependencies
  • processes wheel using delocate (macOS) or auditwheel (Linux) to include dependencies in wheel
  • uploads wheel to a Rackspace container (macOS/Linux) or to AppVeyor cloud storage (Windows)

Version numbers for the dependencies can be found in the library_builders.sh source file.

Triggering a build

The build process is triggered by making a commit to the cvxopt-wheels repository. The variable BUILD_COMMIT in .travis.yml and .appveyor.yml specifies which commit from the CVXOPT repository to build.