2ff060bf35beb248686506f50ed8eebf326e0d5a
[mesa.git] / src / gallium / state_trackers / clover / meson.build
1 # Copyright © 2017-2018 Intel Corporation
2
3 # Permission is hereby granted, free of charge, to any person obtaining a copy
4 # of this software and associated documentation files (the "Software"), to deal
5 # in the Software without restriction, including without limitation the rights
6 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 # copies of the Software, and to permit persons to whom the Software is
8 # furnished to do so, subject to the following conditions:
9
10 # The above copyright notice and this permission notice shall be included in
11 # all copies or substantial portions of the Software.
12
13 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19 # SOFTWARE.
20
21 clover_cpp_args = []
22 clover_incs = [inc_include, inc_src, inc_gallium, inc_gallium_aux]
23
24 if with_opencl_icd
25 clover_cpp_args += '-DHAVE_CLOVER_ICD'
26 endif
27
28 libclllvm = static_library(
29 'clllvm',
30 files(
31 'llvm/codegen/bitcode.cpp',
32 'llvm/codegen/common.cpp',
33 'llvm/codegen/native.cpp',
34 'llvm/codegen.hpp',
35 'llvm/compat.hpp',
36 'llvm/invocation.cpp',
37 'llvm/invocation.hpp',
38 'llvm/metadata.hpp',
39 'llvm/util.hpp',
40 ),
41 include_directories : clover_incs,
42 cpp_args : [
43 cpp_vis_args,
44 '-DLIBCLC_INCLUDEDIR="@0@/"'.format(dep_clc.get_pkgconfig_variable('includedir')),
45 '-DLIBCLC_LIBEXECDIR="@0@/"'.format(dep_clc.get_pkgconfig_variable('libexecdir')),
46 '-DCLANG_RESOURCE_DIR="@0@"'.format(join_paths(
47 dep_llvm.get_configtool_variable('libdir'), 'clang',
48 dep_llvm.version(), 'include',
49 )),
50 ],
51 dependencies : [dep_llvm, dep_elf],
52 override_options : clover_cpp_std,
53 )
54
55 clover_files = files(
56 'api/context.cpp',
57 'api/device.cpp',
58 'api/dispatch.cpp',
59 'api/dispatch.hpp',
60 'api/event.cpp',
61 'api/interop.cpp',
62 'api/kernel.cpp',
63 'api/memory.cpp',
64 'api/platform.cpp',
65 'api/program.cpp',
66 'api/queue.cpp',
67 'api/sampler.cpp',
68 'api/transfer.cpp',
69 'api/util.hpp',
70 'core/context.cpp',
71 'core/context.hpp',
72 'core/device.cpp',
73 'core/device.hpp',
74 'core/error.hpp',
75 'core/event.cpp',
76 'core/event.hpp',
77 'core/format.cpp',
78 'core/format.hpp',
79 'core/kernel.cpp',
80 'core/kernel.hpp',
81 'core/memory.cpp',
82 'core/memory.hpp',
83 'core/module.cpp',
84 'core/module.hpp',
85 'core/object.hpp',
86 'core/platform.cpp',
87 'core/platform.hpp',
88 'core/program.cpp',
89 'core/program.hpp',
90 'core/property.hpp',
91 'core/queue.cpp',
92 'core/queue.hpp',
93 'core/resource.cpp',
94 'core/resource.hpp',
95 'core/sampler.cpp',
96 'core/sampler.hpp',
97 'core/timestamp.cpp',
98 'core/timestamp.hpp',
99 'util/adaptor.hpp',
100 'util/algebra.hpp',
101 'util/algorithm.hpp',
102 'util/factor.hpp',
103 'util/functional.hpp',
104 'util/lazy.hpp',
105 'util/pointer.hpp',
106 'util/range.hpp',
107 'util/tuple.hpp',
108 )
109
110 libclover = static_library(
111 'clover',
112 [clover_files, sha1_h],
113 include_directories : clover_incs,
114 cpp_args : [clover_cpp_args, cpp_vis_args],
115 link_with : [libclllvm],
116 override_options : clover_cpp_std,
117 )