// Copyright (C) 2021 The Android Open Source Project
//
// 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.

package {
    default_visibility: ["//packages/modules/common:__subpackages__"],
    default_applicable_licenses: ["Android-Apache-2.0"],
}

soong_config_bool_variable {
    name: "module_build_from_source",
}

soong_config_module_type {
    name: "module_apex_set",
    module_type: "apex_set",
    config_namespace: "ANDROID",
    bool_variables: ["module_build_from_source"],
    properties: [
        "prefer",
    ],
}

soong_config_module_type {
    name: "module_android_app_import",
    module_type: "android_app_import",
    config_namespace: "ANDROID",
    bool_variables: ["module_build_from_source"],
    properties: [
        "prefer",
    ],
}

soong_config_module_type {
    name: "module_android_app_set",
    module_type: "android_app_set",
    config_namespace: "ANDROID",
    bool_variables: ["module_build_from_source"],
    properties: [
        "prefer",
    ],
}

soong_config_module_type {
    name: "module_prebuilt_bootclasspath_fragment",
    module_type: "prebuilt_bootclasspath_fragment",
    config_namespace: "ANDROID",
    bool_variables: ["module_build_from_source"],
    properties: [
        "prefer",
    ],
}

soong_config_module_type {
    name: "module_java_import",
    module_type: "java_import",
    config_namespace: "ANDROID",
    bool_variables: ["module_build_from_source"],
    properties: [
        "prefer",
    ],
}
soong_config_module_type {
    name: "module_java_sdk_library_import",
    module_type: "java_sdk_library_import",
    config_namespace: "ANDROID",
    bool_variables: ["module_build_from_source"],
    properties: [
        "prefer",
    ],
}

soong_config_module_type {
    name: "module_cc_prebuilt_binary",
    module_type: "cc_prebuilt_binary",
    config_namespace: "ANDROID",
    bool_variables: ["module_build_from_source"],
    properties: [
        "prefer",
    ],
}

soong_config_module_type {
    name: "module_cc_prebuilt_library_shared",
    module_type: "cc_prebuilt_library_shared",
    config_namespace: "ANDROID",
    bool_variables: ["module_build_from_source"],
    properties: [
        "prefer",
    ],
}

soong_config_module_type {
    name: "module_cc_prebuilt_library_headers",
    module_type: "cc_prebuilt_library_headers",
    config_namespace: "ANDROID",
    bool_variables: ["module_build_from_source"],
    properties: [
        "prefer",
    ],
}

soong_config_module_type {
    name: "module_java_library",
    module_type: "java_library",
    config_namespace: "ANDROID",
    bool_variables: ["module_build_from_source"],
    properties: [
        "enabled",
    ],
}

soong_config_module_type {
    name: "module_apex",
    module_type: "apex",
    config_namespace: "ANDROID",
    bool_variables: ["module_build_from_source"],
    properties: [
        "enabled",
    ],
}

soong_config_module_type {
    name: "module_apex_test",
    module_type: "apex_test",
    config_namespace: "ANDROID",
    bool_variables: ["module_build_from_source"],
    properties: [
        "enabled",
    ],
}

soong_config_module_type {
    name: "module_override_apex",
    module_type: "override_apex",
    config_namespace: "ANDROID",
    bool_variables: ["module_build_from_source"],
    properties: [
        "enabled",
    ],
}
