# Copyright 2015 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/features.gni")
import("//build/config/sysroot.gni")
import("//build/config/ui.gni")

config("sdk") {
  if (sysroot != "") {
    cflags = [ "--sysroot=" + sysroot ]
    ldflags = [ "--sysroot=" + sysroot ]

    # Need to get some linker flags out of the sysroot.
    ldflags += [ exec_script("../linux/sysroot_ld_path.py",
                             [
                               rebase_path("//build/linux/sysroot_ld_path.sh",
                                           root_build_dir),
                               sysroot,
                             ],
                             "value") ]
  }

  defines = [ "FNL_MUSL" ]

  if (use_ozone) {
    defines += [ "MESA_EGL_NO_X11_HEADERS" ]
  }
}

config("freetype2") {
  include_dirs = [ "$sysroot/usr/include/freetype2" ]
  libs = [ "freetype" ]
}
