summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorGlenn Johnson <glenn-johnson@uiowa.edu>2021-07-28 10:29:32 -0500
committerGitHub <noreply@github.com>2021-07-28 17:29:32 +0200
commite29168ad023950dafecfea7971458b471637ecd8 (patch)
tree6d62c54196dae898eb2bc80c1618d2b85e4e854c /var
parentbe2e224e75ed74e16660d400d38ef0d098bc45bb (diff)
downloadspack-e29168ad023950dafecfea7971458b471637ecd8.tar.gz
spack-e29168ad023950dafecfea7971458b471637ecd8.tar.bz2
spack-e29168ad023950dafecfea7971458b471637ecd8.tar.xz
spack-e29168ad023950dafecfea7971458b471637ecd8.zip
gurobi: add v9.1.2 and extend python (#25064)
- add version 9.1.2 - set a license file - set the license environment variable - remove the download and license information out of the description so it does not show up in environment modules - extend python and set python version constraints - build gurobipy to be used in any compatible python, used for more extensive computations than the gurobi shell - remove preexisting PYTHONPATH from gurobi.sh as the shell uses a built-in python, which will likely be different from "system" python - add maintainer
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/gurobi/package.py37
1 files changed, 27 insertions, 10 deletions
diff --git a/var/spack/repos/builtin/packages/gurobi/package.py b/var/spack/repos/builtin/packages/gurobi/package.py
index 287ff210da..849096076d 100644
--- a/var/spack/repos/builtin/packages/gurobi/package.py
+++ b/var/spack/repos/builtin/packages/gurobi/package.py
@@ -11,33 +11,50 @@ from spack import *
class Gurobi(Package):
"""The Gurobi Optimizer was designed from the ground up to be the fastest,
most powerful solver available for your LP, QP, QCP, and MIP (MILP, MIQP,
- and MIQCP) problems.
+ and MIQCP) problems."""
- Note: Gurobi is licensed software. You will need to create an account on
- the Gurobi homepage and download Gurobi Optimizer yourself. Spack will
- search your current directory for the download file. Alternatively, add
- this file to a mirror so that Spack can find it. For instructions on how to
- set up a mirror, see http://spack.readthedocs.io/en/latest/mirrors.html
-
- Please set the path to licence file with the following command (for bash)
- export GRB_LICENSE_FILE=/path/to/gurobi/license/. See section 4 in
- $GUROBI_HOME/docs/quickstart_linux.pdf for more details."""
+ # Note: Gurobi is licensed software. You will need to create an account on
+ # the Gurobi homepage and download Gurobi Optimizer yourself. Spack will
+ # search your current directory for the download file. Alternatively, add
+ # this file to a mirror so that Spack can find it. For instructions on how
+ # to set up a mirror, see
+ # http://spack.readthedocs.io/en/latest/mirrors.html
homepage = "http://www.gurobi.com/index"
manual_download = True
+ maintainers = ['glennpj']
+
+ version('9.1.2', sha256='7f60bd675f79476bb2b32cd632aa1d470f8246f2b033b7652d8de86f6e7e429b')
version('7.5.2', '01f6dbb8d165838cca1664a1a14e4a85')
# Licensing
license_required = True
+ license_files = ['gurobi.lic']
license_vars = ['GRB_LICENSE_FILE']
license_url = 'http://www.gurobi.com/downloads/download-center'
+ extends('python')
+ depends_on('python@2.7,3.6:')
+
def url_for_version(self, version):
return "file://{0}/gurobi{1}_linux64.tar.gz".format(os.getcwd(), version)
+ def patch(self):
+ # Strip out existing PYTHONPATH as the presence of that will generally
+ # break given that Spack has likely set that for a different Python.
+ gurobi_shell = join_path('linux64', 'bin', 'gurobi.sh')
+ filter_file(r':\$PYTHONPATH', '', gurobi_shell)
+
def setup_run_environment(self, env):
env.set('GUROBI_HOME', self.prefix)
+ env.set('GRB_LICENSE_FILE', join_path(self.prefix, 'gurobi.lic'))
def install(self, spec, prefix):
install_tree('linux64', prefix)
+
+ @run_after('install')
+ def gurobipy(self):
+ with working_dir('linux64'):
+ python = which('python')
+ python('setup.py', 'install', '--prefix={0}'.format(self.prefix))