xref: /aosp_15_r20/external/mesa3d/src/gallium/frontends/clover/meson.build (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker# Copyright © 2017-2018 Intel Corporation
2*61046927SAndroid Build Coastguard Worker# SPDX-License-Identifier: MIT
3*61046927SAndroid Build Coastguard Worker
4*61046927SAndroid Build Coastguard Workerclover_cpp_args = []
5*61046927SAndroid Build Coastguard Workerclover_opencl_cpp_args = [
6*61046927SAndroid Build Coastguard Worker  '-DCL_TARGET_OPENCL_VERSION=300',
7*61046927SAndroid Build Coastguard Worker  '-DCL_USE_DEPRECATED_OPENCL_1_0_APIS',
8*61046927SAndroid Build Coastguard Worker  '-DCL_USE_DEPRECATED_OPENCL_1_1_APIS',
9*61046927SAndroid Build Coastguard Worker  '-DCL_USE_DEPRECATED_OPENCL_1_2_APIS',
10*61046927SAndroid Build Coastguard Worker  '-DCL_USE_DEPRECATED_OPENCL_2_0_APIS',
11*61046927SAndroid Build Coastguard Worker  '-DCL_USE_DEPRECATED_OPENCL_2_1_APIS',
12*61046927SAndroid Build Coastguard Worker  '-DCL_USE_DEPRECATED_OPENCL_2_2_APIS',
13*61046927SAndroid Build Coastguard Worker  '-DLIBCLC_INCLUDEDIR="@0@/"'.format(dep_clc.get_variable(pkgconfig : 'includedir')),
14*61046927SAndroid Build Coastguard Worker  '-DLIBCLC_LIBEXECDIR="@0@/"'.format(dep_clc.get_variable(pkgconfig : 'libexecdir'))
15*61046927SAndroid Build Coastguard Worker]
16*61046927SAndroid Build Coastguard Workerclover_spirv_cpp_args = []
17*61046927SAndroid Build Coastguard Workerclover_incs = [inc_include, inc_src, inc_gallium, inc_gallium_aux]
18*61046927SAndroid Build Coastguard Worker
19*61046927SAndroid Build Coastguard Worker# the CL header files declare attributes on the CL types. Compilers warn if
20*61046927SAndroid Build Coastguard Worker# we use them as template arguments. Disable the warning as there isn't
21*61046927SAndroid Build Coastguard Worker# anything we can do about it
22*61046927SAndroid Build Coastguard Workerif cpp.has_argument('-Wno-ignored-attributes')
23*61046927SAndroid Build Coastguard Worker   clover_cpp_args += '-Wno-ignored-attributes'
24*61046927SAndroid Build Coastguard Workerendif
25*61046927SAndroid Build Coastguard Worker
26*61046927SAndroid Build Coastguard Workerif with_opencl_icd
27*61046927SAndroid Build Coastguard Worker  clover_cpp_args += '-DHAVE_CLOVER_ICD'
28*61046927SAndroid Build Coastguard Workerendif
29*61046927SAndroid Build Coastguard Worker
30*61046927SAndroid Build Coastguard Workerif with_clover_spirv
31*61046927SAndroid Build Coastguard Worker  clover_spirv_cpp_args += '-DHAVE_CLOVER_SPIRV'
32*61046927SAndroid Build Coastguard Workerendif
33*61046927SAndroid Build Coastguard Worker
34*61046927SAndroid Build Coastguard Workerlibclllvm = static_library(
35*61046927SAndroid Build Coastguard Worker  'clllvm',
36*61046927SAndroid Build Coastguard Worker  files(
37*61046927SAndroid Build Coastguard Worker    'llvm/codegen/bitcode.cpp',
38*61046927SAndroid Build Coastguard Worker    'llvm/codegen/common.cpp',
39*61046927SAndroid Build Coastguard Worker    'llvm/codegen/native.cpp',
40*61046927SAndroid Build Coastguard Worker    'llvm/codegen.hpp',
41*61046927SAndroid Build Coastguard Worker    'llvm/compat.hpp',
42*61046927SAndroid Build Coastguard Worker    'llvm/invocation.cpp',
43*61046927SAndroid Build Coastguard Worker    'llvm/invocation.hpp',
44*61046927SAndroid Build Coastguard Worker    'llvm/metadata.hpp',
45*61046927SAndroid Build Coastguard Worker    'llvm/util.hpp',
46*61046927SAndroid Build Coastguard Worker  ),
47*61046927SAndroid Build Coastguard Worker  include_directories : clover_incs,
48*61046927SAndroid Build Coastguard Worker  cpp_args : [
49*61046927SAndroid Build Coastguard Worker    clover_cpp_args,
50*61046927SAndroid Build Coastguard Worker    clover_opencl_cpp_args,
51*61046927SAndroid Build Coastguard Worker    clover_spirv_cpp_args,
52*61046927SAndroid Build Coastguard Worker    '-DCLANG_RESOURCE_DIR="@0@"'.format(join_paths(
53*61046927SAndroid Build Coastguard Worker      dep_llvm.get_variable(cmake : 'LLVM_LIBRARY_DIR', configtool: 'libdir'), 'clang',
54*61046927SAndroid Build Coastguard Worker      dep_llvm.version(), 'include',
55*61046927SAndroid Build Coastguard Worker    )),
56*61046927SAndroid Build Coastguard Worker  ],
57*61046927SAndroid Build Coastguard Worker  gnu_symbol_visibility : 'hidden',
58*61046927SAndroid Build Coastguard Worker  dependencies : [dep_llvm, dep_elf, dep_llvmspirvlib, idep_mesautil],
59*61046927SAndroid Build Coastguard Worker)
60*61046927SAndroid Build Coastguard Worker
61*61046927SAndroid Build Coastguard Workeridep_opencl_spirv = null_dep
62*61046927SAndroid Build Coastguard Workerif with_clover_spirv
63*61046927SAndroid Build Coastguard Worker  libclspirv = static_library(
64*61046927SAndroid Build Coastguard Worker    'clspirv',
65*61046927SAndroid Build Coastguard Worker    files('spirv/invocation.cpp', 'spirv/invocation.hpp'),
66*61046927SAndroid Build Coastguard Worker    include_directories : clover_incs,
67*61046927SAndroid Build Coastguard Worker    cpp_args : [clover_opencl_cpp_args, clover_spirv_cpp_args],
68*61046927SAndroid Build Coastguard Worker    gnu_symbol_visibility : 'hidden',
69*61046927SAndroid Build Coastguard Worker    dependencies : [dep_spirv_tools, idep_mesautil],
70*61046927SAndroid Build Coastguard Worker  )
71*61046927SAndroid Build Coastguard Worker
72*61046927SAndroid Build Coastguard Worker  libclnir = static_library(
73*61046927SAndroid Build Coastguard Worker    'clnir',
74*61046927SAndroid Build Coastguard Worker    files('nir/invocation.cpp', 'nir/invocation.hpp'),
75*61046927SAndroid Build Coastguard Worker    include_directories : [clover_incs, inc_mesa],
76*61046927SAndroid Build Coastguard Worker    dependencies : [idep_nir, idep_vtn, idep_mesaclc],
77*61046927SAndroid Build Coastguard Worker    cpp_args : [clover_opencl_cpp_args, clover_spirv_cpp_args],
78*61046927SAndroid Build Coastguard Worker    gnu_symbol_visibility : 'hidden',
79*61046927SAndroid Build Coastguard Worker  )
80*61046927SAndroid Build Coastguard Worker
81*61046927SAndroid Build Coastguard Worker  idep_opencl_spirv = declare_dependency(
82*61046927SAndroid Build Coastguard Worker    dependencies : [idep_nir],
83*61046927SAndroid Build Coastguard Worker    link_with : [libclspirv, libclnir],
84*61046927SAndroid Build Coastguard Worker  )
85*61046927SAndroid Build Coastguard Workerendif
86*61046927SAndroid Build Coastguard Worker
87*61046927SAndroid Build Coastguard Workerclover_files = files(
88*61046927SAndroid Build Coastguard Worker  'api/context.cpp',
89*61046927SAndroid Build Coastguard Worker  'api/device.cpp',
90*61046927SAndroid Build Coastguard Worker  'api/dispatch.cpp',
91*61046927SAndroid Build Coastguard Worker  'api/dispatch.hpp',
92*61046927SAndroid Build Coastguard Worker  'api/event.cpp',
93*61046927SAndroid Build Coastguard Worker  'api/interop.cpp',
94*61046927SAndroid Build Coastguard Worker  'api/invalid.cpp',
95*61046927SAndroid Build Coastguard Worker  'api/kernel.cpp',
96*61046927SAndroid Build Coastguard Worker  'api/memory.cpp',
97*61046927SAndroid Build Coastguard Worker  'api/platform.cpp',
98*61046927SAndroid Build Coastguard Worker  'api/program.cpp',
99*61046927SAndroid Build Coastguard Worker  'api/queue.cpp',
100*61046927SAndroid Build Coastguard Worker  'api/sampler.cpp',
101*61046927SAndroid Build Coastguard Worker  'api/transfer.cpp',
102*61046927SAndroid Build Coastguard Worker  'api/util.hpp',
103*61046927SAndroid Build Coastguard Worker  'core/binary.cpp',
104*61046927SAndroid Build Coastguard Worker  'core/binary.hpp',
105*61046927SAndroid Build Coastguard Worker  'core/compiler.hpp',
106*61046927SAndroid Build Coastguard Worker  'core/context.cpp',
107*61046927SAndroid Build Coastguard Worker  'core/context.hpp',
108*61046927SAndroid Build Coastguard Worker  'core/device.cpp',
109*61046927SAndroid Build Coastguard Worker  'core/device.hpp',
110*61046927SAndroid Build Coastguard Worker  'core/error.hpp',
111*61046927SAndroid Build Coastguard Worker  'core/event.cpp',
112*61046927SAndroid Build Coastguard Worker  'core/event.hpp',
113*61046927SAndroid Build Coastguard Worker  'core/format.cpp',
114*61046927SAndroid Build Coastguard Worker  'core/format.hpp',
115*61046927SAndroid Build Coastguard Worker  'core/kernel.cpp',
116*61046927SAndroid Build Coastguard Worker  'core/kernel.hpp',
117*61046927SAndroid Build Coastguard Worker  'core/memory.cpp',
118*61046927SAndroid Build Coastguard Worker  'core/memory.hpp',
119*61046927SAndroid Build Coastguard Worker  'core/object.hpp',
120*61046927SAndroid Build Coastguard Worker  'core/platform.cpp',
121*61046927SAndroid Build Coastguard Worker  'core/platform.hpp',
122*61046927SAndroid Build Coastguard Worker  'core/printf.cpp',
123*61046927SAndroid Build Coastguard Worker  'core/printf.hpp',
124*61046927SAndroid Build Coastguard Worker  'core/program.cpp',
125*61046927SAndroid Build Coastguard Worker  'core/program.hpp',
126*61046927SAndroid Build Coastguard Worker  'core/property.hpp',
127*61046927SAndroid Build Coastguard Worker  'core/queue.cpp',
128*61046927SAndroid Build Coastguard Worker  'core/queue.hpp',
129*61046927SAndroid Build Coastguard Worker  'core/resource.cpp',
130*61046927SAndroid Build Coastguard Worker  'core/resource.hpp',
131*61046927SAndroid Build Coastguard Worker  'core/sampler.cpp',
132*61046927SAndroid Build Coastguard Worker  'core/sampler.hpp',
133*61046927SAndroid Build Coastguard Worker  'core/timestamp.cpp',
134*61046927SAndroid Build Coastguard Worker  'core/timestamp.hpp',
135*61046927SAndroid Build Coastguard Worker  'util/adaptor.hpp',
136*61046927SAndroid Build Coastguard Worker  'util/algebra.hpp',
137*61046927SAndroid Build Coastguard Worker  'util/algorithm.hpp',
138*61046927SAndroid Build Coastguard Worker  'util/compat.hpp',
139*61046927SAndroid Build Coastguard Worker  'util/factor.hpp',
140*61046927SAndroid Build Coastguard Worker  'util/functional.hpp',
141*61046927SAndroid Build Coastguard Worker  'util/lazy.hpp',
142*61046927SAndroid Build Coastguard Worker  'util/pointer.hpp',
143*61046927SAndroid Build Coastguard Worker  'util/range.hpp',
144*61046927SAndroid Build Coastguard Worker  'util/tuple.hpp',
145*61046927SAndroid Build Coastguard Worker)
146*61046927SAndroid Build Coastguard Worker
147*61046927SAndroid Build Coastguard Workerlibclover = static_library(
148*61046927SAndroid Build Coastguard Worker  'clover',
149*61046927SAndroid Build Coastguard Worker  [clover_files, sha1_h],
150*61046927SAndroid Build Coastguard Worker  include_directories : clover_incs,
151*61046927SAndroid Build Coastguard Worker  cpp_args : [
152*61046927SAndroid Build Coastguard Worker    clover_opencl_cpp_args,
153*61046927SAndroid Build Coastguard Worker    clover_spirv_cpp_args,
154*61046927SAndroid Build Coastguard Worker    clover_cpp_args,
155*61046927SAndroid Build Coastguard Worker  ],
156*61046927SAndroid Build Coastguard Worker  gnu_symbol_visibility : 'hidden',
157*61046927SAndroid Build Coastguard Worker  link_with : [libclllvm],
158*61046927SAndroid Build Coastguard Worker  dependencies : [idep_mesautil, idep_nir, idep_opencl_spirv],
159*61046927SAndroid Build Coastguard Worker)
160