xref: /aosp_15_r20/external/angle/third_party/OpenCL-ICD-Loader/BUILD.gn (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1# Copyright 2021 The ANGLE Project Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import("//gni/angle.gni")
6
7config("opencl_icd_loader_config") {
8  include_dirs = [ "src/loader" ]
9}
10
11source_set("opencl_icd_loader") {
12  sources = [
13    "src/loader/icd.c",
14    "src/loader/icd_dispatch.c",
15    "src/loader/icd_dispatch_generated.c",
16  ]
17  defines = [
18    "CL_TARGET_OPENCL_VERSION=300",
19    "OPENCL_ICD_LOADER_DISABLE_OPENCLON12",
20  ]
21
22  if (is_win) {
23    sources += [
24      "src/loader/windows/icd_windows.c",
25      "src/loader/windows/icd_windows_apppackage.cpp",
26      "src/loader/windows/icd_windows_dxgk.c",
27      "src/loader/windows/icd_windows_envvars.c",
28      "src/loader/windows/icd_windows_hkr.c",
29    ]
30
31    configs -= [ "//build/config/win:lean_and_mean" ]
32    libs = [ "cfgmgr32.lib" ]
33
34    if (is_clang) {
35      cflags = [ "-Wno-incompatible-pointer-types" ]
36    } else {
37      cflags = [ "/wd4133" ]
38    }
39  } else {
40    sources += [
41      "src/loader/linux/icd_linux.c",
42      "src/loader/linux/icd_linux_envvars.c",
43    ]
44    include_dirs = [ "." ]
45
46    if (is_android) {
47      cflags = [ "-Wno-#pragma-messages" ]
48    } else {
49      defines += [ "HAVE_SECURE_GETENV" ]
50    }
51  }
52
53  configs -= [ "//build/config/compiler:chromium_code" ]
54  configs += [ "//build/config/compiler:no_chromium_code" ]
55
56  public_configs = [ ":opencl_icd_loader_config" ]
57  public_deps = [ "$angle_root:cl_includes" ]
58}
59