blob: edc520056e1a5858a0c047c9d8902db146eb4f7f [file] [log] [blame]
//
// 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",
],
}
cvd_host_tools = [
"android.hardware.automotive.vehicle@2.0-virtualization-grpc-server",
"adb",
"adb_connector",
"allocd",
"allocd_client",
"assemble_cvd",
"avbtool",
"build_super_image",
"tcp_connector",
"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",
"mkbootfs",
"mkbootimg",
"mkenvimage_slim",
"mke2fs",
"mkuserimg_mke2fs",
"modem_simulator",
"ms-tpm-20-ref",
"mcopy",
"mmd",
"mtools",
"netsim",
"netsimd",
"newfs_msdos",
"openwrt_control_server",
"pica",
"powerwash_cvd",
"process_restarter",
"record_cvd",
"restart_cvd",
"root-canal",
"snapshot_util_cvd",
"run_cvd",
"secure_env",
"sefcontext_compile",
"cvd_send_sms",
"cvd_update_location",
"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",
]
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_server.crt",
"webrtc_server.key",
"webrtc_server.p12",
"webrtc_style.css",
"webrtc_index.css",
"webrtc_controls.css",
"webrtc_trusted.pem",
"webrtc_sensors.js",
]
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 = [
"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",
]
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",
"block_device_vvu.policy_x86_64",
"coiommu_device.policy_x86_64",
"cras_audio_device.policy_x86_64",
"fs_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",
"net_device_vhost_user.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",
"serial_device_vvu.policy_x86_64",
"snd_cras_device.policy_x86_64",
"snd_null_device.policy_x86_64",
"swap_monitor.policy_x86_64",
"tpm_device.policy_x86_64",
"vfio_device.policy_x86_64",
"vhost_net_device.policy_x86_64",
"vhost_vsock_device.policy_x86_64",
"vhost_vsock_device_vhost_user.policy_x86_64",
"vhost_vsock_device_vvu.policy_x86_64",
"video_device.policy_x86_64",
"vios_audio_device.policy_x86_64",
"vtpm_proxy_device.policy_x86_64",
"vvu_proxy_device.policy_x86_64",
"wl_device.policy_x86_64",
"xhci_device.policy_x86_64",
]
cvd_host_aarch64 = [
"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_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",
"tpm_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",
}
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,
},
},
arch: {
x86_64: {
multilib: {
common: {
deps: cvd_host_seccomp_policy_x86_64,
},
},
},
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,
},
},
}