diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 2db2d49..2143817 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -21,7 +21,7 @@ jobs: fail-fast: false matrix: python-version: ["3.8", "3.9", "3.10", "3.11"] - platform: [ubuntu-latest, macos-latest] + platform: [ubuntu-latest, macos-latest, windows-latest] steps: - uses: actions/checkout@v3 with: diff --git a/setup.py b/setup.py index c6b4f2f..4978725 100644 --- a/setup.py +++ b/setup.py @@ -1,16 +1,27 @@ +import os + from ctypes import util from Cython.Build import cythonize from setuptools import setup from setuptools.extension import Extension -libraries = ["scip"] +libraries = ["libscip"] if os.name == "nt" else ["scip"] +include_dirs = ['ilpy/impl'] +library_dirs = [] compile_args = ["-O3", "-std=c++11", "-DHAVE_SCIP"] +# include conda environment windows include/lib if it exists +# this will be done automatically by conda build, but is useful if someone +# tries to build this directly with pip install in a conda environment +if os.name == "nt" and "CONDA_PREFIX" in os.environ: + include_dirs.append(os.path.join(os.environ["CONDA_PREFIX"], "Library", "include")) + library_dirs.append(os.path.join(os.environ["CONDA_PREFIX"], "Library", "lib")) + # look for various gurobi versions, which are annoyingly # suffixed with the version number, and wildcards don't work for v in ["100"]: - GUROBI_LIB = f"gurobi{v}" + GUROBI_LIB = f"libgurobi{v}" if os.name == 'nt' else f"gurobi{v}" if (gurolib := util.find_library(GUROBI_LIB)) is not None: print("FOUND GUROBI library: ", gurolib) libraries.append(GUROBI_LIB) @@ -38,8 +49,9 @@ 'ilpy/wrapper.pyx', ], extra_compile_args=compile_args, - include_dirs=['ilpy/impl'], + include_dirs=include_dirs, libraries=libraries, + library_dirs=library_dirs, language='c++') ]), extras_require={