| # 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") { |
| # Define _GNU_SOURCE for vasprintf use in xf86drm.c |
| defines = [ "_GNU_SOURCE" ] |
| include_dirs = [ |
| "src", |
| "src/include", |
| "src/include/drm", |
| ] |
| if (is_clang) { |
| cflags = [ "-Wno-enum-conversion" ] |
| } |
| } |
| |
| 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" ] |
| } |
| } |
| |
| if (use_system_libdrm) { |
| pkg_config("libdrm_config") { |
| packages = [ "libdrm" ] |
| } |
| group("libdrm") { |
| public_configs = [ ":libdrm_config" ] |
| } |
| } |