Add Asio package (#24485)
This commit is contained in:
parent
e631ccc6f7
commit
744cedc7e9
1 changed files with 81 additions and 0 deletions
81
var/spack/repos/builtin/packages/asio/package.py
Normal file
81
var/spack/repos/builtin/packages/asio/package.py
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
# Copyright 2013-2021 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 import *
|
||||||
|
import os.path
|
||||||
|
|
||||||
|
|
||||||
|
class Asio(AutotoolsPackage):
|
||||||
|
"""C++ library for network and low-level I/O programming."""
|
||||||
|
|
||||||
|
homepage = "http://think-async.com/Asio/"
|
||||||
|
url = "https://github.com/chriskohlhoff/asio/archive/1.18.2.tar.gz"
|
||||||
|
git = "https://github.com/chriskohlhoff/asio.git"
|
||||||
|
maintainers = ["msimberg"]
|
||||||
|
|
||||||
|
version(
|
||||||
|
"1.18.2",
|
||||||
|
sha256="8d67133b89e0f8b212e9f82fdcf1c7b21a978d453811e2cd941c680e72c2ca32",
|
||||||
|
)
|
||||||
|
|
||||||
|
depends_on("autoconf", type="build")
|
||||||
|
depends_on("automake", type="build")
|
||||||
|
depends_on("m4", type="build")
|
||||||
|
depends_on("libtool", type="build")
|
||||||
|
|
||||||
|
stds = ("11", "14", "17")
|
||||||
|
variant(
|
||||||
|
"cxxstd",
|
||||||
|
default="11",
|
||||||
|
values=stds,
|
||||||
|
multi=False,
|
||||||
|
description="Use the specified C++ standard when building.",
|
||||||
|
)
|
||||||
|
|
||||||
|
variant(
|
||||||
|
"separate_compilation",
|
||||||
|
default=False,
|
||||||
|
description="Compile Asio sources separately",
|
||||||
|
)
|
||||||
|
|
||||||
|
variant(
|
||||||
|
"boost_coroutine",
|
||||||
|
default=False,
|
||||||
|
description="Enable support for Boost.Coroutine.",
|
||||||
|
)
|
||||||
|
depends_on("boost +context +coroutine", when="+boost_coroutine")
|
||||||
|
|
||||||
|
variant("boost_regex", default=False, description="Enable support for Boost.Regex.")
|
||||||
|
depends_on("boost +regex", when="+boost_regex")
|
||||||
|
|
||||||
|
for std in stds:
|
||||||
|
depends_on("boost cxxstd=" + std, when="cxxstd={0} ^boost".format(std))
|
||||||
|
|
||||||
|
def configure_args(self):
|
||||||
|
variants = self.spec.variants
|
||||||
|
|
||||||
|
args = [
|
||||||
|
"CXXFLAGS=-std=c++{0}".format(variants["cxxstd"].value),
|
||||||
|
]
|
||||||
|
|
||||||
|
if variants["separate_compilation"].value:
|
||||||
|
args.append("--enable-separate-compilation")
|
||||||
|
|
||||||
|
if variants["boost_coroutine"].value:
|
||||||
|
args.append("--enable-boost-coroutine")
|
||||||
|
|
||||||
|
if variants["boost_coroutine"].value or variants["boost_regex"].value:
|
||||||
|
args.append("--with-boost={self.spec['boost'].prefix}")
|
||||||
|
|
||||||
|
return args
|
||||||
|
|
||||||
|
def url_for_version(self, version):
|
||||||
|
return "https://github.com/chriskohlhoff/asio/archive/asio-{0}.tar.gz".format(
|
||||||
|
version.dashed
|
||||||
|
)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def configure_directory(self):
|
||||||
|
return os.path.join(self.stage.source_path, "asio")
|
Loading…
Reference in a new issue