-
Notifications
You must be signed in to change notification settings - Fork 4
/
halide-haskell.cabal
168 lines (147 loc) · 4.67 KB
/
halide-haskell.cabal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
cabal-version: 3.0
name: halide-haskell
version: 0.0.2.0
synopsis: Haskell bindings to Halide
description:
Halide is a programming language designed to make it easier to write
high-performance image and array processing code on modern machines. Rather
than being a standalone programming language, Halide is embedded in C++. This
means you write C++ code that builds an in-memory representation of a Halide
pipeline using Halide's C++ API. You can then compile this representation to
an object file, or JIT-compile it and run it in the same process.
.
This package provides Haskell bindings that allow to write Halide embedded in
Haskell without C++.
.
The best way to learn Halide is to have a look at the
[tutorials](https://github.com/twesterhout/halide-haskell/tree/master/tutorials).
Reference documentation is provided by the haddocks of the 'Language.Halide'
module.
homepage: https://github.com/twesterhout/halide-haskell
bug-reports: https://github.com/twesterhout/halide-haskell/issues
license: BSD-3-Clause
license-file: LICENSE
author: Tom Westerhout
maintainer:
Tom Westerhout <[email protected]>
category: Language
copyright: 2022-2023 Tom Westerhout
build-type: Simple
extra-doc-files:
construction.png
README.md
tested-with: GHC ==9.2.7 || ==9.4.4 || ==9.4.5
source-repository head
type: git
location: https://github.com/twesterhout/halide-haskell.git
common common-options
build-depends: base >=4.16.0.0 && <5
ghc-options:
-W -Wall -Wcompat -Widentities -Wincomplete-uni-patterns
-Wincomplete-record-updates -Wredundant-constraints
-fhide-source-paths -Wmissing-export-lists -Wpartial-fields
-Wmissing-deriving-strategies
default-language: GHC2021
default-extensions:
DataKinds
DerivingStrategies
FunctionalDependencies
LambdaCase
OverloadedRecordDot
OverloadedStrings
TypeFamilies
ViewPatterns
library
import: common-options
hs-source-dirs: src
exposed-modules: Language.Halide
other-modules:
Language.Halide.BoundaryConditions
Language.Halide.Buffer
Language.Halide.Context
Language.Halide.Dimension
Language.Halide.Expr
Language.Halide.Func
Language.Halide.Kernel
Language.Halide.LoopLevel
Language.Halide.RedundantConstraints
Language.Halide.Schedule
Language.Halide.Target
Language.Halide.Trace
Language.Halide.Type
Language.Halide.Utils
-- Language.Halide.Prelude
build-depends:
, bytestring >=0.11.1.0 && <0.12
, constraints >=0.13.4 && <0.14
, filepath >=1.4.2.1 && <2.0
, inline-c >=0.9.1.6 && <0.10
, inline-c-cpp >=0.5.0.0 && <0.6
, primitive >=0.7.3.0 && <0.8
, template-haskell >=2.18.0.0 && <3.0
, temporary >=1.3 && <2.0
, text >=1.2.5.0 && <3.0
, vector >=0.12.3.0 && <0.13
if os(windows)
cpp-options: -DUSE_DLOPEN=0
build-depends: Win32
else
cpp-options: -DUSE_DLOPEN=1
build-depends: unix >=2.7.2.2 && <3.0
extra-libraries: Halide
-- if os(linux)
-- extra-libraries: stdc++
-- if os(osx)
-- extra-libraries: iconv
cxx-options: -std=c++17 -Wall
ghc-options: -optcxx-std=c++17 -optcxx-Wall
executable halide-haskell
import: common-options
hs-source-dirs: example
main-is: Example01.hs
build-depends:
, halide-haskell
, vector
executable getting-started
import: common-options
hs-source-dirs: example
main-is: GettingStarted.hs
build-depends:
, halide-haskell
, vector
executable halide-minimal-gpu
import: common-options
hs-source-dirs: example
main-is: MinimalGPU.hs
build-depends:
, halide-haskell
, vector
test-suite halide-haskell-test
import: common-options
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Spec.hs
other-modules:
Language.Halide.BoundaryConditionsSpec
Language.Halide.BufferSpec
Language.Halide.ExprSpec
Language.Halide.FuncSpec
Language.Halide.KernelSpec
Language.Halide.LoopLevelSpec
Language.Halide.ScheduleSpec
Language.Halide.TargetSpec
Utils
build-depends:
, halide-haskell
, hspec >=2.9.7 && <3
, HUnit >=1.6.2.0 && <1.7
, inline-c
, inline-c-cpp
, QuickCheck >=2.14.2 && <3
, text
, vector
cxx-options: -std=c++17 -Wall
ghc-options:
-threaded -rtsopts -with-rtsopts=-N -optcxx-std=c++17 -optcxx-Wall
-Wno-missing-export-lists
-- build-tools-depends: hspec-discover:hspec-discover