//
// Copyright (C) 2017 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_applicable_licenses: ["system_core_init_license"],
}

// Added automatically by a large-scale-change
// See: http://go/android-license-faq
license {
    name: "system_core_init_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
    ],
    license_text: [
        "NOTICE",
    ],
}

init_common_sources = [
    "action.cpp",
    "action_manager.cpp",
    "action_parser.cpp",
    "capabilities.cpp",
    "epoll.cpp",
    "import_parser.cpp",
    "interface_utils.cpp",
    "keychords.cpp",
    "parser.cpp",
    "property_type.cpp",
    "rlimit_parser.cpp",
    "service.cpp",
    "service_list.cpp",
    "service_parser.cpp",
    "service_utils.cpp",
    "subcontext.cpp",
    "subcontext.proto",
    "tokenizer.cpp",
    "util.cpp",
]
init_device_sources = [
    "block_dev_initializer.cpp",
    "bootchart.cpp",
    "builtins.cpp",
    "devices.cpp",
    "firmware_handler.cpp",
    "first_stage_console.cpp",
    "first_stage_init.cpp",
    "first_stage_mount.cpp",
    "fscrypt_init_extensions.cpp",
    "init.cpp",
    "lmkd_service.cpp",
    "modalias_handler.cpp",
    "mount_handler.cpp",
    "mount_namespace.cpp",
    "persistent_properties.cpp",
    "persistent_properties.proto",
    "property_service.cpp",
    "property_service.proto",
    "reboot.cpp",
    "reboot_utils.cpp",
    "security.cpp",
    "selabel.cpp",
    "selinux.cpp",
    "sigchld_handler.cpp",
    "snapuserd_transition.cpp",
    "switch_root.cpp",
    "uevent_listener.cpp",
    "ueventd.cpp",
    "ueventd_parser.cpp",
]
init_host_sources = [
    "check_builtins.cpp",
    "host_import_parser.cpp",
    "host_init_verifier.cpp",
]

cc_defaults {
    name: "init_defaults",
    sanitize: {
        misc_undefined: ["signed-integer-overflow"],
    },
    cflags: [
        "-DLOG_UEVENTS=0",
        "-Wall",
        "-Wextra",
        "-Wno-unused-parameter",
        "-Werror",
        "-Wthread-safety",
        "-DALLOW_FIRST_STAGE_CONSOLE=0",
        "-DALLOW_LOCAL_PROP_OVERRIDE=0",
        "-DALLOW_PERMISSIVE_SELINUX=0",
        "-DREBOOT_BOOTLOADER_ON_PANIC=0",
        "-DWORLD_WRITABLE_KMSG=0",
        "-DDUMP_ON_UMOUNT_FAILURE=0",
        "-DSHUTDOWN_ZERO_TIMEOUT=0",
        "-DINIT_FULL_SOURCES",
    ],
    product_variables: {
        debuggable: {
            cppflags: [
                "-UALLOW_FIRST_STAGE_CONSOLE",
                "-DALLOW_FIRST_STAGE_CONSOLE=1",
                "-UALLOW_LOCAL_PROP_OVERRIDE",
                "-DALLOW_LOCAL_PROP_OVERRIDE=1",
                "-UALLOW_PERMISSIVE_SELINUX",
                "-DALLOW_PERMISSIVE_SELINUX=1",
                "-UREBOOT_BOOTLOADER_ON_PANIC",
                "-DREBOOT_BOOTLOADER_ON_PANIC=1",
                "-UWORLD_WRITABLE_KMSG",
                "-DWORLD_WRITABLE_KMSG=1",
                "-UDUMP_ON_UMOUNT_FAILURE",
                "-DDUMP_ON_UMOUNT_FAILURE=1",
            ],
        },
        eng: {
            cppflags: [
                "-USHUTDOWN_ZERO_TIMEOUT",
                "-DSHUTDOWN_ZERO_TIMEOUT=1",
            ],
        },
        uml: {
            cppflags: ["-DUSER_MODE_LINUX"],
        },
    },
    static_libs: [
        "libavb",
        "libc++fs",
        "libcgrouprc_format",
        "liblmkd_utils",
        "libmodprobe",
        "libprocinfo",
        "libprotobuf-cpp-lite",
        "libpropertyinfoserializer",
        "libpropertyinfoparser",
        "libsnapshot_cow",
        "libsnapshot_init",
        "libxml2",
        "lib_apex_manifest_proto_lite",
        "update_metadata-protos",
    ],
    shared_libs: [
        "libbacktrace",
        "libbase",
        "libbootloader_message",
        "libcutils",
        "libdl",
        "libext4_utils",
        "libfs_mgr",
        "libgsi",
        "libhidl-gen-utils",
        "libkeyutils",
        "liblog",
        "liblogwrap",
        "liblp",
        "libprocessgroup",
        "libprocessgroup_setup",
        "libselinux",
        "libutils",
    ],
    bootstrap: true,
    visibility: [":__subpackages__"],
}

cc_library_static {
    name: "libinit",
    recovery_available: true,
    defaults: [
        "init_defaults",
        "selinux_policy_version",
    ],
    srcs: init_common_sources + init_device_sources,
    generated_sources: [
        "apex-info-list",
    ],
    whole_static_libs: [
        "libcap",
        "com.android.sysprop.apex",
        "com.android.sysprop.init",
    ],
    header_libs: ["bootimg_headers"],
    proto: {
        type: "lite",
        export_proto_headers: true,
    },

    target: {
        recovery: {
            cflags: ["-DRECOVERY"],
            exclude_static_libs: [
                "libxml2",
            ],
            exclude_generated_sources: [
                "apex-info-list",
            ],
            exclude_shared_libs: [
                "libbinder",
                "libutils",
            ],
        },
    },
}

phony {
    name: "init",
    required: [
        "init_second_stage",
    ],
}

cc_binary {
    name: "init_second_stage",
    recovery_available: true,
    stem: "init",
    defaults: ["init_defaults"],
    static_libs: ["libinit"],
    required: [
        "e2fsdroid",
        "init.rc",
        "mke2fs",
        "sload_f2fs",
        "make_f2fs",
        "ueventd.rc",
    ],
    srcs: ["main.cpp"],
    symlinks: ["ueventd"],
    target: {
        recovery: {
            cflags: ["-DRECOVERY"],
            exclude_static_libs: [
                "libxml2",
            ],
            exclude_shared_libs: [
                "libbinder",
                "libutils",
            ],
        },
    },
    visibility: ["//packages/modules/Virtualization/microdroid"],
}

// This currently is only for the VM usecase.
// TODO(jiyong): replace init_first_stage in Android.mk with this
cc_binary {
    name: "init_first_stage_soong",
    stem: "init_vendor",

    srcs: [
        "block_dev_initializer.cpp",
        "devices.cpp",
        "first_stage_console.cpp",
        "first_stage_init.cpp",
        "first_stage_main.cpp",
        "first_stage_mount.cpp",
        "reboot_utils.cpp",
        "selabel.cpp",
        "selinux.cpp",
        "service_utils.cpp",
        "snapuserd_transition.cpp",
        "switch_root.cpp",
        "uevent_listener.cpp",
        "util.cpp",
    ],

    static_libs: [
        "libc++fs",
        "libfs_avb",
        "libfs_mgr",
        "libfec",
        "libfec_rs",
        "libsquashfs_utils",
        "liblogwrap",
        "libext4_utils",
        "libcrypto_utils",
        "libsparse",
        "libavb",
        "libkeyutils",
        "liblp",
        "libcutils",
        "libbase",
        "liblog",
        "libcrypto_static",
        "libdl",
        "libz",
        "libselinux",
        "libcap",
        "libgsi",
        "libcom.android.sysprop.apex",
        "liblzma",
        "libunwindstack_no_dex",
        "libbacktrace_no_dex",
        "libmodprobe",
        "libext2_uuid",
        "libprotobuf-cpp-lite",
        "libsnapshot_cow",
        "libsnapshot_init",
        "update_metadata-protos",
        "libprocinfo",
    ],

    static_executable: true,

    cflags: [
        "-Wall",
        "-Wextra",
        "-Wno-unused-parameter",
        "-Werror",
        "-DALLOW_FIRST_STAGE_CONSOLE=0",
        "-DALLOW_LOCAL_PROP_OVERRIDE=0",
        "-DALLOW_PERMISSIVE_SELINUX=0",
        "-DREBOOT_BOOTLOADER_ON_PANIC=0",
        "-DWORLD_WRITABLE_KMSG=0",
        "-DDUMP_ON_UMOUNT_FAILURE=0",
        "-DSHUTDOWN_ZERO_TIMEOUT=0",
        "-DLOG_UEVENTS=0",
        "-DSEPOLICY_VERSION=30", // TODO(jiyong): externalize the version number
    ],

    product_variables: {
        debuggable: {
            cflags: [
                "-UALLOW_FIRST_STAGE_CONSOLE",
                "-DALLOW_FIRST_STAGE_CONSOLE=1",

                "-UALLOW_LOCAL_PROP_OVERRIDE",
                "-DALLOW_LOCAL_PROP_OVERRIDE=1",

                "-UALLOW_PERMISSIVE_SELINUX",
                "-DALLOW_PERMISSIVE_SELINUX=1",

                "-UREBOOT_BOOTLOADER_ON_PANIC",
                "-DREBOOT_BOOTLOADER_ON_PANIC=1",

                "-UWORLD_WRITABLE_KMSG",
                "-DWORLD_WRITABLE_KMSG=1",

                "-UDUMP_ON_UMOUNT_FAILURE",
                "-DDUMP_ON_UMOUNT_FAILURE=1",
            ],
        },

        eng: {
            cflags: [
                "-USHUTDOWN_ZERO_TIMEOUT",
                "-DSHUTDOWN_ZERO_TIMEOUT=1",
            ],
        },
    },

    sanitize: {
        misc_undefined: ["signed-integer-overflow"],
        hwaddress: false,
    },
}

// Tests
// ------------------------------------------------------------------------------

cc_test {
    name: "CtsInitTestCases",
    defaults: ["init_defaults"],
    require_root: true,

    compile_multilib: "both",
    multilib: {
        lib32: {
            suffix: "32",
        },
        lib64: {
            suffix: "64",
        },
    },

    srcs: [
        "devices_test.cpp",
        "epoll_test.cpp",
        "firmware_handler_test.cpp",
        "init_test.cpp",
        "keychords_test.cpp",
        "oneshot_on_test.cpp",
        "persistent_properties_test.cpp",
        "property_service_test.cpp",
        "property_type_test.cpp",
        "reboot_test.cpp",
        "rlimit_parser_test.cpp",
        "service_test.cpp",
        "subcontext_test.cpp",
        "tokenizer_test.cpp",
        "ueventd_parser_test.cpp",
        "ueventd_test.cpp",
        "util_test.cpp",
    ],
    static_libs: ["libinit"],

    test_suites: [
        "cts",
        "device-tests",
    ],
}

cc_benchmark {
    name: "init_benchmarks",
    defaults: ["init_defaults"],
    srcs: [
        "subcontext_benchmark.cpp",
    ],
    static_libs: ["libinit"],
}

cc_defaults {
    name: "libinit_test_utils_libraries_defaults",
    shared_libs: [
        "libbase",
        "libcutils",
        "libselinux",
        "libhidl-gen-utils",
        "liblog",
        "libprocessgroup",
        "libprotobuf-cpp-lite",
    ],
}

cc_library_static {
    name: "libinit_test_utils",
    defaults: ["libinit_test_utils_libraries_defaults"],
    cflags: [
        "-Wall",
        "-Wextra",
        "-Wno-unused-parameter",
        "-Werror",
    ],
    srcs: init_common_sources + [
        "test_utils/service_utils.cpp",
    ],
    whole_static_libs: [
        "libcap",
    ],
    export_include_dirs: ["test_utils/include"], // for tests
}

// Host Verifier
// ------------------------------------------------------------------------------

genrule {
    name: "generated_stub_builtin_function_map",
    tool_files: ["host_builtin_map.py"],
    out: ["generated_stub_builtin_function_map.h"],
    srcs: [
        "builtins.cpp",
        "check_builtins.cpp",
    ],
    cmd: "$(location host_builtin_map.py) --builtins $(location builtins.cpp) --check_builtins $(location check_builtins.cpp) > $(out)",
}

cc_binary {
    name: "host_init_verifier",
    host_supported: true,
    cflags: [
        "-Wall",
        "-Wextra",
        "-Wno-unused-parameter",
        "-Werror",
    ],
    static_libs: [
        "libbase",
        "libselinux",
        "libpropertyinfoserializer",
        "libpropertyinfoparser",
    ],
    whole_static_libs: ["libcap"],
    shared_libs: [
        "libcutils",
        "libhidl-gen-utils",
        "libhidlmetadata",
        "liblog",
        "libprocessgroup",
        "libprotobuf-cpp-lite",
    ],
    srcs: init_common_sources + init_host_sources,
    proto: {
        type: "lite",
    },
    generated_headers: [
        "generated_stub_builtin_function_map",
        "generated_android_ids",
    ],
    target: {
        android: {
            enabled: false,
        },
        darwin: {
            enabled: false,
        },
    },
}
