packages feed

bearlibterminal-0.1.0.0: bearlibterminal.cabal

cabal-version: 3.6
name:          bearlibterminal
version:       0.1.0.0
synopsis:      Low-level Haskell bindings to the BearLibTerminal graphics library.
description:
  A Haskell wrapper for a graphics library for making roguelike-style games.
  From the [BearLibTerminal documentation](http://foo.wyrd.name/en:bearlibterminal):
    BearLibTerminal is a library that creates a terminal-like window facilitating flexible textual output and uncomplicated input processing.
    A lot of roguelike games intentionally use aesthetic textual or pseudographic visual style. However, native output via the command line
    interface usually has a few annoying shortcomings such as low speed or palette and font restrictions.
    Using an extended character set (several languages at once or complicated pseudographics) may also be tricky. BearLibTerminal solves
    that by providing its own window with a grid of character cells and simple yet powerful API for configuration and textual output.

homepage:      https://github.com/PPKFS/bearlibterminal-hs
bug-reports:   https://github.com/PPKFS/bearlibterminal-hs/issues
license:       MIT
author:        Avery
maintainer:    Avery <ppkfs@outlook.com>
copyright:     2024-2025 Avery
category:      Game Development
build-type:    Simple
tested-with:   GHC == 9.8.2

source-repository head
  type:     git
  location: https://github.com/PPKFS/bearlibterminal-hs.git

common common-options
  build-depends:
      base >= 4.17.2 && < 5
    , text >= 2.1.1 && < 3
    , bytestring >= 0.12.1 && < 2
    , mtl >= 2.3.1 && < 3

  ghc-options:
    -Wall -Wcompat -Widentities -Wredundant-constraints
    -Wno-unused-packages -Wno-deprecations -fhide-source-paths
    -Wno-unused-top-binds -Wmissing-deriving-strategies

  default-language: GHC2021
  default-extensions:
    DerivingStrategies
    OverloadedStrings
    MultiWayIf
    BlockArguments
    LambdaCase

library
  import: common-options
  hs-source-dirs:  src
  exposed-modules:
    BearLibTerminal
    BearLibTerminal.Raw
    BearLibTerminal.Keycodes
    BearLibTerminal.Terminal.CString
    BearLibTerminal.Terminal.Color
    BearLibTerminal.Terminal.Print
    BearLibTerminal.Terminal.Set
    BearLibTerminal.Terminal.String
  extra-libraries: stdc++ BearLibTerminal
  include-dirs:
    cbits
  includes:
    cbits/BearLibTerminal.h
    cbits/BearLibTerminalExtras.h
  install-includes:
    cbits/BearLibTerminal.h
    cbits/BearLibTerminalExtras.h

executable omni
  import: common-options
  build-depends:
    bearlibterminal >= 0.1.0.0 && <= 0.2.0.0,
    containers >= 0.6.8 && < 1,
    formatting >= 7.2.0 && < 8,
    time >= 1.12.2 && < 2,
    random >= 1.3.0 && < 2,
    vector >= 0.13.2 && < 1,
    word8 >= 0.1.3 && < 1,
  hs-source-dirs:  omni
  main-is: Main.hs
  other-modules:
    Omni.BasicOutput
    Omni.DefaultFont
    Omni.Tilesets
    Omni.ManualCellsize