From 4c50915d81998fc343f24954188787d717422291 Mon Sep 17 00:00:00 2001 From: Tahmid Khan <60913202+ta7mid@users.noreply.github.com> Date: Mon, 28 Apr 2025 12:09:52 +0600 Subject: [PATCH] crow: new package (#50009) Co-authored-by: Tahmid A. Khan <60913202+tahmid-khan@users.noreply.github.com> --- .../repos/builtin/packages/crow/package.py | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 var/spack/repos/builtin/packages/crow/package.py diff --git a/var/spack/repos/builtin/packages/crow/package.py b/var/spack/repos/builtin/packages/crow/package.py new file mode 100644 index 00000000000..ca3da81fac6 --- /dev/null +++ b/var/spack/repos/builtin/packages/crow/package.py @@ -0,0 +1,53 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Crow(CMakePackage): + """Crow is a C++ microframework for creating HTTP and WebSocket services. It uses routing + similar to Python's Flask, which makes it easy to use. It is also extremely fast, beating + many other C++ and non-C++ web frameworks.""" + + homepage = "https://crowcpp.org" + url = "https://github.com/CrowCpp/Crow/archive/refs/tags/v1.2.1.2.tar.gz" + + maintainers("ta7mid") + + license("BSD-3-Clause") + + version("1.2.1.2", sha256="dc008515f64c9054250909a16bf0d9173af845d2c6d4e49ed6d3f0f32dfdc747") + version("1.2.0", sha256="c80d0b23c6a20f8aa6fe776669dc8a9fb984046891d2f70bfc0539d16998164b") + + variant( + "asio", + default="standalone", + description="Asio variant to use: the non-boost Asio or Boost.Asio", + values=("standalone", "boost"), + ) + variant( + "ssl", + default=False, + description="Enable support for HTTPS and encrypted WebSocket connections using OpenSSL", + ) + variant( + "compression", default=False, description="Enable support for HTTP compression using zlib" + ) + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("asio", when="asio=standalone") + depends_on("boost+system+date_time", when="asio=boost") + depends_on("openssl", when="+ssl") + depends_on("zlib", when="+compression") + + def cmake_args(self): + return [ + self.define("CROW_BUILD_EXAMPLES", False), + self.define("CROW_BUILD_TESTS", False), + self.define("CROW_USE_BOOST", self.spec.satisfies("asio=boost")), + self.define_from_variant("CROW_ENABLE_SSL", "ssl"), + self.define_from_variant("CROW_ENABLE_COMPRESSION", "compression"), + ]