spack/var/spack/repos/builtin/packages/blast-plus/package.py
Adam J. Stewart 603569e321
Style: black 23, skip magic trailing comma (#35351)
* Style: black 23, skip magic trailing commas

* isort should use same line length as black

* Fix unused import

* Update version of black used in CI

* Update new packages

* Update new packages
2023-02-16 23:06:12 -06:00

164 lines
6.4 KiB
Python

# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class BlastPlus(AutotoolsPackage):
"""Basic Local Alignment Search Tool."""
homepage = "https://blast.ncbi.nlm.nih.gov/"
url = "https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.13.0/ncbi-blast-2.13.0+-src.tar.gz"
maintainers("weijianwen")
version("2.13.0", sha256="89553714d133daf28c477f83d333794b3c62e4148408c072a1b4620e5ec4feb2")
version("2.12.0", sha256="fda3c9c9d488cad6c1880a98a236d842bcf3610e3e702af61f7a48cf0a714b88")
version("2.11.0", sha256="d88e1858ae7ce553545a795a2120e657a799a6d334f2a07ef0330cc3e74e1954")
version("2.9.0", sha256="a390cc2d7a09422759fc178db84de9def822cbe485916bbb2ec0d215dacdc257")
version("2.8.1", sha256="e03dd1a30e37cb8a859d3788a452c5d70ee1f9102d1ee0f93b2fbd145925118f")
version("2.7.1", sha256="10a78d3007413a6d4c983d2acbf03ef84b622b82bd9a59c6bd9fbdde9d0298ca")
version("2.6.0", sha256="0510e1d607d0fb4389eca50d434d5a0be787423b6850b3a4f315abc2ef19c996")
version("2.2.30", sha256="26f72d51c81b9497f33b7274109565c36692572faef4d72377f79b7e59910e40")
# homebrew sez: Fixed upstream in future version > 2.6
# But this bug sez that it will be fixed in 2.6
# https://github.com/Homebrew/homebrew-science/pull/4740
# The 2.6.0 src still matches the "before" bit of the patch
# so it's probably still "needed".
# On the other hand, the `find` command is broken and there
# aren't any .svn dirs in the tree, so I've updated their patch
# to just comment out the block.
patch("blast-make-fix2.5.0.diff", when="@2.5.0:2.6.0")
# See https://github.com/Homebrew/homebrew-science/issues/2337#issuecomment-170011511
@when("@:2.2.31")
def patch(self):
filter_file(
"2.95* | 2.96* | 3.* | 4.* )",
"2.95* | 2.96* | 3.* | 4.* | 5.* )",
"c++/src/build-system/configure",
string=True,
)
# No...
# depends_on :mysql => :optional
depends_on("cpio", type="build")
variant("static", default=False, description="Build with static linkage")
variant("jpeg", default=True, description="Build with jpeg support")
variant("png", default=True, description="Build with png support")
variant("freetype", default=True, description="Build with freetype support")
# variant('hdf5', default=True,
# description='Build with hdf5 support')
variant("gnutls", default=True, description="Build with gnutls support")
variant("openssl", default=True, description="Build with openssl support")
variant("zlib", default=True, description="Build with zlib support")
variant("bzip2", default=True, description="Build with bzip2 support")
variant("lzo", default=True, description="Build with lzo support")
variant("pcre", default=True, description="Build with pcre support")
variant("perl", default=True, description="Build with perl support")
variant("python", default=True, description="Build with python support")
depends_on("jpeg", when="+jpeg")
depends_on("libpng", when="+png")
depends_on("freetype", when="+freetype")
# depends_on('hdf5', when='+hdf5')
depends_on("gnutls", when="+gnutls")
depends_on("openssl", when="+openssl")
depends_on("zlib", when="+zlib")
depends_on("bzip2", when="+bzip2")
depends_on("lzo", when="+lzo")
depends_on("pcre", when="+pcre")
depends_on("python", when="+python")
depends_on("perl", when="+perl")
depends_on("lmdb", when="@2.7.1:")
configure_directory = "c++"
def configure_args(self):
spec = self.spec
config_args = ["--with-bin-release", "--without-debug", "--with-mt", "--without-boost"]
if spec.target.family != "aarch64":
config_args.append("--with-64")
if "+static" in spec:
config_args.append("--with-static")
# FIXME
# args << "--with-static-exe" unless OS.linux?
# args << "--with-dll" if build.with? "dll"
else:
config_args.extend(["--with-dll", "--without-static", "--without-static-exe"])
if "+jpeg" in spec:
config_args.append("--with-jpeg={0}".format(self.spec["jpeg"].prefix))
else:
config_args.append("--without-jpeg")
if "+png" in spec:
config_args.append("--with-png={0}".format(self.spec["libpng"].prefix))
else:
config_args.append("--without-png")
if "+freetype" in spec:
config_args.append("--with-freetype={0}".format(self.spec["freetype"].prefix))
else:
config_args.append("--without-freetype")
config_args.append("--without-hdf5")
# if '+hdf5' in spec:
# # FIXME
# config_args.append(
# '--with-hdf5={0}'.format(self.spec['hdf5'].prefix)
# )
# else:
# config_args.append('--without-hdf5')
if "+zlib" in spec:
config_args.append("--with-z={0}".format(self.spec["zlib"].prefix))
else:
config_args.append("--without-z")
if "+bzip2" in spec:
config_args.append("--with-bz2={0}".format(self.spec["bzip2"].prefix))
else:
config_args.append("--without-bz2")
if "+lzo" in spec:
config_args.append("--with-lzo={0}".format(self.spec["lzo"].prefix))
else:
config_args.append("--without-lzo")
if "+gnutls" in spec:
config_args.append("--with-gnutls={0}".format(self.spec["gnutls"].prefix))
else:
config_args.append("--without-gnutls")
if "+openssl" in spec:
config_args.append("--with-openssl={0}".format(self.spec["openssl"].prefix))
else:
config_args.append("--without-openssl")
if "+pcre" in spec:
config_args.append("--with-pcre={0}".format(self.spec["pcre"].prefix))
else:
config_args.append("--without-pcre")
if "+python" in spec:
config_args.append("--with-python={0}".format(self.spec["python"].home))
else:
config_args.append("--without-python")
if "+perl" in spec:
config_args.append("--with-perl={0}".format(self.spec["perl"].prefix))
else:
config_args.append("--without-python")
return config_args