Source: storm-lang
Section: devel
Priority: optional
Maintainer: Filip Strömbäck <filip@fprg.se>
Build-Depends: debhelper (>= 11),
	       g++ (>= 8.3.0),
	       libssl-dev,
	       libpng-dev,
	       libjpeg-dev,
	       libgtk-3-dev,
	       libopenal-dev,
	       libmpg123-dev,
	       libogg-dev,
	       libflac-dev,
	       libvorbis-dev,
	       mymake (>= 2.3.0),
	       pkg-config
Standards-Version: 4.6.0
Homepage: https://storm-lang.org/
#Vcs-Browser: https://salsa.debian.org/debian/storm
#Vcs-Git: https://salsa.debian.org/debian/storm.git

Package: storm-lang
Architecture: amd64 arm64
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Platform for extensible languages
 Storm is a language system for extensible languages. It allows
 creating multiple languages and DSLs that are able to operate
 in close cooperation. Not too dissimilar from LISP systems, but
 with custom syntax.
Recommends: storm-lang-crypto, storm-lang-graphics, storm-lang-layout, storm-lang-ui, storm-lang-presentation, storm-lang-sql

Package: storm-lang-crypto
Architecture: amd64 arm64
Depends: storm-lang (>= ${source:Version}), ${shlibs:Depends}, ${misc:Depends}
Description: Cryptographic library for Storm
 Cryptographic primitives (for example for estabilshing SSL tunnels)
 for the Storm language platform.

Package: storm-lang-graphics
Architecture: amd64 arm64
Depends: storm-lang (>= ${source:Version}), ${shlibs:Depends}, ${misc:Depends}
Description: Graphics library for Storm
 Provides the ability to load various image types to Storm programs.

Package: storm-lang-layout
Architecture: all
Depends: storm-lang (>= ${source:Version}), ${misc:Depends}
Description: Layout library for Storm
 This library provides a language extension for declaring layouts
 in the Storm language platform.

Package: storm-lang-ui
Architecture: amd64 arm64
Depends: storm-lang (>= ${source:Version}), storm-lang-layout (>= ${source:Version}), ${shlibs:Depends}, ${misc:Depends}
Description: UI library for Storm (using Gtk3)
 UI library for the Storm language platform using Gtk+.

Package: storm-lang-presentation
Architecture: all
Depends: storm-lang (>= ${source:Version}), storm-lang-ui (>= ${source:Version}), storm-lang-layout (>= ${source:Version}), ${misc:Depends}
Description: Presentation library for Storm
 Library with language extensions for conveniently creating and showing
 presentations in the Storm language platform.

Package: storm-lang-sql
Architecture: amd64 arm64
Depends: storm-lang (>= ${source:Version}), ${shlibs:Depends}, ${misc:Depends}
Description: SQL library for Storm
 Generic SQL database interface to the Storm language platform, complete with
 custom syntax. Provides bindings for SQLite at the moment.

Package: storm-lang-sound
Architecture: amd64 arm64
Depends: storm-lang (>= ${source:Version}), ${shlibs:Depends}, ${misc:Depends}
Description: Sound playback library for Storm
 Sound playback library for the Storm language platform. Supports
 decoding flac, ogg and mp3 streams.

Package: progvis
Section: education
Architecture: all
Depends: storm-lang (>= ${source:Version}), storm-lang-ui (>= ${source:Version}), storm-lang-sql (>= ${source:Version}), storm-lang-layout (>= ${source:Version}), storm-lang-crypto (>= ${source:Version}), ${misc:Depends}
Suggests: progvis-examples
Description: Program visualization tool for C/C++ (and others)
 A program visualization tool written in Storm. Supports a subset
 of C/C++, and other languages supported by the Storm language
 platform. Aimed at showing how concurrent programs interact with
 pointers/references and other fundamental programming concepts.

Package: progvis-examples
Section: education
Architecture: all
Depends: progvis, ${misc:Depends}
Description: Set of example programs for progvis
 Programs developed for Progvis, illustrating different aspects
 of concurrency and memory handling.
 .
 Progvis is a program visualization tool written in Storm. Supports a
 subset of C/C++, and other languages supported by the Storm language
 platform. Aimed at showing how concurrent programs interact with
 pointers/references and other fundamental programming concepts.
