mirror of
https://gitlab.com/sheaf/metabrush.git
synced 2024-11-05 14:53:37 +00:00
52420a1169
also includes the start of a way to observe which equations are being solved, which should help with improving the performance of the interval Newton method
358 lines
7.2 KiB
Plaintext
358 lines
7.2 KiB
Plaintext
cabal-version: 3.0
|
|
name: MetaBrush
|
|
version: 0.1.0.0
|
|
synopsis: GUI for brush calligraphy.
|
|
category: Calligraphy, Font, Geometry, Graphics, GUI
|
|
license: NONE
|
|
homepage: https://gitlab.com/sheaf/MetaBrush
|
|
build-type: Simple
|
|
data-dir:
|
|
assets
|
|
data-files:
|
|
theme.css
|
|
colours.css
|
|
icons/*
|
|
description:
|
|
|
|
MetaBrush is a GUI for brush calligraphy based on Bézier curves.
|
|
|
|
A brush stroke is defined by two components:
|
|
|
|
* the path of the brush, specified using quadratic Bézier curves,
|
|
|
|
* the shape of the brush, also specified with quadratic Bézier curves.
|
|
|
|
The shape of the brush is allowed to vary along the path.
|
|
|
|
flag asserts
|
|
description: Enable debugging assertions.
|
|
default: False
|
|
manual: True
|
|
|
|
flag use-fma
|
|
description: Use fused-muliply add instructions to implement interval arithmetic.
|
|
default: False
|
|
manual: True
|
|
|
|
common common
|
|
|
|
build-depends:
|
|
base
|
|
>= 4.17 && < 4.19
|
|
, acts
|
|
^>= 0.3.1.0
|
|
, code-page
|
|
^>= 0.2.1
|
|
, containers
|
|
>= 0.6.0.1 && < 0.7
|
|
, deepseq
|
|
>= 1.4.4.0 && < 1.5
|
|
, generic-lens
|
|
>= 2.2 && < 2.3
|
|
, groups
|
|
^>= 0.5.3
|
|
, groups-generic
|
|
^>= 0.3.1.0
|
|
, primitive
|
|
^>= 0.7.1.0
|
|
, rounded-hw
|
|
^>= 0.3
|
|
, transformers
|
|
>= 0.5.6.2 && < 0.7
|
|
|
|
default-extensions:
|
|
BangPatterns
|
|
BlockArguments
|
|
ConstraintKinds
|
|
DataKinds
|
|
DeriveAnyClass
|
|
DeriveTraversable
|
|
DeriveGeneric
|
|
DerivingVia
|
|
FlexibleContexts
|
|
FlexibleInstances
|
|
FunctionalDependencies
|
|
GADTs
|
|
GeneralisedNewtypeDeriving
|
|
InstanceSigs
|
|
LambdaCase
|
|
LexicalNegation
|
|
MagicHash
|
|
MultiWayIf
|
|
NamedFieldPuns
|
|
NoStarIsType
|
|
PatternSynonyms
|
|
RankNTypes
|
|
RecordWildCards
|
|
RoleAnnotations
|
|
StandaloneDeriving
|
|
StandaloneKindSignatures
|
|
TupleSections
|
|
TypeApplications
|
|
TypeFamilies
|
|
TypeOperators
|
|
UnboxedTuples
|
|
ViewPatterns
|
|
|
|
ghc-options:
|
|
-O2
|
|
-fexpose-all-unfoldings
|
|
-- -funfolding-use-threshold=1000
|
|
-fspecialise-aggressively
|
|
-flate-dmd-anal
|
|
-fmax-worker-args=200
|
|
-optc-O3
|
|
-Wall
|
|
-Wcompat
|
|
-fwarn-missing-local-signatures
|
|
-fwarn-incomplete-patterns
|
|
-fwarn-incomplete-uni-patterns
|
|
-fwarn-missing-deriving-strategies
|
|
-fno-warn-unticked-promoted-constructors
|
|
|
|
if flag(asserts)
|
|
cpp-options:
|
|
-DASSERTS
|
|
|
|
if flag(use-fma)
|
|
cpp-options:
|
|
-DUSE_FMA
|
|
ghc-options:
|
|
-mfma
|
|
if impl(ghc < 9.7)
|
|
buildable: False
|
|
|
|
autogen-modules:
|
|
Paths_MetaBrush
|
|
|
|
other-modules:
|
|
Paths_MetaBrush
|
|
|
|
common extras
|
|
|
|
build-depends:
|
|
|
|
directory
|
|
>= 1.3.4.0 && < 1.4
|
|
, filepath
|
|
^>= 1.4.2.1
|
|
, hashable
|
|
>= 1.3.0.0 && < 1.5
|
|
, lens
|
|
>= 4.19.2 && < 5.3
|
|
, mtl
|
|
>= 2.2.2 && < 2.4
|
|
, scientific
|
|
>= 0.3.6.2 && < 0.3.8
|
|
, stm
|
|
^>= 2.5.0.0
|
|
, text
|
|
>= 1.2.3.1 && < 2.1
|
|
, unordered-containers
|
|
>= 0.2.11 && < 0.2.20
|
|
, waargonaut
|
|
^>= 0.8.0.2
|
|
|
|
common gtk
|
|
|
|
build-depends:
|
|
gi-cairo-render
|
|
^>= 0.1.0
|
|
, gi-cairo-connector
|
|
^>= 0.1.0
|
|
, gi-gdk
|
|
>= 4.0.2 && < 4.1
|
|
, gi-gio
|
|
>= 2.0.27 && < 2.1
|
|
, gi-glib
|
|
>= 2.0.23 && < 2.1
|
|
, gi-gobject
|
|
^>= 2.0.24
|
|
, gi-gtk
|
|
>= 4.0.3 && < 4.1
|
|
, haskell-gi
|
|
>= 0.26 && < 0.27
|
|
, haskell-gi-base
|
|
>= 0.26 && < 0.27
|
|
|
|
|
|
library splines
|
|
|
|
import:
|
|
common
|
|
|
|
hs-source-dirs:
|
|
src/splines
|
|
|
|
default-language:
|
|
Haskell2010
|
|
|
|
exposed-modules:
|
|
Math.Algebra.Dual
|
|
, Math.Bezier.Cubic
|
|
, Math.Bezier.Cubic.Fit
|
|
, Math.Bezier.Quadratic
|
|
, Math.Bezier.Spline
|
|
, Math.Bezier.Stroke
|
|
, Math.Bezier.Stroke.EnvelopeEquation
|
|
, Math.Differentiable
|
|
, Math.Epsilon
|
|
, Math.Interval
|
|
, Math.Linear
|
|
, Math.Linear.Solve
|
|
, Math.Module
|
|
, Math.Monomial
|
|
, Math.Orientation
|
|
, Math.Ring
|
|
, Math.Roots
|
|
, Debug.Utils
|
|
|
|
other-modules:
|
|
Math.Algebra.Dual.Internal
|
|
, Math.Interval.Internal
|
|
, Math.Linear.Internal
|
|
, Math.Module.Internal
|
|
, TH.Utils
|
|
|
|
if flag(use-fma)
|
|
other-modules:
|
|
Math.Interval.FMA
|
|
|
|
build-depends:
|
|
bifunctors
|
|
>= 5.5.4 && < 5.6
|
|
, eigen
|
|
^>= 3.3.7.0
|
|
, parallel
|
|
^>= 3.2.2.0
|
|
, prim-instances
|
|
^>= 0.2
|
|
, vector
|
|
>= 0.12.1.2 && < 0.14
|
|
, template-haskell
|
|
>= 2.18 && < 2.20
|
|
|
|
|
|
library metabrushes
|
|
|
|
import:
|
|
common, extras
|
|
|
|
hs-source-dirs:
|
|
src/metabrushes
|
|
|
|
default-language:
|
|
Haskell2010
|
|
|
|
exposed-modules:
|
|
MetaBrush.Assert
|
|
, MetaBrush.Asset.Brushes
|
|
, MetaBrush.Brush
|
|
, MetaBrush.Document
|
|
, MetaBrush.Document.Draw
|
|
, MetaBrush.Document.History
|
|
, MetaBrush.Document.Serialise
|
|
, MetaBrush.Document.SubdivideStroke
|
|
, MetaBrush.Records
|
|
, MetaBrush.Serialisable
|
|
, MetaBrush.Unique
|
|
, MetaBrush.Util
|
|
|
|
build-depends:
|
|
splines
|
|
, atomic-file-ops
|
|
^>= 0.3.0.0
|
|
, bytestring
|
|
>= 0.10.10.0 && < 0.12
|
|
|
|
executable test-cusp-isolation
|
|
|
|
import:
|
|
common
|
|
|
|
hs-source-dirs:
|
|
src/cusps
|
|
|
|
build-depends:
|
|
splines
|
|
|
|
main-is:
|
|
Main.hs
|
|
|
|
executable convert-metafont
|
|
|
|
import:
|
|
common, extras
|
|
|
|
hs-source-dirs:
|
|
src/convert
|
|
|
|
default-language:
|
|
Haskell2010
|
|
|
|
main-is:
|
|
Main.hs
|
|
|
|
other-modules:
|
|
MetaBrush.MetaFont.Convert
|
|
|
|
build-depends:
|
|
splines,
|
|
metabrushes,
|
|
diagrams-contrib,
|
|
diagrams-lib,
|
|
linear,
|
|
parsec
|
|
|
|
|
|
executable MetaBrush
|
|
|
|
import:
|
|
common, extras, gtk
|
|
|
|
hs-source-dirs:
|
|
src/app,
|
|
app
|
|
|
|
main-is:
|
|
Main.hs
|
|
|
|
default-language:
|
|
Haskell2010
|
|
|
|
other-modules:
|
|
MetaBrush.Action
|
|
, MetaBrush.Application
|
|
, MetaBrush.Asset.CloseTabButton
|
|
, MetaBrush.Asset.Colours
|
|
, MetaBrush.Asset.Cursor
|
|
, MetaBrush.Asset.InfoBar
|
|
, MetaBrush.Asset.Logo
|
|
, MetaBrush.Asset.TickBox
|
|
, MetaBrush.Asset.Tools
|
|
, MetaBrush.Asset.WindowIcons
|
|
, MetaBrush.Context
|
|
, MetaBrush.Document.Selection
|
|
, MetaBrush.Document.Update
|
|
, MetaBrush.Event
|
|
, MetaBrush.GTK.Util
|
|
, MetaBrush.Render.Document
|
|
, MetaBrush.Render.Rulers
|
|
, MetaBrush.UI.Coordinates
|
|
, MetaBrush.UI.FileBar
|
|
, MetaBrush.UI.InfoBar
|
|
, MetaBrush.UI.Menu
|
|
, MetaBrush.UI.Panels
|
|
, MetaBrush.UI.ToolBar
|
|
, MetaBrush.UI.Viewport
|
|
, MetaBrush.Time
|
|
|
|
ghc-options:
|
|
-threaded -rtsopts
|
|
|
|
build-depends:
|
|
splines
|
|
, metabrushes
|
|
, tardis
|
|
>= 0.4.2.0 && < 0.5
|