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