# 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

config("libsecret_config") {
  include_dirs = [ rebase_path("./") ]
}

source_set("libsecret") {
  sources = [
    "libsecret/secret-attributes.h",
    "libsecret/secret-collection.h",
    "libsecret/secret-enum-types.h",
    "libsecret/secret-item.h",
    "libsecret/secret-password.h",
    "libsecret/secret-paths.h",
    "libsecret/secret-prompt.h",
    "libsecret/secret-schema.h",
    "libsecret/secret-schemas.h",
    "libsecret/secret-service.h",
    "libsecret/secret-types.h",
    "libsecret/secret-value.h",
    "libsecret/secret.h",
  ]

  public_configs = [ ":libsecret_config" ]
}
