// // 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: [ "custom_action_config", "custom_action_servers", "grub_config", "launch_configs", ], } // Start of generated qemu_aarch64_linux_gnu_binary // Generated by gen_android_bp.py qemu_aarch64_linux_gnu_binary = [ "aarch64_linux_gnu_libc++.so.1_binary_for_qemu", "aarch64_linux_gnu_libc++abi.so.1_binary_for_qemu", "aarch64_linux_gnu_libepoxy.so.0_binary_for_qemu", "aarch64_linux_gnu_libgbm.so.1_binary_for_qemu", "aarch64_linux_gnu_libgfxstream_backend.so.0_binary_for_qemu", "aarch64_linux_gnu_librutabaga_gfx_ffi.so.0_binary_for_qemu", "aarch64_linux_gnu_libunwind.so.1_binary_for_qemu", "aarch64_linux_gnu_libvirglrenderer.so.1_binary_for_qemu", "aarch64_linux_gnu_libz.so.1_binary_for_qemu", "aarch64_linux_gnu_qemu-system-aarch64_binary_for_qemu", "aarch64_linux_gnu_qemu-system-riscv64_binary_for_qemu", "aarch64_linux_gnu_qemu-system-x86_64_binary_for_qemu", ] // End of generated qemu_aarch64_linux_gnu_binary // Start of generated qemu_aarch64_linux_gnu_resource // Generated by gen_android_bp.py qemu_aarch64_linux_gnu_resource = [ "aarch64_efi-virtio.rom_resource_for_qemu", "aarch64_en-us_resource_for_qemu", "aarch64_opensbi-riscv64-generic-fw_dynamic.bin_resource_for_qemu", ] // End of generated qemu_aarch64_linux_gnu_resource // 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 = [ "acloud_translator", "adb", "adb_connector", "allocd_client", "assemble_cvd", "automotive_vsock_proxy", "avbtool", "build_super_image", "casimir", "casimir_control_server", "common_crosvm", "config_server", "console_forwarder", "control_env_proxy_server", "crosvm", "cvd_host_bugreport", "cvd_import_locations", "cvd_internal_display", "cvd_internal_env", "cvd_internal_host_bugreport", "cvd_internal_start", "cvd_internal_status", "cvd_internal_stop", "cvd_send_id_disclosure", "cvd_send_sms", "cvd_status", "cvd_update_location", "cvd_update_security_algorithm", "cvdremote", "e2fsdroid", "echo_server", "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", "mcopy", "metrics", "metrics_launcher", "mkbootfs", "mkbootimg", "mke2fs", "mkenvimage_slim", "mkuserimg_mke2fs", "mmd", "modem_simulator", "ms-tpm-20-ref", "mtools", "netsim", "netsimd", "newfs_msdos", "openwrt_control_server", "operator_proxy", "pica", "powerbtn_cvd", "powerwash_cvd", "process_restarter", "process_sandboxer", "record_cvd", "restart_cvd", "root-canal", "run_cvd", "sandboxer_proxy", "screen_recording_server", "secure_env", "sefcontext_compile", "simg2img", "snapshot_util_cvd", "socket_vsock_proxy", "stop_cvd", "tcp_connector", "test_cvd_load_parser", "tombstone_receiver", "toybox", "unpack_bootimg", "vhal_proxy_server", "vhost_device_vsock", "vulkan.pastel", "webRTC", "webrtc_operator", "wmediumd", "wmediumd_gen_config", ] cvd_openwrt_images = [ "openwrt_kernel_aarch64", "openwrt_kernel_x86_64", "openwrt_rootfs_aarch64", "openwrt_rootfs_x86_64", ] cvd_host_tests = [ "cuttlefish_net_tests", "modem_simulator_test", ] cvd_host_webrtc_assets = [ "webrtc_adb.js", "webrtc_app.js", "webrtc_cf.js", "webrtc_client.html", "webrtc_controls.css", "webrtc_controls.js", "webrtc_index.css", "webrtc_index.html", "webrtc_index.js", "webrtc_location.js", "webrtc_mouse.js", "webrtc_rootcanal.js", "webrtc_server.crt", "webrtc_server.key", "webrtc_server.p12", "webrtc_server_connector.js", "webrtc_style.css", "webrtc_touch.js", "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_aarch64_swiftshader = [ "aarch64_linux_gnu_libvk_swiftshader.so", "aarch64_linux_gnu_vk_swiftshader_icd.json", ] 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 + qemu_aarch64_linux_gnu_binary + cvd_host_aarch64_swiftshader 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_aarch64", "bootloader_crosvm_x86_64", "bootloader_qemu_aarch64", "bootloader_qemu_arm", "bootloader_qemu_riscv64", "bootloader_qemu_x86_64", ] prebuilt_etc_host { name: "cvd_avb_testkey_rsa2048", filename: "cvd_avb_testkey_rsa2048.pem", src: ":avb_testkey_rsa2048", } prebuilt_etc_host { name: "cvd_avb_testkey_rsa4096", filename: "cvd_avb_testkey_rsa4096.pem", src: ":avb_testkey_rsa4096", } automotive_proxy_config = [ "automotive_proxy_config", ] automotive_vhal_prop_configs = [ "Host_Prebuilt_VehicleHalDefaultProperties_JSON", "Host_Prebuilt_VehicleHalTestProperties_JSON", "Host_Prebuilt_VehicleHalVendorClusterTestProperties_JSON", ] cvd_host_avb_testkey = [ "cvd_avb_pubkey_rsa2048", "cvd_avb_pubkey_rsa4096", "cvd_avb_testkey_rsa2048", "cvd_avb_testkey_rsa4096", ] cvd_host_netsim_gui_assets = [ "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", "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_tslib", ] 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: // // /lib64/vulkan.pastel // /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 + automotive_vhal_prop_configs, }, }, 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 + qemu_aarch64_linux_gnu_resource, }, }, }, }, target: { linux_musl: { multilib: { common: { deps: ["tzdata_host"], }, }, }, linux_bionic_x86_64: { enabled: false, }, darwin: { enabled: false, }, }, }