android13/hardware/rockchip/librkvpu/omx_get_gralloc_private/Android.go

123 lines
5.1 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package libgralloc_priv
import (
"android/soong/android"
"android/soong/cc"
"fmt"
"strings"
)
func init() {
//该打印会在执行mm命令时打印在屏幕上
fmt.Println("libgralloc_priv want to conditional Compile")
android.RegisterModuleType("cc_libgralloc_priv", DefaultsFactory)
}
func DefaultsFactory() (android.Module) {
module := cc.DefaultsFactory()
android.AddLoadHook(module, Defaults)
return module
}
func Defaults(ctx android.LoadHookContext) {
type props struct {
Srcs []string
Cflags []string
Shared_libs []string
Include_dirs []string
}
p := &props{}
p.Cflags = globalCflagsDefaults(ctx)
p.Include_dirs = globalIncludeDefaults(ctx)
p.Srcs = getSrcs(ctx)
p.Shared_libs = getSharedLibs(ctx)
ctx.AppendProperties(p)
}
func getSharedLibs(ctx android.BaseContext) ([]string) {
var libs []string
if (strings.EqualFold(ctx.AConfig().Getenv("TARGET_RK_GRALLOC_VERSION"),"4") ) {
libs = append(libs, "libgralloctypes")
libs = append(libs, "libhidlbase")
libs = append(libs, "libsync")
libs = append(libs, "android.hardware.graphics.mapper@4.0")
}
return libs
}
func getSrcs(ctx android.BaseContext) ([]string) {
var src []string
sdkVersion := ctx.AConfig().PlatformSdkVersion().FinalOrFutureInt()
if (strings.EqualFold(ctx.AConfig().Getenv("TARGET_RK_GRALLOC_VERSION"),"4") ) {
if (sdkVersion >= 30 ) {
src = append(src, "platform_gralloc4.cpp")
}
}
return src
}
func globalIncludeDefaults(ctx android.BaseContext) ([]string) {
var include_dirs []string
version := ctx.Config().PlatformSdkVersion().FinalOrFutureInt()
if (version < 29 ) {
if (strings.EqualFold(ctx.AConfig().Getenv("TARGET_BOARD_PLATFORM_GPU"),"G6110")) {
fmt.Println("G6110 don't contains hardware/rockchip/libgralloc!");
} else {
include_dirs = append(include_dirs,"hardware/rockchip/libgralloc")
}
} else {
if (strings.EqualFold(ctx.AConfig().Getenv("TARGET_BOARD_PLATFORM_GPU"),"mali-tDVx") || strings.EqualFold(ctx.AConfig().Getenv("TARGET_BOARD_PLATFORM_GPU"),"mali-G52")) {
include_dirs = append(include_dirs,"hardware/rockchip/libgralloc/bifrost")
} else if (strings.EqualFold(ctx.AConfig().Getenv("TARGET_BOARD_PLATFORM_GPU"),"mali-t860") || strings.EqualFold(ctx.AConfig().Getenv("TARGET_BOARD_PLATFORM_GPU"),"mali-t760")) {
include_dirs = append(include_dirs,"hardware/rockchip/libgralloc/midgard")
} else if (strings.EqualFold(ctx.AConfig().Getenv("TARGET_BOARD_PLATFORM_GPU"),"mali400") || strings.EqualFold(ctx.AConfig().Getenv("TARGET_BOARD_PLATFORM_GPU"),"mali450")) {
include_dirs = append(include_dirs,"hardware/rockchip/libgralloc/utgard")
} else if (strings.EqualFold(ctx.AConfig().Getenv("TARGET_BOARD_PLATFORM_GPU"),"G6110")) {
fmt.Println("G6110 don't contains hardware/rockchip/libgralloc!");
} else {
include_dirs = append(include_dirs,"hardware/rockchip/libgralloc")
}
}
if (strings.EqualFold(ctx.AConfig().Getenv("TARGET_RK_GRALLOC_VERSION"),"4") ) {
include_dirs = append(include_dirs, "frameworks/native/include")
include_dirs = append(include_dirs, "system/core/libsync")
include_dirs = append(include_dirs, "system/core/libsync/include")
include_dirs = append(include_dirs, "external/libdrm/include/drm")
}
fmt.Println(include_dirs, ctx.Config().PlatformSdkVersion())
return include_dirs
}
func globalCflagsDefaults(ctx android.BaseContext) ([]string) {
var cppflags []string
//该打印输出为: TARGET_PRODUCT:rk3328 fmt.Println("TARGET_PRODUCT:",ctx.AConfig().Getenv("TARGET_PRODUCT")) //通过 strings.EqualFold 比较字符串可参考go语言字符串对比
if (strings.EqualFold(ctx.AConfig().Getenv("TARGET_BOARD_PLATFORM_GPU"),"mali-t720")) {
//添加 DEBUG 宏定义
cppflags = append(cppflags,"-DMALI_PRODUCT_ID_T72X=1")
cppflags = append(cppflags,"-DMALI_AFBC_GRALLOC=0")
} else if (strings.EqualFold(ctx.AConfig().Getenv("TARGET_BOARD_PLATFORM_GPU"),"mali-t760")) {
cppflags = append(cppflags,"-DMALI_PRODUCT_ID_T76X=1")
cppflags = append(cppflags,"-DMALI_AFBC_GRALLOC=1")
} else if (strings.EqualFold(ctx.AConfig().Getenv("TARGET_BOARD_PLATFORM_GPU"),"mali-t860")) {
cppflags = append(cppflags,"-DMALI_PRODUCT_ID_T86X=1")
cppflags = append(cppflags,"-DMALI_AFBC_GRALLOC=1")
}
if (strings.EqualFold(ctx.AConfig().Getenv("TARGET_RK_GRALLOC_VERSION"),"4") ) {
cppflags = append(cppflags,"-DUSE_GRALLOC_4")
} else {
if (strings.EqualFold(ctx.AConfig().Getenv("TARGET_BOARD_PLATFORM_GPU"),"G6110")) {
cppflags = append(cppflags,"-DGPU_G6110")
} else if (strings.Contains(ctx.AConfig().Getenv("TARGET_BOARD_PLATFORM"), "rk3528")) {
cppflags = append(cppflags,"-DUSE_DMABUFHEAP_BASED_0_3_GRALLOC")
} else {
cppflags = append(cppflags,"-DUSE_DRM")
}
}
//将需要区分的环境变量在此区域添加 //....
return cppflags
}