metabrush/brush-strokes/brush-strokes.cabal

312 lines
5.9 KiB
Plaintext
Raw Normal View History

2024-02-17 12:58:40 +00:00
cabal-version: 3.0
name: brush-strokes
version: 0.1.0.0
synopsis: Stroking brush paths
category: Calligraphy, Geometry, Graphics
license: BSD-3-Clause
homepage: https://gitlab.com/sheaf/MetaBrush
build-type: Simple
description:
Computing brush strokes using Bézier curves.
extra-source-files:
cbits/**/*.{cpp, hpp}
2024-02-17 12:58:40 +00:00
flag use-fma
description: Use fused-muliply add instructions to implement interval arithmetic.
default: True
manual: False
2024-02-17 12:58:40 +00:00
flag asserts
description: Enable debugging assertions.
default: False
manual: True
2024-02-17 12:58:40 +00:00
common common
build-depends:
base
2024-05-23 09:17:36 +00:00
>= 4.17 && < 5.0
2024-04-22 20:11:07 +00:00
, code-page
^>= 0.2.1
2024-02-17 12:58:40 +00:00
, containers
>= 0.6.0.1 && < 0.8
, tree-view
^>= 0.5
2024-02-17 12:58:40 +00:00
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
TypeFamilyDependencies
2024-02-17 12:58:40 +00:00
TypeOperators
UnboxedTuples
ViewPatterns
2024-04-22 20:11:07 +00:00
if impl(ghc >= 9.8)
default-extensions:
TypeAbstractions
2024-02-17 12:58:40 +00:00
ghc-options:
-O2
-fexpose-all-unfoldings
2024-04-22 20:11:07 +00:00
-- -funfolding-use-threshold=1000
2024-02-17 12:58:40 +00:00
-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(use-fma)
cpp-options:
-DUSE_FMA
ghc-options:
-mfma
build-depends:
base
>= 4.19
if flag(asserts)
cpp-options:
-DASSERTS
2024-02-28 16:20:34 +00:00
common extra
build-depends:
acts
^>= 0.3.1.0
, generic-lens
>= 2.2 && < 2.3
, groups
^>= 0.5.3
2024-02-17 12:58:40 +00:00
library
import:
2024-02-28 16:20:34 +00:00
common, extra
2024-02-17 12:58:40 +00:00
hs-source-dirs:
2024-02-28 16:20:34 +00:00
src/lib
2024-02-17 12:58:40 +00:00
default-language:
Haskell2010
exposed-modules:
2024-02-23 16:03:28 +00:00
Calligraphy.Brushes
, Math.Algebra.Dual
2024-02-17 12:58:40 +00:00
, 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.Float.Utils
2024-02-17 12:58:40 +00:00
, Math.Interval
, Math.Linear
, Math.Linear.Solve
, Math.Module
, Math.Monomial
, Math.Orientation
, Math.Ring
, Math.Roots
, Math.Root.Isolation
, Math.Root.Isolation.Bisection
2024-04-22 20:11:07 +00:00
, Math.Root.Isolation.Core
, Math.Root.Isolation.Degree
, Math.Root.Isolation.Narrowing
, Math.Root.Isolation.Newton
, Math.Root.Isolation.Newton.GaussSeidel
, Math.Root.Isolation.Newton.LP
, Math.Root.Isolation.Utils
2024-02-17 12:58:40 +00:00
, 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:
2024-02-23 16:03:28 +00:00
template-haskell
2024-05-23 09:17:36 +00:00
>= 2.18 && < 3.0
2024-02-23 16:03:28 +00:00
, bifunctors
2024-02-17 12:58:40 +00:00
>= 5.5.4 && < 5.7
2024-02-23 16:03:28 +00:00
, deepseq
>= 1.4.4.0 && < 1.6
, directory
>= 1.3.7.1 && < 1.4
2024-02-17 12:58:40 +00:00
, eigen
^>= 3.3.7.0
2024-02-23 16:03:28 +00:00
, filepath
>= 1.4 && < 1.6
, fp-ieee
^>= 0.1.0.4
2024-02-23 16:03:28 +00:00
, groups-generic
^>= 0.3.1.0
2024-02-17 12:58:40 +00:00
, parallel
^>= 3.2.2.0
2024-02-23 16:03:28 +00:00
, primitive
^>= 0.9.0.0
, rounded-hw
^>= 0.4
, time
^>= 1.12.2
, transformers
>= 0.5.6.2 && < 0.7
-- Extra C++ code for 2D linear systems of interval equations
include-dirs:
cbits
cxx-sources:
cbits/lp_2d.cpp
cxx-options:
-std=c++20
-mavx2 -mfma
-frounding-math -fno-math-errno -fno-signed-zeros
-fno-trapping-math -fno-signaling-nans
-Wno-unused-result -Wsign-compare -Wno-switch
-march=native -mtune=native
-O3 -DNDEBUG
build-depends:
system-cxx-std-lib
2024-02-28 16:20:34 +00:00
--executable convert-metafont
--
-- import:
-- common
--
-- hs-source-dirs:
-- src/metafont
--
-- default-language:
-- Haskell2010
--
-- main-is:
-- Main.hs
--
-- other-modules:
-- Calligraphy.MetaFont.Convert
--
-- build-depends:
-- diagrams-contrib,
-- diagrams-lib,
-- linear,
-- parsec
executable inspect
import:
common, extra
hs-source-dirs:
src/cusps/inspect
default-language:
Haskell2010
main-is:
Main.hs
other-modules:
Math.Interval.Abstract
build-depends:
brush-strokes
, data-reify
2024-02-28 16:20:34 +00:00
^>= 0.6.3
test-suite tests
import:
common
type:
exitcode-stdio-1.0
hs-source-dirs:
src/test
default-language:
Haskell2010
main-is:
Main.hs
build-depends:
brush-strokes
, falsify
^>= 0.2
, hspray
^>= 0.1.3
, tasty
^>= 1.5
, unordered-containers
>= 0.2.15 && < 0.3
2024-02-23 16:03:28 +00:00
benchmark cusps
import:
common
hs-source-dirs:
2024-02-28 16:20:34 +00:00
src/cusps/bench
2024-02-23 16:03:28 +00:00
main-is:
Main.hs
2024-04-22 20:11:07 +00:00
other-modules:
Bench.Types
Bench.Cases
2024-02-23 16:03:28 +00:00
build-depends:
brush-strokes
, deepseq
2024-02-23 16:03:28 +00:00
type:
exitcode-stdio-1.0
default-language:
Haskell2010
ghc-options:
-threaded
-rtsopts