blob: ddedb0a85f4a1aefb39c76c0b9fde4fe5edf88b7 [file] [log] [blame]
//
// Copyright (C) 2022-2024 The LeafOS 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.
//
bootstrap_go_package {
name: "soong-leaf-generator",
pkgPath: "leaf/soong/generator",
deps: [
"blueprint",
"blueprint-pathtools",
"soong",
"soong-android",
"soong-shared",
],
srcs: [
"generator/generator.go",
"generator/variables.go",
],
pluginFor: ["soong_build"],
}
leaf_generator {
name: "generated_kernel_includes",
// The headers make command
cmd: "$(PATH_OVERRIDE_SOONG) $(KERNEL_MAKE_CMD) $(KERNEL_MAKE_FLAGS) -C $(TARGET_KERNEL_SOURCE) O=$(KERNEL_BUILD_OUT_PREFIX)$(genDir) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) headers_install && vendor/leaf/tools/clean_headers.sh $(KERNEL_BUILD_OUT_PREFIX)$(genDir)",
// Directories that can be imported by a cc_* module generated_headers property
export_include_dirs: [
"usr/audio/include/uapi",
"usr/include",
"usr/include/audio",
"usr/include/audio/include/uapi",
"usr/techpack/audio/include",
],
// Sources for dependency tracking
dep_root: "$(TARGET_KERNEL_SOURCE)",
dep_files: [
"Makefile",
"include/**/*",
"arch/$(KERNEL_ARCH)/include/**/*",
"techpack/audio/include/**/*",
],
}
genrule_defaults {
name: "7z_genrule_defaults",
tools: ["7z"],
cmd: "$(location 7z) e -so $$(echo $(in) | cut -f1 -d ' ') > $(out)",
}
cc_library_headers {
name: "generated_kernel_headers",
generated_headers: ["generated_kernel_includes"],
export_generated_headers: ["generated_kernel_includes"],
vendor_available: true,
recovery_available: true,
}
soong_config_module_type {
name: "aapt_version_code",
module_type: "java_defaults",
config_namespace: "leafGlobalVars",
value_variables: ["aapt_version_code"],
properties: ["aaptflags"],
}
aapt_version_code {
name: "aapt_version_code_defaults",
soong_config_variables: {
aapt_version_code: {
aaptflags: [
"--version-code",
"%s",
],
},
},
}
soong_config_module_type {
name: "vendor_init",
module_type: "cc_defaults",
config_namespace: "leafGlobalVars",
value_variables: ["target_init_vendor_lib"],
properties: ["whole_static_libs"],
}
vendor_init {
name: "vendor_init_defaults",
soong_config_variables: {
target_init_vendor_lib: {
whole_static_libs: ["%s"],
},
},
}
soong_config_module_type {
name: "health_charging_control",
module_type: "cc_defaults",
config_namespace: "leafGlobalVars",
bool_variables: [
"target_health_charging_control_supports_toggle",
"target_health_charging_control_supports_bypass",
"target_health_charging_control_supports_deadline",
],
value_variables: [
"target_health_charging_control_charging_path",
"target_health_charging_control_charging_enabled",
"target_health_charging_control_charging_disabled",
"target_health_charging_control_deadline_path",
],
properties: ["cppflags"],
}
health_charging_control {
name: "health_charging_control_defaults",
soong_config_variables: {
target_health_charging_control_supports_toggle: {
cppflags: ["-DHEALTH_CHARGING_CONTROL_SUPPORTS_TOGGLE"],
},
target_health_charging_control_supports_bypass: {
cppflags: ["-DHEALTH_CHARGING_CONTROL_SUPPORTS_BYPASS"],
},
target_health_charging_control_supports_deadline: {
cppflags: ["-DHEALTH_CHARGING_CONTROL_SUPPORTS_DEADLINE"],
},
target_health_charging_control_charging_path: {
cppflags: ["-DHEALTH_CHARGING_CONTROL_CHARGING_PATH=\"%s\""],
},
target_health_charging_control_charging_enabled: {
cppflags: ["-DHEALTH_CHARGING_CONTROL_CHARGING_ENABLED=\"%s\""],
},
target_health_charging_control_charging_disabled: {
cppflags: ["-DHEALTH_CHARGING_CONTROL_CHARGING_DISABLED=\"%s\""],
},
target_health_charging_control_deadline_path: {
cppflags: ["-DHEALTH_CHARGING_CONTROL_DEADLINE_PATH=\"%s\""],
},
},
}
soong_config_module_type {
name: "bootloader_message_offset",
module_type: "cc_defaults",
config_namespace: "leafGlobalVars",
value_variables: ["bootloader_message_offset"],
properties: [
"cflags",
"export_cflags",
],
}
bootloader_message_offset {
name: "bootloader_message_offset_defaults",
soong_config_variables: {
bootloader_message_offset: {
cflags: ["-DBOARD_RECOVERY_BLDRMSG_OFFSET=%s"],
export_cflags: ["-DBOARD_RECOVERY_BLDRMSG_OFFSET=%s"],
},
},
}
// QCOM specific config modules
soong_config_module_type {
name: "librmnetctl_pre_uplink",
module_type: "cc_defaults",
config_namespace: "leafQcomVars",
bool_variables: ["uses_pre_uplink_features_netmgrd"],
properties: ["cflags"],
}
librmnetctl_pre_uplink {
name: "librmnetctl_pre_uplink_defaults",
soong_config_variables: {
uses_pre_uplink_features_netmgrd: {
cflags: ["-DNO_UPLINK_FEATURES"],
},
},
}
soong_config_module_type {
name: "extended_compress_format",
module_type: "cc_defaults",
config_namespace: "leafQcomVars",
bool_variables: ["supports_extended_compress_format"],
properties: ["cflags"],
}
extended_compress_format {
name: "extended_compress_format_defaults",
soong_config_variables: {
supports_extended_compress_format: {
cflags: ["-DENABLE_EXTENDED_COMPRESS_FORMAT"],
},
},
}
soong_config_module_type {
name: "surfaceflinger_qcom_extensions",
module_type: "cc_defaults",
config_namespace: "leafQcomVars",
value_variables: ["qcom_display_headers_namespace"],
properties: [
"cppflags",
"header_libs",
],
}
surfaceflinger_qcom_extensions {
name: "surfaceflinger_qcom_ext_defaults",
soong_config_variables: {
qcom_display_headers_namespace: {
cppflags: ["-DQCOM_UM_FAMILY"],
header_libs: ["//%s:display_intf_headers"],
},
},
}
soong_config_module_type {
name: "gralloc_handle_custom_content_md_reserved_size",
module_type: "cc_defaults",
config_namespace: "leafQcomVars",
bool_variables: ["gralloc_handle_has_custom_content_md_reserved_size"],
properties: ["export_cflags"],
}
gralloc_handle_custom_content_md_reserved_size {
name: "gralloc_handle_has_custom_content_md_reserved_size_defaults",
soong_config_variables: {
gralloc_handle_has_custom_content_md_reserved_size: {
export_cflags: ["-DGRALLOC_HANDLE_HAS_CUSTOM_CONTENT_MD_RESERVED_SIZE"],
},
},
}
soong_config_module_type {
name: "gralloc_handle_reserved_size",
module_type: "cc_defaults",
config_namespace: "leafQcomVars",
bool_variables: ["gralloc_handle_has_reserved_size"],
properties: ["export_cflags"],
}
gralloc_handle_reserved_size {
name: "gralloc_handle_has_reserved_size_defaults",
soong_config_variables: {
gralloc_handle_has_reserved_size: {
export_cflags: ["-DGRALLOC_HANDLE_HAS_RESERVED_SIZE"],
},
},
}
soong_config_module_type {
name: "gralloc_handle_ubwcp_format",
module_type: "cc_defaults",
config_namespace: "leafQcomVars",
bool_variables: ["gralloc_handle_has_ubwcp_format"],
properties: ["export_cflags"],
}
gralloc_handle_ubwcp_format {
name: "gralloc_handle_has_ubwcp_format_defaults",
soong_config_variables: {
gralloc_handle_has_ubwcp_format: {
export_cflags: ["-DGRALLOC_HANDLE_HAS_UBWCP_FORMAT"],
},
},
}
soong_config_module_type {
name: "qti_vibrator_hal",
module_type: "cc_defaults",
config_namespace: "leafQcomVars",
bool_variables: ["qti_vibrator_use_effect_stream"],
value_variables: ["qti_vibrator_effect_lib"],
properties: [
"cppflags",
"shared_libs",
],
}
qti_vibrator_hal {
name: "qti_vibrator_hal_defaults",
soong_config_variables: {
qti_vibrator_use_effect_stream: {
cppflags: ["-DUSE_EFFECT_STREAM"],
},
qti_vibrator_effect_lib: {
shared_libs: ["%s"],
},
},
}
soong_config_module_type {
name: "sdmcore_has_is_display_hw_available",
module_type: "cc_defaults",
config_namespace: "leafQcomVars",
bool_variables: ["sdmcore_has_is_display_hw_available_func"],
properties: ["cflags"],
}
sdmcore_has_is_display_hw_available {
name: "sdmcore_has_is_display_hw_available_func_defaults",
soong_config_variables: {
sdmcore_has_is_display_hw_available_func: {
cflags: ["-DSDMCORE_HAS_IS_DISPLAY_HW_AVAILABLE_FUNC"],
},
},
}
soong_config_module_type {
name: "power_libperfmgr",
module_type: "cc_defaults",
config_namespace: "leafGlobalVars",
value_variables: ["target_power_libperfmgr_mode_extension_lib"],
properties: [
"whole_static_libs",
],
}
power_libperfmgr {
name: "power_libperfmgr_defaults",
soong_config_variables: {
target_power_libperfmgr_mode_extension_lib: {
whole_static_libs: ["%s"],
},
},
}
soong_config_module_type {
name: "surfaceflinger_udfps_lib",
module_type: "cc_defaults",
config_namespace: "leafGlobalVars",
value_variables: ["target_surfaceflinger_udfps_lib"],
properties: [
"cppflags",
"whole_static_libs",
],
}
surfaceflinger_udfps_lib {
name: "surfaceflinger_udfps_lib_defaults",
soong_config_variables: {
target_surfaceflinger_udfps_lib: {
cppflags: ["-DTARGET_PROVIDES_UDFPS_LIB"],
whole_static_libs: ["%s"],
},
},
}
soong_config_module_type {
name: "trust_usb_control",
module_type: "cc_defaults",
config_namespace: "leafGlobalVars",
value_variables: [
"target_trust_usb_control_path",
"target_trust_usb_control_enable",
"target_trust_usb_control_disable",
],
properties: ["cppflags"],
}
trust_usb_control {
name: "trust_usb_control_defaults",
soong_config_variables: {
target_trust_usb_control_path: {
cppflags: ["-DUSB_CONTROL_PATH=\"%s\""],
},
target_trust_usb_control_enable: {
cppflags: ["-DUSB_CONTROL_ENABLE=\"%s\""],
},
target_trust_usb_control_disable: {
cppflags: ["-DUSB_CONTROL_DISABLE=\"%s\""],
},
},
}