//
// WARNING: Modifying this file will NOT automatically regenerate build.ninja.in!
//
// Before modifying this file make sure minibp is up to date:
//    1) "repo sync build/soong" to make sure you have the latest build.ninja.in
//    2) build minibp, which builds automicatically through the normal build steps. For example:
//
// After modifying this file regenerate build.ninja.in and build your changes:
//    1) In your build directory, execute "../bootstrap.bash -r" to regenerate build.ninja.in
//    2) Build again
//

bootstrap_go_binary {
    name: "soong_build",
    deps: [
        "blueprint",
        "blueprint-bootstrap",
        "soong-art",
        "soong-cc",
        "soong-common",
        "soong-env",
        "soong-genrule",
        "soong-java",
    ],
    srcs: [
        "cmd/soong_build/main.go",
    ],
    primaryBuilder: true,
}

bootstrap_go_binary {
    name: "soong_env",
    deps: [
        "soong-env",
    ],
    srcs: [
        "cmd/soong_env/soong_env.go",
    ],
}

bootstrap_go_package {
    name: "soong-env",
    pkgPath: "android/soong/env",
    srcs: [
        "env/env.go",
    ],
}


bootstrap_go_binary {
    name: "soong_glob",
    deps: [
        "soong-glob",
    ],
    srcs: [
        "cmd/soong_glob/soong_glob.go",
    ],
}

bootstrap_go_package {
    name: "soong-glob",
    pkgPath: "android/soong/glob",
    deps: [
        "blueprint-deptools",
        "blueprint-pathtools",
    ],
    srcs: [
        "glob/glob.go",
    ],
}

bootstrap_go_package {
    name: "soong-common",
    pkgPath: "android/soong/common",
    deps: [
        "blueprint",
        "blueprint-bootstrap",
        "soong-env",
        "soong-glob",
    ],
    srcs: [
        "common/arch.go",
        "common/config.go",
        "common/defs.go",
        "common/env.go",
        "common/glob.go",
        "common/module.go",
        "common/paths.go",
        "common/util.go",
    ],
}

bootstrap_go_package {
    name: "soong-cc",
    pkgPath: "android/soong/cc",
    deps: [
        "blueprint",
        "blueprint-pathtools",
        "soong-common",
        "soong-genrule",
    ],
    srcs: [
        "cc/builder.go",
        "cc/cc.go",
        "cc/clang.go",
        "cc/gen.go",
        "cc/toolchain.go",
        "cc/util.go",

        "cc/arm_device.go",
        "cc/arm64_device.go",

        "cc/x86_darwin_host.go",
        "cc/x86_linux_host.go",
    ],
}

bootstrap_go_package {
    name: "soong-genrule",
    pkgPath: "android/soong/genrule",
    deps: [
        "blueprint",
        "blueprint-pathtools",
        "soong-common",
    ],
    srcs: [
        "genrule/genrule.go",
    ],
}

bootstrap_go_binary {
    name: "soong_jar",
    srcs: [
        "cmd/soong_jar/soong_jar.go",
    ],
}

bootstrap_go_package {
    name: "soong-java",
    pkgPath: "android/soong/java",
    deps: [
        "blueprint",
        "blueprint-pathtools",
        "soong-common",
        "soong-genrule",
    ],
    srcs: [
        "java/app_builder.go",
        "java/app.go",
        "java/builder.go",
        "java/gen.go",
        "java/java.go",
        "java/resources.go",
    ],
}

//
// androidmk Android.mk to Blueprints translator
//

bootstrap_go_binary {
    name: "androidmk",
    srcs: [
        "androidmk/cmd/androidmk/android.go",
        "androidmk/cmd/androidmk/androidmk.go",
        "androidmk/cmd/androidmk/values.go",
    ],
    deps: [
        "androidmk-parser",
        "blueprint-parser",
    ],
}

bootstrap_go_package {
    name: "androidmk-parser",
    pkgPath: "android/soong/androidmk/parser",
    srcs: [
        "androidmk/parser/make_strings.go",
        "androidmk/parser/makething.go",
        "androidmk/parser/parser.go",
        "androidmk/parser/scope.go",
    ],
}

bootstrap_go_binary {
    name: "androidbp",
    srcs: [
        "androidbp/cmd/androidbp.go",
        "androidbp/cmd/soong.go",
    ],
    deps: [
        "blueprint-parser",
    ],
}

//
// C static libraries extracted from the gcc toolchain
//

toolchain_library {
    name: "libatomic",
}

toolchain_library {
    name: "libgcc",
}

toolchain_library {
    name: "libgcov",
}
