//
// 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",
        "soong-common",
        "soong-env",
    ],
    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",
    pkgPath: "android/soong",
    deps: [
        "blueprint",
    ],
    srcs: [
        "doc.go",
        "register.go",
    ],
}

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

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

        "cc/arm_device.go",
        "cc/arm64_device.go",
        "cc/mips_device.go",
        "cc/mips64_device.go",
        "cc/x86_device.go",
        "cc/x86_64_device.go",

        "cc/x86_darwin_host.go",
        "cc/x86_linux_host.go",
        "cc/x86_windows_host.go",
    ],
    testSrcs: [
        "cc/cc_test.go",
    ],
    pluginFor: ["soong_build"],
}

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

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",
        "soong-common",
        "soong-genrule",
    ],
    srcs: [
        "java/androidmk.go",
        "java/app_builder.go",
        "java/app.go",
        "java/builder.go",
        "java/gen.go",
        "java/java.go",
        "java/resources.go",
    ],
    pluginFor: ["soong_build"],
}

//
// 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",
    ],
    testSrcs: [
        "androidmk/parser/make_strings_test.go",
    ],
}

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

toolchain_library {
    name: "libatomic",
    arch: {
        arm: {
            instruction_set: "arm",
        },
    },
}

toolchain_library {
    name: "libgcc",
    arch: {
        arm: {
            instruction_set: "arm",
        },
    },
}

toolchain_library {
    name: "libgcov",
    arch: {
        arm: {
            instruction_set: "arm",
        },
    },
}