# Copyright 2019 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//common-mk/pkg_config.gni")

group("all") {
  deps = [
    ":codelab",
    ":libcodelab",
  ]
  if (use.test) {
    deps += [ ":codelab_test" ]
  }
}

pkg_config("target_defaults") {
  pkg_deps = [
    "libbrillo",
    "libchrome",
  ]
}

static_library("libcodelab") {
  sources = [ "codelab.cc" ]
  configs += [ ":target_defaults" ]
}

executable("codelab") {
  sources = [ "main.cc" ]
  configs += [ ":target_defaults" ]
  deps = [ ":libcodelab" ]
}

if (use.test) {
  pkg_config("codelab_test_config") {
    pkg_deps = [ "libchrome-test" ]
  }

  executable("codelab_test") {
    sources = [ "codelab_test.cc" ]
    configs += [
      "//common-mk:test",
      ":codelab_test_config",
      ":target_defaults",
    ]
    deps = [
      ":libcodelab",
      "//common-mk/testrunner",
    ]
  }
}
