This expects a few build variables to be set: * TARGET_KERNEL_PLATFORM_TARGET: The base target name. For example, 'tegra' will indicate that the dist target is tegra_dist, abi is tegra_abi, etc. * TARGET_KERNEL_VERSION: Used to determine the kernel checkout path. For example, a value of 6.6 will expect the kernel platform repo to be checked out to $BUILD_TOP/../kernel-6.6. * TARGET_KERNEL_SOURCE: Relative to the top of the kernel platform checkout, the path to the kernel build rules. For example, vendor/nvidia/tegra. * BOARD_KERNEL_IMAGE_NAME: The kernel image to use. For example, Image. Using the examples above, this will run bazel in the kernel-6.6 directory on the target //vendor/nvidia/tegra:tegra_dist, then source the output from $OUT/tegra/dist, with the prebuilt kernel image being Image. Change-Id: If96e96dffa2c0bfd9bd824bb3d8064eb861c9d00
116 lines
3.6 KiB
Plaintext
116 lines
3.6 KiB
Plaintext
// LineageOS soong configs
|
|
|
|
bootstrap_go_package {
|
|
name: "soong-lineage-generator",
|
|
pkgPath: "lineage/soong/generator",
|
|
deps: [
|
|
"blueprint",
|
|
"blueprint-pathtools",
|
|
"soong",
|
|
"soong-android",
|
|
"soong-shared",
|
|
],
|
|
srcs: [
|
|
"generator/generator.go",
|
|
"generator/variables.go",
|
|
],
|
|
pluginFor: ["soong_build"],
|
|
}
|
|
|
|
lineage_generator {
|
|
name: "generated_kernel_includes",
|
|
|
|
// The headers make command
|
|
cmd: "if [ -n \"$(TARGET_KERNEL_PLATFORM_TARGET)\" ]; then " +
|
|
" pushd $(KERNEL_PATH); " +
|
|
" ./tools/bazel --output_user_root=$(KERNEL_BUILD_OUT_PREFIX)$(genDir)/bazel-out run --experimental_convenience_symlinks=ignore --cpu=$(KERNEL_ARCH) //$(TARGET_KERNEL_SOURCE):$(TARGET_KERNEL_PLATFORM_TARGET)_uapi_headers_dist -- --destdir=$(KERNEL_BUILD_OUT_PREFIX)$(genDir); " +
|
|
" popd; " +
|
|
" gzip -d $(KERNEL_BUILD_OUT_PREFIX)$(genDir)/kernel-uapi-headers.tar.gz; " +
|
|
" tar -xf $(KERNEL_BUILD_OUT_PREFIX)$(genDir)/kernel-uapi-headers.tar -C $(KERNEL_BUILD_OUT_PREFIX)$(genDir); " +
|
|
"else " +
|
|
" $(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; " +
|
|
"fi; " +
|
|
"vendor/lineage/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/**/*",
|
|
],
|
|
}
|
|
|
|
lineage_generator {
|
|
name: "prebuilt_kernel_includes",
|
|
|
|
// The headers extract command
|
|
cmd: "mkdir -p $(KERNEL_BUILD_OUT_PREFIX)$(genDir) && gzip -d < $(TARGET_PREBUILT_KERNEL_HEADERS) | tar -x -C $(KERNEL_BUILD_OUT_PREFIX)$(genDir) && vendor/lineage/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",
|
|
],
|
|
}
|
|
|
|
bootstrap_go_package {
|
|
name: "soong-lineage-mkdir",
|
|
pkgPath: "lineage/soong/mkdir",
|
|
deps: [
|
|
"blueprint",
|
|
"blueprint-pathtools",
|
|
"soong",
|
|
"soong-android",
|
|
],
|
|
srcs: [
|
|
"mkdir/init.go",
|
|
"mkdir/mkdir.go",
|
|
],
|
|
pluginFor: ["soong_build"],
|
|
}
|
|
|
|
cc_defaults {
|
|
name: "generated_kernel_header_defaults",
|
|
generated_headers: ["generated_kernel_includes"],
|
|
export_generated_headers: ["generated_kernel_includes"],
|
|
vendor_available: true,
|
|
recovery_available: true,
|
|
}
|
|
|
|
cc_defaults {
|
|
name: "prebuilt_kernel_header_defaults",
|
|
generated_headers: ["prebuilt_kernel_includes"],
|
|
export_generated_headers: ["prebuilt_kernel_includes"],
|
|
vendor_available: true,
|
|
recovery_available: true,
|
|
}
|
|
|
|
cc_library_headers {
|
|
name: "generated_kernel_headers",
|
|
defaults: ["generated_kernel_header_defaults"],
|
|
}
|
|
|
|
cc_library_headers {
|
|
name: "qti_kernel_headers",
|
|
defaults: ["generated_kernel_header_defaults"],
|
|
}
|
|
|
|
cc_library_headers {
|
|
name: "prebuilt_kernel_headers",
|
|
defaults: ["prebuilt_kernel_header_defaults"],
|
|
}
|