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.8" ; } ;
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