blob: 97b6505b20c70ca9c1023b28cc3f47d4e6708e76 [file] [log] [blame]
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/linux/pkg_config.gni")
assert(is_linux)
declare_args() {
# Controls whether the build should use the version of libdrm
# library shipped with the system. In release builds of Chrome OS we
# use the system version, but when building on dev workstations we
# bundle it because Ubuntu doesn't ship a usable version.
use_system_libdrm = false
}
if (!use_system_libdrm) {
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" ]
if (is_clang) {
cflags += [ "-Wno-enum-conversion" ]
}
}
config("libdrm_exynos_include_config") {
include_dirs = [ "//third_party/libdrm/src/exynos" ]
}
static_library("libdrm") {
sources = [
"src/xf86drm.c",
"src/xf86drmHash.c",
"src/xf86drmMode.c",
"src/xf86drmRandom.c",
]
include_dirs = [
"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",
]
deps = [
":libdrm",
]
}
}
if (use_system_libdrm) {
pkg_config("libdrm_config") {
packages = [ "libdrm" ]
}
group("libdrm") {
public_configs = [ ":libdrm_config" ]
}
}