1
+ { system
2
+ , compiler
3
+ , flags
4
+ , pkgs
5
+ , hsPkgs
6
+ , pkgconfPkgs
7
+ , errorHandler
8
+ , config
9
+ , ... } :
10
+ {
11
+ flags = {
12
+ dynamic = false ;
13
+ use-ghc-paths = false ;
14
+ workaround-ghc-mmap-crash = false ;
15
+ } ;
16
+ package = {
17
+ specVersion = "2.2" ;
18
+ identifier = { name = "clash-ghc" ; version = "1.8.1" ; } ;
19
+ license = "BSD-2-Clause" ;
20
+ copyright = "Copyright © 2012-2016, University of Twente,\n 2016-2017, Myrtle Software Ltd,\n 2017-2019, QBayLogic B.V., Google Inc." ;
21
+ maintainer = "QBayLogic B.V. <[email protected] >" ;
22
+ author = "The Clash Authors" ;
23
+ homepage = "https://clash-lang.org/" ;
24
+ url = "" ;
25
+ synopsis = "Clash: a functional hardware description language - GHC frontend" ;
26
+ description = "Clash is a functional hardware description language that borrows both its\n syntax and semantics from the functional programming language Haskell. The\n Clash compiler transforms these high-level descriptions to low-level\n synthesizable VHDL, Verilog, or SystemVerilog.\n \n Features of Clash:\n \n * Strongly typed, but with a very high degree of type inference, enabling both\n safe and fast prototyping using concise descriptions.\n \n * Interactive REPL: load your designs in an interpreter and easily test all\n your component without needing to setup a test bench.\n \n * Higher-order functions, with type inference, result in designs that are\n fully parametric by default.\n \n * Synchronous sequential circuit design based on streams of values, called\n @Signal@s, lead to natural descriptions of feedback loops.\n \n * Support for multiple clock domains, with type safe clock domain crossing.\n \n \n This package provides:\n \n * Clash Compiler binary using GHC/Haskell as a frontend\n \n \n Prelude library: <https://hackage.haskell.org/package/clash-prelude>" ;
27
+ buildType = "Simple" ;
28
+ } ;
29
+ components = {
30
+ "library" = {
31
+ depends = ( ( ( ( [
32
+ ( hsPkgs . "array" or ( errorHandler . buildDepError "array" ) )
33
+ ( hsPkgs . "base" or ( errorHandler . buildDepError "base" ) )
34
+ ( hsPkgs . "bytestring" or ( errorHandler . buildDepError "bytestring" ) )
35
+ ( hsPkgs . "Cabal" or ( errorHandler . buildDepError "Cabal" ) )
36
+ ( hsPkgs . "containers" or ( errorHandler . buildDepError "containers" ) )
37
+ ( hsPkgs . "data-binary-ieee754" or ( errorHandler . buildDepError "data-binary-ieee754" ) )
38
+ ( hsPkgs . "directory" or ( errorHandler . buildDepError "directory" ) )
39
+ ( hsPkgs . "extra" or ( errorHandler . buildDepError "extra" ) )
40
+ ( hsPkgs . "filepath" or ( errorHandler . buildDepError "filepath" ) )
41
+ ( hsPkgs . "process" or ( errorHandler . buildDepError "process" ) )
42
+ ( hsPkgs . "hashable" or ( errorHandler . buildDepError "hashable" ) )
43
+ ( hsPkgs . "haskeline" or ( errorHandler . buildDepError "haskeline" ) )
44
+ ( hsPkgs . "lens" or ( errorHandler . buildDepError "lens" ) )
45
+ ( hsPkgs . "mtl" or ( errorHandler . buildDepError "mtl" ) )
46
+ ( hsPkgs . "split" or ( errorHandler . buildDepError "split" ) )
47
+ ( hsPkgs . "text" or ( errorHandler . buildDepError "text" ) )
48
+ ( hsPkgs . "transformers" or ( errorHandler . buildDepError "transformers" ) )
49
+ ( hsPkgs . "unordered-containers" or ( errorHandler . buildDepError "unordered-containers" ) )
50
+ ( hsPkgs . "clash-lib" or ( errorHandler . buildDepError "clash-lib" ) )
51
+ ( hsPkgs . "clash-prelude" or ( errorHandler . buildDepError "clash-prelude" ) )
52
+ ( hsPkgs . "concurrent-supply" or ( errorHandler . buildDepError "concurrent-supply" ) )
53
+ ( hsPkgs . "ghc-typelits-extra" or ( errorHandler . buildDepError "ghc-typelits-extra" ) )
54
+ ( hsPkgs . "ghc-typelits-knownnat" or ( errorHandler . buildDepError "ghc-typelits-knownnat" ) )
55
+ ( hsPkgs . "ghc-typelits-natnormalise" or ( errorHandler . buildDepError "ghc-typelits-natnormalise" ) )
56
+ ( hsPkgs . "deepseq" or ( errorHandler . buildDepError "deepseq" ) )
57
+ ( hsPkgs . "time" or ( errorHandler . buildDepError "time" ) )
58
+ ( hsPkgs . "ghc-boot" or ( errorHandler . buildDepError "ghc-boot" ) )
59
+ ( hsPkgs . "ghc-prim" or ( errorHandler . buildDepError "ghc-prim" ) )
60
+ ( hsPkgs . "ghci" or ( errorHandler . buildDepError "ghci" ) )
61
+ ( hsPkgs . "uniplate" or ( errorHandler . buildDepError "uniplate" ) )
62
+ ( hsPkgs . "reflection" or ( errorHandler . buildDepError "reflection" ) )
63
+ ( hsPkgs . "primitive" or ( errorHandler . buildDepError "primitive" ) )
64
+ ( hsPkgs . "string-interpolate" or ( errorHandler . buildDepError "string-interpolate" ) )
65
+ ( hsPkgs . "template-haskell" or ( errorHandler . buildDepError "template-haskell" ) )
66
+ ( hsPkgs . "utf8-string" or ( errorHandler . buildDepError "utf8-string" ) )
67
+ ( hsPkgs . "vector" or ( errorHandler . buildDepError "vector" ) )
68
+ ] ++ [
69
+ ( hsPkgs . "ghc" or ( errorHandler . buildDepError "ghc" ) )
70
+ ] ) ++ pkgs . lib . optional ( compiler . isGhc && compiler . version . ge "8.10.0" ) ( hsPkgs . "exceptions" or ( errorHandler . buildDepError "exceptions" ) ) ) ++ ( if compiler . isGhc && compiler . version . ge "9.0.0"
71
+ then [
72
+ ( hsPkgs . "ghc-bignum" or ( errorHandler . buildDepError "ghc-bignum" ) )
73
+ ]
74
+ else [
75
+ ( hsPkgs . "integer-gmp" or ( errorHandler . buildDepError "integer-gmp" ) )
76
+ ] ) ) ++ pkgs . lib . optional ( flags . use-ghc-paths ) ( hsPkgs . "ghc-paths" or ( errorHandler . buildDepError "ghc-paths" ) ) ) ++ ( if system . isWindows
77
+ then [ ( hsPkgs . "Win32" or ( errorHandler . buildDepError "Win32" ) ) ]
78
+ else [ ( hsPkgs . "unix" or ( errorHandler . buildDepError "unix" ) ) ] ) ;
79
+ buildable = true ;
80
+ } ;
81
+ exes = {
82
+ "clash" = {
83
+ depends = [
84
+ ( hsPkgs . "base" or ( errorHandler . buildDepError "base" ) )
85
+ ( hsPkgs . "clash-ghc" or ( errorHandler . buildDepError "clash-ghc" ) )
86
+ ] ;
87
+ libs = [ ( pkgs . "pthread" or ( errorHandler . sysDepError "pthread" ) ) ] ;
88
+ buildable = true ;
89
+ } ;
90
+ "clashi" = {
91
+ depends = [
92
+ ( hsPkgs . "base" or ( errorHandler . buildDepError "base" ) )
93
+ ( hsPkgs . "clash-ghc" or ( errorHandler . buildDepError "clash-ghc" ) )
94
+ ] ;
95
+ libs = [ ( pkgs . "pthread" or ( errorHandler . sysDepError "pthread" ) ) ] ;
96
+ buildable = true ;
97
+ } ;
98
+ } ;
99
+ } ;
100
+ }
0 commit comments