// Copyright 2016 Google Inc. All rights reserved
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

cc_defaults {
    name: "ckati_defaults",
    cflags: [
        "-W",
        "-Wall",
        "-Werror",
        "-DNOLOG",
    ],
    tidy_checks: [
        "-google-global-names-in-headers",
        "-google-build-using-namespace",
        "-google-explicit-constructor",
    ],
}

cc_library_host_static {
    name: "libckati",
    defaults: ["ckati_defaults"],
    srcs: [
        "affinity.cc",
        "command.cc",
        "dep.cc",
        "eval.cc",
        "exec.cc",
        "expr.cc",
        "file.cc",
        "file_cache.cc",
        "fileutil.cc",
        "find.cc",
        "flags.cc",
        "func.cc",
        "io.cc",
        "log.cc",
        "ninja.cc",
        "parser.cc",
        "regen.cc",
        "rule.cc",
        "stats.cc",
        "stmt.cc",
        "string_piece.cc",
        "stringprintf.cc",
        "strutil.cc",
        "symtab.cc",
        "thread_pool.cc",
        "timeutil.cc",
        "var.cc",
        "version_unknown.cc",
    ],
}

cc_binary_host {
    name: "ckati",
    defaults: ["ckati_defaults"],
    srcs: ["main.cc"],
    whole_static_libs: ["libckati"],
}

cc_binary_host {
    name: "ckati_stamp_dump",
    defaults: ["ckati_defaults"],
    srcs: ["regen_dump.cc"],
    static_libs: ["libckati"],
}

cc_test_host {
    name: "ckati_test",
    defaults: ["ckati_defaults"],
    test_per_src: true,
    srcs: [
        "find_test.cc",
        "ninja_test.cc",
        "string_piece_test.cc",
        "strutil_bench.cc",
        "strutil_test.cc",
    ],
    gtest: false,
    static_libs: ["libckati"],
}

cc_benchmark_host {
    name: "ckati_fileutil_bench",
    defaults: ["ckati_defaults"],
    srcs: [
        "fileutil_bench.cc",
    ],
    static_libs: ["libckati"],
}
