//
// Copyright (C) 2020 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: ["Android-Apache-2.0"],
}

bootstrap_go_package {
    name: "cuttlefish-soong-rules",
    pkgPath: "android/soong/cuttlefish",
    deps: [
        "blueprint",
        "soong",
        "soong-android",
    ],
    srcs: [
        "cvd-host-package.go",
    ],
    pluginFor: ["soong_build"],
}

// Allow cvd-host-package.go to read custom action config variables
// from ctx.Config().VendorConfig("cvd")
soong_config_module_type {
    name: "cvd_host_package_customization",
    module_type: "cvd_host_package",
    config_namespace: "cvd",
    value_variables: [
        "grub_config",
        "launch_configs",
        "custom_action_config",
        "custom_action_servers",
    ],
}

// Start of generated qemu_x86_64_linux_gnu_binary
// Generated by gen_android_bp.py
qemu_x86_64_linux_gnu_binary = [
    "x86_64_linux_gnu_libc++.so.1_binary_for_qemu",
    "x86_64_linux_gnu_libepoxy.so.0_binary_for_qemu",
    "x86_64_linux_gnu_libgbm.so.1_binary_for_qemu",
    "x86_64_linux_gnu_libgfxstream_backend.so.0_binary_for_qemu",
    "x86_64_linux_gnu_librutabaga_gfx_ffi.so.0_binary_for_qemu",
    "x86_64_linux_gnu_libvirglrenderer.so.1_binary_for_qemu",
    "x86_64_linux_gnu_libz.so.1_binary_for_qemu",
    "x86_64_linux_gnu_qemu-system-aarch64_binary_for_qemu",
    "x86_64_linux_gnu_qemu-system-riscv64_binary_for_qemu",
    "x86_64_linux_gnu_qemu-system-x86_64_binary_for_qemu",
]
// End of generated qemu_x86_64_linux_gnu_binary

// Start of generated qemu_x86_64_linux_gnu_resource
// Generated by gen_android_bp.py
qemu_x86_64_linux_gnu_resource = [
    "x86_64_efi-virtio.rom_resource_for_qemu",
    "x86_64_en-us_resource_for_qemu",
    "x86_64_opensbi-riscv64-generic-fw_dynamic.bin_resource_for_qemu",
]
// End of generated qemu_x86_64_linux_gnu_resource

cvd_host_tools = [
    "adb",
    "adb_connector",
    "allocd_client",
    "assemble_cvd",
    "avbtool",
    "build_super_image",
    "tcp_connector",
    "casimir_control_server",
    "common_crosvm",
    "config_server",
    "console_forwarder",
    "control_env_proxy_server",
    "crosvm",
    "cvd",
    "cvd_internal_display",
    "cvd_internal_env",
    "echo_server",
    "cvd_internal_host_bugreport",
    "cvd_internal_start",
    "cvd_internal_status",
    "cvd_internal_stop",
    "cvd_host_bugreport",
    "cvd_status",
    "cvd_test_gce_driver",
    "cvdremote",
    "e2fsdroid",
    "extract-ikconfig",
    "extract-vmlinux",
    "fastboot",
    "fec",
    "fsck.f2fs",
    "gnss_grpc_proxy",
    "health",
    "kernel_log_monitor",
    "launch_cvd",
    "libgrpc++",
    "libgrpc++_unsecure",
    "log_tee",
    "logcat_receiver",
    "lpadd",
    "lpmake",
    "lpunpack",
    "lz4",
    "make_f2fs",
    "metrics",
    "metrics_launcher",
    "mkbootfs",
    "mkbootimg",
    "mkenvimage_slim",
    "mke2fs",
    "mkuserimg_mke2fs",
    "modem_simulator",
    "ms-tpm-20-ref",
    "mcopy",
    "mmd",
    "mtools",
    "netsim",
    "netsimd",
    "newfs_msdos",
    "openwrt_control_server",
    "pica",
    "powerbtn_cvd",
    "powerwash_cvd",
    "process_restarter",
    "process_sandboxer",
    "record_cvd",
    "restart_cvd",
    "root-canal",
    "casimir",
    "snapshot_util_cvd",
    "run_cvd",
    "screen_recording_server",
    "secure_env",
    "sefcontext_compile",
    "cvd_send_id_disclosure",
    "cvd_send_sms",
    "cvd_update_location",
    "cvd_update_security_algorithm",
    "cvd_import_locations",
    "simg2img",
    "socket_vsock_proxy",
    "stop_cvd",
    "test_cvd_load_parser",
    "tombstone_receiver",
    "toybox",
    "unpack_bootimg",
    "webRTC",
    "webrtc_operator",
    "operator_proxy",
    "wmediumd",
    "wmediumd_gen_config",
    "vulkan.pastel",
    "automotive_vsock_proxy",
    "vhost_device_vsock",
]

cvd_openwrt_images = [
    "openwrt_kernel_x86_64",
    "openwrt_rootfs_x86_64",
    "openwrt_kernel_aarch64",
    "openwrt_rootfs_aarch64",
]

cvd_host_tests = [
    "cuttlefish_net_tests",
    "modem_simulator_test",
]

cvd_host_webrtc_assets = [
    "webrtc_adb.js",
    "webrtc_app.js",
    "webrtc_index.js",
    "webrtc_controls.js",
    "webrtc_cf.js",
    "webrtc_server_connector.js",
    "webrtc_index.html",
    "webrtc_client.html",
    "webrtc_rootcanal.js",
    "webrtc_location.js",
    "webrtc_touch.js",
    "webrtc_server.crt",
    "webrtc_server.key",
    "webrtc_server.p12",
    "webrtc_style.css",
    "webrtc_index.css",
    "webrtc_controls.css",
    "webrtc_trusted.pem",
]

cvd_host_model_simulator_files = [
    "iccprofile_for_sim0.xml_host",
    "iccprofile_for_sim0_for_CtsCarrierApiTestCases.xml_host",
    "numeric_operator.xml_host",
]

cvd_host_acloud_data = [
    "default.config_host",
]

cvd_host_x86_64_crosvm = [
    // Note: These should be uncommented out when backporting to older branches
    // which only use the prebuilt and which do not build crosvm from source.
    //"x86_64_linux_gnu_crosvm",
    //"x86_64_linux_gnu_libdrm.so.2_for_crosvm",
    //"x86_64_linux_gnu_libepoxy.so.0_for_crosvm",
    //"x86_64_linux_gnu_libffi.so.7_for_crosvm",
    //"x86_64_linux_gnu_libgbm.so.1_for_crosvm",
    //"x86_64_linux_gnu_libgfxstream_backend.so_for_crosvm",
    //"x86_64_linux_gnu_libminijail.so_for_crosvm",
    //"x86_64_linux_gnu_libvirglrenderer.so.1_for_crosvm",
    //"x86_64_linux_gnu_libwayland_client.so.0_for_crosvm",
]

// Note: these are prebuilts due to potential incompatibilities between Android
// built host binaries and native host GPU libraries drivers.
cvd_host_x86_64_graphics_detector = [
    "x86_64_linux_gnu_gfxstream_graphics_detector_for_crosvm",
]

cvd_host_aarch64_graphics_detector = [
    "aarch64_linux_gnu_gfxstream_graphics_detector_for_crosvm",
]

cvd_host_x86_64 = cvd_host_x86_64_graphics_detector + cvd_host_x86_64_crosvm + qemu_x86_64_linux_gnu_binary

cvd_host_aarch64_crosvm = [
    "aarch64_linux_gnu_crosvm",
    "aarch64_linux_gnu_libdrm.so.2_for_crosvm",
    "aarch64_linux_gnu_libepoxy.so.0_for_crosvm",
    "aarch64_linux_gnu_libffi.so.7_for_crosvm",
    "aarch64_linux_gnu_libgbm.so.1_for_crosvm",
    "aarch64_linux_gnu_libgfxstream_backend.so_for_crosvm",
    "aarch64_linux_gnu_libminijail.so_for_crosvm",
    "aarch64_linux_gnu_libvirglrenderer.so.1_for_crosvm",
    "aarch64_linux_gnu_libwayland_client.so.0_for_crosvm",
]

cvd_host_aarch64 = cvd_host_aarch64_crosvm + cvd_host_aarch64_graphics_detector

cvd_host_seccomp_policy_x86_64 = [
    "9p_device.policy_x86_64",
    "balloon_device.policy_x86_64",
    "battery.policy_x86_64",
    "block_device.policy_x86_64",
    "block_device_vhost_user.policy_x86_64",
    "coiommu_device.policy_x86_64",
    "cras_audio_device.policy_x86_64",
    "fs_device.policy_x86_64",
    "fw_cfg_device.policy_x86_64",
    "gpu_device.policy_x86_64",
    "gpu_render_server.policy_x86_64",
    "input_device.policy_x86_64",
    "iommu_device.policy_x86_64",
    "jail_warden.policy_x86_64",
    "net_device.policy_x86_64",
    "null_audio_device.policy_x86_64",
    "pmem_device.policy_x86_64",
    "rng_device.policy_x86_64",
    "serial_device.policy_x86_64",
    "serial_device_vhost_user.policy_x86_64",
    "snd_cras_device.policy_x86_64",
    "snd_null_device.policy_x86_64",
    "vfio_device.policy_x86_64",
    "vhost_net_device.policy_x86_64",
    "vhost_vsock_device.policy_x86_64",
    "video_device.policy_x86_64",
    "vios_audio_device.policy_x86_64",
    "vtpm_proxy_device.policy_x86_64",
    "wl_device.policy_x86_64",
    "xhci_device.policy_x86_64",
]

cvd_host_seccomp_policy_aarch64 = [
    "9p_device.policy_aarch64",
    "balloon_device.policy_aarch64",
    "battery.policy_aarch64",
    "block_device.policy_aarch64",
    "coiommu_device.policy_aarch64",
    "cras_audio_device.policy_aarch64",
    "fs_device.policy_aarch64",
    "gpu_device.policy_aarch64",
    "gpu_render_server.policy_aarch64",
    "input_device.policy_aarch64",
    "net_device.policy_aarch64",
    "null_audio_device.policy_aarch64",
    "pmem_device.policy_aarch64",
    "rng_device.policy_aarch64",
    "serial_device.policy_aarch64",
    "snd_cras_device.policy_aarch64",
    "snd_null_device.policy_aarch64",
    "vhost_net_device.policy_aarch64",
    "vhost_scmi_device.policy_aarch64",
    "vhost_vsock_device.policy_aarch64",
    "video_device.policy_aarch64",
    "vios_audio_device.policy_aarch64",
    "wl_device.policy_aarch64",
    "xhci_device.policy_aarch64",
]

cvd_host_bootloader = [
    "bootloader_crosvm_x86_64",
    "bootloader_crosvm_aarch64",
    "bootloader_qemu_aarch64",
    "bootloader_qemu_arm",
    "bootloader_qemu_riscv64",
    "bootloader_qemu_x86_64",
]

prebuilt_etc_host {
    name: "cvd_avb_testkey",
    filename: "cvd_avb_testkey.pem",
    src: ":avb_testkey_rsa4096",
}

automotive_proxy_config = [
    "automotive_proxy_config",
]

cvd_host_avb_testkey = [
    "cvd_avb_pubkey",
    "cvd_avb_testkey",
]

cvd_host_netsim_gui_assets = [
    "netsim_ui_index.html",
    "netsim_ui_js_cube-sprite.js",
    "netsim_ui_js_customize-map-button.js",
    "netsim_ui_js_device-dragzone.js",
    "netsim_ui_js_device-dropzone.js",
    "netsim_ui_js_device-info.js",
    "netsim_ui_js_device-list.js",
    "netsim_ui_js_device-map.js",
    "netsim_ui_js_device-observer.js",
    "netsim_ui_js_license-info.js",
    "netsim_ui_js_navigation-bar.js",
    "netsim_ui_js_netsim-app.js",
    "netsim_ui_js_packet-info.js",
    "netsim_ui_js_pyramid-sprite.js",
    "netsim_ui_js_model.js",
    "netsim_ui_tslib",
    "netsim_ui_assets_grid-background.svg",
    "netsim_ui_assets_hexagonal-background.png",
    "netsim_ui_assets_netsim-logo-b.svg",
    "netsim_ui_assets_netsim-logo.svg",
    "netsim_ui_assets_polar-background.svg",
]

genrule {
    name: "vk_swiftshader_icd.json",
    srcs: [
        "//external/swiftshader:swiftshader_icd_json_template",
    ],
    out: [
        "vk_swiftshader_icd.json",
    ],
    // From Vulkan Loader documentation:
    //
    //   If "library_path" specifies a relative pathname, it is relative
    //   to the path of the JSON manifest file.
    //
    // Our host package looks like:
    //
    //   <host package>/lib64/vulkan.pastel
    //   <host package>/usr/share/vulkan/icd.d/vk_swiftshader_icd.json
    //
    // so need "../../../../lib64/vulkan.pastel".
    cmd: "sed -e 's|$${ICD_LIBRARY_PATH}|../../../../lib64/vulkan.pastel.so|g' $(in) > $(out)",
}

prebuilt_usr_share_host {
    name: "vk_swiftshader_icd_json_prebuilt",
    filename: "vk_swiftshader_icd.json",
    relative_install_path: "vulkan/icd.d",
    src: ":vk_swiftshader_icd.json",
}

cvd_host_swiftshader_files = [
    "vk_swiftshader_icd_json_prebuilt",
]

cvd_host_package_customization {
    name: "cvd-host_package",
    deps: cvd_host_tools +
        cvd_host_tests,
    multilib: {
        common: {
            deps: cvd_host_webrtc_assets +
                cvd_host_avb_testkey +
                cvd_host_model_simulator_files +
                cvd_host_acloud_data +
                cvd_host_bootloader +
                cvd_host_swiftshader_files +
                cvd_openwrt_images +
                cvd_host_netsim_gui_assets +
                automotive_proxy_config,
        },
    },

    arch: {
        x86_64: {
            deps: cvd_host_x86_64,
            multilib: {
                common: {
                    deps: cvd_host_seccomp_policy_x86_64 + qemu_x86_64_linux_gnu_resource,
                },
            },
        },
        arm64: {
            deps: cvd_host_aarch64,
            multilib: {
                common: {
                    deps: cvd_host_seccomp_policy_aarch64,
                },
            },
        },
    },
    target: {
        linux_musl: {
            multilib: {
                common: {
                    deps: ["tzdata_host"],
                },
            },
        },
        linux_bionic_x86_64: {
            enabled: false,
        },
        darwin: {
            enabled: false,
        },
    },
}
