packages feed

unicode-data-0.1.0: unicode-data.cabal

cabal-version:       2.2
name:                unicode-data
version:             0.1.0
synopsis:            Access Unicode character database
description:
  @unicode-data@ provides Haskell APIs to efficiently access the unicode
  character database. Performance is the primary goal in the design of
  this package.
  .
  The Haskell data structures are generated programmatically from the
  unicode character database (UCD) files.  The latest unicode version
  supported by this library is 13.0.0.
homepage:            http://github.com/composewell/unicode-data
bug-reports:         https://github.com/composewell/unicode-data/issues
license:             Apache-2.0
license-file:        LICENSE
author:              Composewell Technologies and Contributors
maintainer:          streamly@composewell.com
copyright:           2020 Composewell Technologies and Contributors
category:            Data,Text,Unicode
stability:           Experimental
build-type:          Simple
tested-with:         GHC==7.10.3
                   , GHC==8.0.2
                   , GHC==8.2.2
                   , GHC==8.4.4
                   , GHC==8.6.5
                   , GHC==8.8.3
                   , GHC==8.8.4
                   , GHC==8.10.2
                   , GHC==9.0.1

extra-source-files:
    Changelog.md
    README.md
    NOTICE
    ucd.sh

source-repository head
  type: git
  location: https://github.com/composewell/unicode-data

flag ucd2haskell
  description: Build the ucd2haskell executable
  manual: True
  default: False

common default-extensions
  default-extensions:
      BangPatterns
      DeriveGeneric
      MagicHash
      RecordWildCards
      ScopedTypeVariables
      TupleSections
      FlexibleContexts

      -- Experimental, may lead to issues
      DeriveAnyClass
      TemplateHaskell
      UnboxedTuples

common compile-options
  ghc-options: -Wall
               -fwarn-identities
               -fwarn-incomplete-record-updates
               -fwarn-incomplete-uni-patterns
               -fwarn-tabs

library
  import: default-extensions, compile-options
  default-language: Haskell2010
  exposed-modules:
      Unicode.Char
      -- The module structure is derived from
      -- https://www.unicode.org/reports/tr44/#Property_Index_Table
      Unicode.Char.Normalization
      Unicode.Char.General
      Unicode.Char.Case

      -- Internal files
      Unicode.Internal.Bits
      Unicode.Internal.Division

      -- Generated files
      -- This module structure is largely based on the UCD file names from which
      -- the properties are generated.
      Unicode.Internal.Char.DerivedCoreProperties
      Unicode.Internal.Char.PropList
      Unicode.Internal.Char.UnicodeData.CombiningClass
      Unicode.Internal.Char.UnicodeData.Compositions
      Unicode.Internal.Char.UnicodeData.Decomposable
      Unicode.Internal.Char.UnicodeData.DecomposableK
      Unicode.Internal.Char.UnicodeData.Decompositions
      Unicode.Internal.Char.UnicodeData.DecompositionsK
      Unicode.Internal.Char.UnicodeData.DecompositionsK2
  hs-source-dirs: lib
  ghc-options: -O2
  build-depends:
      base >=4.7 && <5

executable ucd2haskell
  import: default-extensions, compile-options
  default-language: Haskell2010
  ghc-options: -O2
  hs-source-dirs: exe
  main-is: UCD2Haskell.hs
  other-modules: Parser.Text
  build-depends:
      base             >= 4     && < 5
    , streamly         >= 0.8   && < 0.9
    , getopt-generics  >= 0.13  && < 0.14
    , containers       >= 0.5   && < 0.7
    , directory        >= 1.3.6 && < 1.3.7
  if flag(ucd2haskell)
    buildable: True
  else
    buildable: False