# Copyright 2016 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
assert(is_linux || is_chromeos)
generated_static_table_fourcc_file =
"$target_gen_dir/src/generated_static_table_fourcc.h"
fourcc_file = "src/include/drm/drm_fourcc.h"
action("make_generated_static_table_fourcc") {
script = "src/gen_table_fourcc.py"
args = [
rebase_path(fourcc_file, root_build_dir),
rebase_path(generated_static_table_fourcc_file),
]
outputs = [ generated_static_table_fourcc_file ]
inputs = [ fourcc_file ]
}
config("libdrm_config") {
# TODO(thomasanderson): Remove this hack once
# https://patchwork.kernel.org/patch/10545295/ lands.
defines = [ "typeof(x)=__typeof__(x)" ]
include_dirs = [
"src",
"src/include",
"src/include/drm",
]
# libdrm uses macros defined by <sys/types.h> which are being moved to
# <sys/sysmacros.h>. GLIBC headers give a pragma warning in this case.
# Suppress this warning for now. This may be removed once
# https://patchwork.kernel.org/patch/9628231/ lands.
cflags = [ "-Wno-#pragma-messages" ]
# glibc version >= 2.25 explicitly include <sys/sysmacros.h>
cflags += [ "-DMAJOR_IN_SYSMACROS=1" ]
# TODO(b/357680612): unused function 'swap32'.
cflags += [ "-Wno-unused-function" ]
if (is_clang) {
cflags += [
"-Wno-enum-conversion",
# TODO(crbug.com/932060) fix unused result from asprintf in modetest.c.
"-Wno-unused-result",
# modetest.c has an improper conversion in a printf statement.
"-Wno-format",
]
}
}
static_library("libdrm") {
sources = [
"src/xf86drm.c",
"src/xf86drmHash.c",
"src/xf86drmMode.c",
"src/xf86drmRandom.c",
]
deps = [ ":make_generated_static_table_fourcc" ]
include_dirs = [
get_path_info(generated_static_table_fourcc_file, "dir"),
"src",
"src/include",
]
configs -= [ "//build/config/compiler:chromium_code" ]
configs += [ "//build/config/compiler:no_chromium_code" ]
cflags = [
# xf86drm.c uses readdir_r, which has been deprecated as of
# glibc-2.24. This causes a build error when using the Debian
# Stretch sysroot.
"-Wno-deprecated-declarations",
]
public_configs = [ ":libdrm_config" ]
}
executable("modetest") {
sources = [
"src/tests/modetest/buffers.c",
"src/tests/modetest/buffers.h",
"src/tests/modetest/cursor.c",
"src/tests/modetest/cursor.h",
"src/tests/modetest/modetest.c",
"src/tests/util/common.h",
"src/tests/util/format.c",
"src/tests/util/format.h",
"src/tests/util/kms.c",
"src/tests/util/kms.h",
"src/tests/util/pattern.c",
"src/tests/util/pattern.h",
]
include_dirs = [
"src/tests",
"src/tests/modetest",
]
configs -= [ "//build/config/compiler:chromium_code" ]
configs += [ "//build/config/compiler:no_chromium_code" ]
configs += [ ":libdrm_config" ]
deps = [ ":libdrm" ]
}