cabal-version: 2.4
-- Initial package description 'balkon.cabal' generated by
-- 'cabal init'. For further documentation, see:
-- http://haskell.org/cabal/users-guide/
--
-- The name of the package.
name: balkon
-- The package version.
-- See the Haskell package versioning policy (PVP) for standards
-- guiding when and how versions should be incremented.
-- https://pvp.haskell.org
-- PVP summary: +-+------- breaking API changes
-- | | +----- non-breaking API additions
-- | | | +--- code changes with no API change
version: 0.1.0.0
stability: experimental
-- A short (one-line) description of the package.
synopsis: Text layout engine built on top of HarfBuzz.
-- A longer description of the package.
description:
.
Given an input text and formatting options, Balkón produces an inline
layout with defined glyph positions and box coordinates, all within a
containing unit called a paragraph.
.
Internally, HarfBuzz is used to shape individual runs of text, each of
which fits within one line and has a constant script, direction, language,
and formatting. Balkón abstracts this so that you can provide text with any
mix of these attributes and a desired line width for line breaking.
-- URL for the project homepage or repository.
-- TODO: Set homepage when this project has one.
-- homepage:
-- A URL where users can report bugs.
-- TODO: Set issue tracker URL when this project has one.
-- bug-reports:
-- The license under which the package is released.
license: GPL-3.0-only
-- The file containing the license text.
license-file: LICENSE
-- The package author(s).
author: Jaro
-- An email address to which users can send suggestions, bug reports,
-- and patches.
maintainer: jaro@argonaut-constellation.org
-- A copyright notice.
-- copyright:
category: Text
-- Extra doc files to be distributed with the package, such as a CHANGELOG
-- or a README.
extra-doc-files: CHANGELOG.md
-- Extra source files to be distributed with the package, such as examples,
-- or a tutorial module.
extra-source-files:
assets/fonts/ubuntu/LICENCE.txt,
assets/fonts/ubuntu/TRADEMARKS.txt,
assets/fonts/ubuntu/Ubuntu-R.ttf,
assets/fonts/ubuntu/copyright.txt
source-repository head
type: git
location: https://git.argonaut-constellation.org/~jaro/balkon
branch: main
common language
-- Base language which the package is written in.
default-language: Haskell2010
-- LANGUAGE extensions used by modules in this package.
-- other-extensions:
common warnings
ghc-options: -Wall
-- TODO: Utilise internal libraries
-- (https://cabal.readthedocs.io/en/3.4/cabal-package.html#sublibs)
-- to avoid exposing modules solely for tests.
library
import: language, warnings
-- Directories containing source files.
hs-source-dirs: src
-- Modules exported by the library.
exposed-modules:
Data.Text.ParagraphLayout,
Data.Text.ParagraphLayout.Fragment,
Data.Text.ParagraphLayout.LineHeight,
Data.Text.ParagraphLayout.Plain,
Data.Text.ParagraphLayout.ProtoFragment
Data.Text.ParagraphLayout.Rect,
Data.Text.ParagraphLayout.ResolvedSpan,
Data.Text.ParagraphLayout.Run,
Data.Text.ParagraphLayout.Span,
Data.Text.ParagraphLayout.TextContainer,
Data.Text.Zipper
-- Modules included in this library but not exported.
other-modules: Data.Text.Script
-- Other library packages from which modules are imported.
build-depends:
base ^>=4.15.1.0,
harfbuzz-pure ^>=1.0.2.0,
text ^>=2.0.1,
text-icu ^>=0.8.0.2,
unicode-data-scripts ^>=0.2.0.1
test-suite balkon-test
import: language, warnings
-- The interface type and version of the test suite.
type: exitcode-stdio-1.0
-- Directories containing source files.
hs-source-dirs: test
-- The entrypoint to the test suite.
main-is: Spec.hs
other-modules:
Data.Text.ParagraphLayoutSpec,
Data.Text.ParagraphLayout.FontLoader,
Data.Text.ParagraphLayout.ParagraphConstruction,
Data.Text.ParagraphLayout.ParagraphData,
Data.Text.ParagraphLayout.PlainSpec,
Data.Text.ParagraphLayout.RectSpec,
Data.Text.ParagraphLayout.RunSpec,
Data.Text.ParagraphLayout.SpanData,
Data.Text.ParagraphLayout.TextContainerSpec,
Data.Text.ZipperSpec
-- Test dependencies.
build-depends:
base ^>=4.15.1.0,
balkon,
bytestring ^>=0.11.4.0,
filepath ^>=1.4.100.0,
hspec,
hspec-discover,
hspec-golden ^>=0.2.0.0,
harfbuzz-pure ^>=1.0.2.0,
text ^>=2.0.1
build-tool-depends:
hspec-discover:hspec-discover