xref: /aosp_15_r20/external/angle/third_party/libdrm/BUILD.gn (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker# Copyright 2016 The Chromium Authors
2*8975f5c5SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*8975f5c5SAndroid Build Coastguard Worker# found in the LICENSE file.
4*8975f5c5SAndroid Build Coastguard Workerassert(is_linux || is_chromeos)
5*8975f5c5SAndroid Build Coastguard Worker
6*8975f5c5SAndroid Build Coastguard Workergenerated_static_table_fourcc_file =
7*8975f5c5SAndroid Build Coastguard Worker    "$target_gen_dir/src/generated_static_table_fourcc.h"
8*8975f5c5SAndroid Build Coastguard Workerfourcc_file = "src/include/drm/drm_fourcc.h"
9*8975f5c5SAndroid Build Coastguard Worker
10*8975f5c5SAndroid Build Coastguard Workeraction("make_generated_static_table_fourcc") {
11*8975f5c5SAndroid Build Coastguard Worker  script = "src/gen_table_fourcc.py"
12*8975f5c5SAndroid Build Coastguard Worker  args = [
13*8975f5c5SAndroid Build Coastguard Worker    rebase_path(fourcc_file, root_build_dir),
14*8975f5c5SAndroid Build Coastguard Worker    rebase_path(generated_static_table_fourcc_file),
15*8975f5c5SAndroid Build Coastguard Worker  ]
16*8975f5c5SAndroid Build Coastguard Worker  outputs = [ generated_static_table_fourcc_file ]
17*8975f5c5SAndroid Build Coastguard Worker  inputs = [ fourcc_file ]
18*8975f5c5SAndroid Build Coastguard Worker}
19*8975f5c5SAndroid Build Coastguard Worker
20*8975f5c5SAndroid Build Coastguard Workerconfig("libdrm_config") {
21*8975f5c5SAndroid Build Coastguard Worker  # TODO(thomasanderson): Remove this hack once
22*8975f5c5SAndroid Build Coastguard Worker  # https://patchwork.kernel.org/patch/10545295/ lands.
23*8975f5c5SAndroid Build Coastguard Worker  defines = [ "typeof(x)=__typeof__(x)" ]
24*8975f5c5SAndroid Build Coastguard Worker
25*8975f5c5SAndroid Build Coastguard Worker  include_dirs = [
26*8975f5c5SAndroid Build Coastguard Worker    "src",
27*8975f5c5SAndroid Build Coastguard Worker    "src/include",
28*8975f5c5SAndroid Build Coastguard Worker    "src/include/drm",
29*8975f5c5SAndroid Build Coastguard Worker  ]
30*8975f5c5SAndroid Build Coastguard Worker
31*8975f5c5SAndroid Build Coastguard Worker  # libdrm uses macros defined by <sys/types.h> which are being moved to
32*8975f5c5SAndroid Build Coastguard Worker  # <sys/sysmacros.h>.  GLIBC headers give a pragma warning in this case.
33*8975f5c5SAndroid Build Coastguard Worker  # Suppress this warning for now.  This may be removed once
34*8975f5c5SAndroid Build Coastguard Worker  # https://patchwork.kernel.org/patch/9628231/ lands.
35*8975f5c5SAndroid Build Coastguard Worker  cflags = [ "-Wno-#pragma-messages" ]
36*8975f5c5SAndroid Build Coastguard Worker
37*8975f5c5SAndroid Build Coastguard Worker  # glibc version >= 2.25 explicitly include <sys/sysmacros.h>
38*8975f5c5SAndroid Build Coastguard Worker  cflags += [ "-DMAJOR_IN_SYSMACROS=1" ]
39*8975f5c5SAndroid Build Coastguard Worker
40*8975f5c5SAndroid Build Coastguard Worker  # TODO(b/357680612): unused function 'swap32'.
41*8975f5c5SAndroid Build Coastguard Worker  cflags += [ "-Wno-unused-function" ]
42*8975f5c5SAndroid Build Coastguard Worker
43*8975f5c5SAndroid Build Coastguard Worker  if (is_clang) {
44*8975f5c5SAndroid Build Coastguard Worker    cflags += [
45*8975f5c5SAndroid Build Coastguard Worker      "-Wno-enum-conversion",
46*8975f5c5SAndroid Build Coastguard Worker
47*8975f5c5SAndroid Build Coastguard Worker      # TODO(crbug.com/932060) fix unused result from asprintf in modetest.c.
48*8975f5c5SAndroid Build Coastguard Worker      "-Wno-unused-result",
49*8975f5c5SAndroid Build Coastguard Worker
50*8975f5c5SAndroid Build Coastguard Worker      # modetest.c has an improper conversion in a printf statement.
51*8975f5c5SAndroid Build Coastguard Worker      "-Wno-format",
52*8975f5c5SAndroid Build Coastguard Worker    ]
53*8975f5c5SAndroid Build Coastguard Worker  }
54*8975f5c5SAndroid Build Coastguard Worker}
55*8975f5c5SAndroid Build Coastguard Worker
56*8975f5c5SAndroid Build Coastguard Workerstatic_library("libdrm") {
57*8975f5c5SAndroid Build Coastguard Worker  sources = [
58*8975f5c5SAndroid Build Coastguard Worker    "src/include/drm/drm.h",
59*8975f5c5SAndroid Build Coastguard Worker    "src/include/drm/drm_fourcc.h",
60*8975f5c5SAndroid Build Coastguard Worker    "src/include/drm/drm_mode.h",
61*8975f5c5SAndroid Build Coastguard Worker    "src/libdrm_macros.h",
62*8975f5c5SAndroid Build Coastguard Worker    "src/util_math.h",
63*8975f5c5SAndroid Build Coastguard Worker    "src/xf86drm.c",
64*8975f5c5SAndroid Build Coastguard Worker    "src/xf86drm.h",
65*8975f5c5SAndroid Build Coastguard Worker    "src/xf86drmHash.c",
66*8975f5c5SAndroid Build Coastguard Worker    "src/xf86drmHash.h",
67*8975f5c5SAndroid Build Coastguard Worker    "src/xf86drmMode.c",
68*8975f5c5SAndroid Build Coastguard Worker    "src/xf86drmMode.h",
69*8975f5c5SAndroid Build Coastguard Worker    "src/xf86drmRandom.c",
70*8975f5c5SAndroid Build Coastguard Worker    "src/xf86drmRandom.h",
71*8975f5c5SAndroid Build Coastguard Worker  ]
72*8975f5c5SAndroid Build Coastguard Worker
73*8975f5c5SAndroid Build Coastguard Worker  deps = [ ":make_generated_static_table_fourcc" ]
74*8975f5c5SAndroid Build Coastguard Worker
75*8975f5c5SAndroid Build Coastguard Worker  include_dirs = [
76*8975f5c5SAndroid Build Coastguard Worker    get_path_info(generated_static_table_fourcc_file, "dir"),
77*8975f5c5SAndroid Build Coastguard Worker    "src",
78*8975f5c5SAndroid Build Coastguard Worker    "src/include",
79*8975f5c5SAndroid Build Coastguard Worker  ]
80*8975f5c5SAndroid Build Coastguard Worker  configs -= [ "//build/config/compiler:chromium_code" ]
81*8975f5c5SAndroid Build Coastguard Worker  configs += [ "//build/config/compiler:no_chromium_code" ]
82*8975f5c5SAndroid Build Coastguard Worker  cflags = [
83*8975f5c5SAndroid Build Coastguard Worker    # xf86drm.c uses readdir_r, which has been deprecated as of
84*8975f5c5SAndroid Build Coastguard Worker    # glibc-2.24.  This causes a build error when using the Debian
85*8975f5c5SAndroid Build Coastguard Worker    # Stretch sysroot.
86*8975f5c5SAndroid Build Coastguard Worker    "-Wno-deprecated-declarations",
87*8975f5c5SAndroid Build Coastguard Worker  ]
88*8975f5c5SAndroid Build Coastguard Worker
89*8975f5c5SAndroid Build Coastguard Worker  public_configs = [ ":libdrm_config" ]
90*8975f5c5SAndroid Build Coastguard Worker}
91*8975f5c5SAndroid Build Coastguard Worker
92*8975f5c5SAndroid Build Coastguard Workerexecutable("modetest") {
93*8975f5c5SAndroid Build Coastguard Worker  sources = [
94*8975f5c5SAndroid Build Coastguard Worker    "src/tests/modetest/buffers.c",
95*8975f5c5SAndroid Build Coastguard Worker    "src/tests/modetest/buffers.h",
96*8975f5c5SAndroid Build Coastguard Worker    "src/tests/modetest/cursor.c",
97*8975f5c5SAndroid Build Coastguard Worker    "src/tests/modetest/cursor.h",
98*8975f5c5SAndroid Build Coastguard Worker    "src/tests/modetest/modetest.c",
99*8975f5c5SAndroid Build Coastguard Worker    "src/tests/util/common.h",
100*8975f5c5SAndroid Build Coastguard Worker    "src/tests/util/format.c",
101*8975f5c5SAndroid Build Coastguard Worker    "src/tests/util/format.h",
102*8975f5c5SAndroid Build Coastguard Worker    "src/tests/util/kms.c",
103*8975f5c5SAndroid Build Coastguard Worker    "src/tests/util/kms.h",
104*8975f5c5SAndroid Build Coastguard Worker    "src/tests/util/pattern.c",
105*8975f5c5SAndroid Build Coastguard Worker    "src/tests/util/pattern.h",
106*8975f5c5SAndroid Build Coastguard Worker  ]
107*8975f5c5SAndroid Build Coastguard Worker
108*8975f5c5SAndroid Build Coastguard Worker  include_dirs = [
109*8975f5c5SAndroid Build Coastguard Worker    "src/tests",
110*8975f5c5SAndroid Build Coastguard Worker    "src/tests/modetest",
111*8975f5c5SAndroid Build Coastguard Worker  ]
112*8975f5c5SAndroid Build Coastguard Worker
113*8975f5c5SAndroid Build Coastguard Worker  configs -= [ "//build/config/compiler:chromium_code" ]
114*8975f5c5SAndroid Build Coastguard Worker  configs += [ "//build/config/compiler:no_chromium_code" ]
115*8975f5c5SAndroid Build Coastguard Worker  configs += [ ":libdrm_config" ]
116*8975f5c5SAndroid Build Coastguard Worker
117*8975f5c5SAndroid Build Coastguard Worker  deps = [ ":libdrm" ]
118*8975f5c5SAndroid Build Coastguard Worker}
119