1+ { system
2+ , compiler
3+ , flags
4+ , pkgs
5+ , hsPkgs
6+ , pkgconfPkgs
7+ , errorHandler
8+ , config
9+ , ... } :
10+ {
11+ flags = {
12+ test-hlint = false ;
13+ test-doc-coverage = false ;
14+ examples = false ;
15+ expose-core = false ;
16+ } ;
17+ package = {
18+ specVersion = "1.10" ;
19+ identifier = { name = "Yampa" ; version = "0.14.12" ; } ;
20+ license = "BSD-3-Clause" ;
21+ copyright = "" ;
22+ maintainer = "Ivan Perez ([email protected] )" ; 23+ author = "Henrik Nilsson, Antony Courtney" ;
24+ homepage = "https://github.com/ivanperez-keera/Yampa/" ;
25+ url = "" ;
26+ synopsis = "Elegant Functional Reactive Programming Language for Hybrid Systems" ;
27+ description = "Domain-specific language embedded in Haskell for programming hybrid (mixed\n discrete-time and continuous-time) systems. Yampa is based on the concepts of\n Functional Reactive Programming (FRP)." ;
28+ buildType = "Simple" ;
29+ } ;
30+ components = {
31+ "library" = {
32+ depends = [
33+ ( hsPkgs . "base" or ( errorHandler . buildDepError "base" ) )
34+ ( hsPkgs . "deepseq" or ( errorHandler . buildDepError "deepseq" ) )
35+ ( hsPkgs . "random" or ( errorHandler . buildDepError "random" ) )
36+ ( hsPkgs . "simple-affine-space" or ( errorHandler . buildDepError "simple-affine-space" ) )
37+ ] ++ pkgs . lib . optional ( ! ( compiler . isGhc && compiler . version . ge "8.0" ) ) ( hsPkgs . "fail" or ( errorHandler . buildDepError "fail" ) ) ;
38+ buildable = true ;
39+ } ;
40+ exes = {
41+ "yampa-examples-sdl-bouncingbox" = {
42+ depends = pkgs . lib . optionals ( flags . examples ) [
43+ ( hsPkgs . "base" or ( errorHandler . buildDepError "base" ) )
44+ ( hsPkgs . "deepseq" or ( errorHandler . buildDepError "deepseq" ) )
45+ ( hsPkgs . "random" or ( errorHandler . buildDepError "random" ) )
46+ ( hsPkgs . "SDL" or ( errorHandler . buildDepError "SDL" ) )
47+ ( hsPkgs . "Yampa" or ( errorHandler . buildDepError "Yampa" ) )
48+ ] ;
49+ buildable = if flags . examples then true else false ;
50+ } ;
51+ "yampa-examples-sdl-circlingmouse" = {
52+ depends = pkgs . lib . optionals ( flags . examples ) [
53+ ( hsPkgs . "base" or ( errorHandler . buildDepError "base" ) )
54+ ( hsPkgs . "deepseq" or ( errorHandler . buildDepError "deepseq" ) )
55+ ( hsPkgs . "random" or ( errorHandler . buildDepError "random" ) )
56+ ( hsPkgs . "SDL" or ( errorHandler . buildDepError "SDL" ) )
57+ ( hsPkgs . "Yampa" or ( errorHandler . buildDepError "Yampa" ) )
58+ ] ;
59+ buildable = if flags . examples then true else false ;
60+ } ;
61+ "yampa-examples-sdl-wiimote" = {
62+ depends = pkgs . lib . optionals ( flags . examples ) [
63+ ( hsPkgs . "base" or ( errorHandler . buildDepError "base" ) )
64+ ( hsPkgs . "deepseq" or ( errorHandler . buildDepError "deepseq" ) )
65+ ( hsPkgs . "hcwiid" or ( errorHandler . buildDepError "hcwiid" ) )
66+ ( hsPkgs . "random" or ( errorHandler . buildDepError "random" ) )
67+ ( hsPkgs . "SDL" or ( errorHandler . buildDepError "SDL" ) )
68+ ( hsPkgs . "Yampa" or ( errorHandler . buildDepError "Yampa" ) )
69+ ] ;
70+ buildable = if flags . examples then true else false ;
71+ } ;
72+ "yampa-examples-elevator" = {
73+ depends = pkgs . lib . optionals ( flags . examples ) [
74+ ( hsPkgs . "base" or ( errorHandler . buildDepError "base" ) )
75+ ( hsPkgs . "Yampa" or ( errorHandler . buildDepError "Yampa" ) )
76+ ] ;
77+ buildable = if flags . examples then true else false ;
78+ } ;
79+ "yampa-examples-tailgatingdetector" = {
80+ depends = pkgs . lib . optionals ( flags . examples ) [
81+ ( hsPkgs . "base" or ( errorHandler . buildDepError "base" ) )
82+ ( hsPkgs . "Yampa" or ( errorHandler . buildDepError "Yampa" ) )
83+ ] ;
84+ buildable = if flags . examples then true else false ;
85+ } ;
86+ } ;
87+ tests = {
88+ "hlint" = {
89+ depends = pkgs . lib . optionals ( ! ! flags . test-hlint ) [
90+ ( hsPkgs . "base" or ( errorHandler . buildDepError "base" ) )
91+ ( hsPkgs . "hlint" or ( errorHandler . buildDepError "hlint" ) )
92+ ] ;
93+ buildable = if ! flags . test-hlint then false else true ;
94+ } ;
95+ "haddock-coverage" = {
96+ depends = pkgs . lib . optionals ( ! ! flags . test-doc-coverage ) [
97+ ( hsPkgs . "base" or ( errorHandler . buildDepError "base" ) )
98+ ( hsPkgs . "directory" or ( errorHandler . buildDepError "directory" ) )
99+ ( hsPkgs . "filepath" or ( errorHandler . buildDepError "filepath" ) )
100+ ( hsPkgs . "process" or ( errorHandler . buildDepError "process" ) )
101+ ( hsPkgs . "regex-posix" or ( errorHandler . buildDepError "regex-posix" ) )
102+ ] ;
103+ buildable = if ! flags . test-doc-coverage then false else true ;
104+ } ;
105+ } ;
106+ benchmarks = {
107+ "yampa-bench" = {
108+ depends = [
109+ ( hsPkgs . "base" or ( errorHandler . buildDepError "base" ) )
110+ ( hsPkgs . "criterion" or ( errorHandler . buildDepError "criterion" ) )
111+ ( hsPkgs . "filepath" or ( errorHandler . buildDepError "filepath" ) )
112+ ( hsPkgs . "time" or ( errorHandler . buildDepError "time" ) )
113+ ( hsPkgs . "Yampa" or ( errorHandler . buildDepError "Yampa" ) )
114+ ] ;
115+ buildable = true ;
116+ } ;
117+ } ;
118+ } ;
119+ }
0 commit comments