48 lines
1.2 KiB
Go
48 lines
1.2 KiB
Go
|
package libRkTeeWeaver
|
||
|
|
||
|
import (
|
||
|
"android/soong/android"
|
||
|
"android/soong/cc"
|
||
|
"fmt"
|
||
|
)
|
||
|
|
||
|
func init() {
|
||
|
fmt.Println("libRkTeeWeaver want to conditional Compile")
|
||
|
android.RegisterModuleType("cc_libRkTeeWeaver", DefaultsFactory)
|
||
|
}
|
||
|
|
||
|
func DefaultsFactory() (android.Module) {
|
||
|
module := cc.DefaultsFactory()
|
||
|
android.AddLoadHook(module, AddOpteeShardLibs)
|
||
|
return module
|
||
|
}
|
||
|
|
||
|
func AddOpteeShardLibs(ctx android.LoadHookContext) {
|
||
|
type props struct {
|
||
|
Shared_libs []string
|
||
|
}
|
||
|
var src_fix string = "libRkTeeWeaver."+getOpteeVersion(ctx)
|
||
|
p := &props{}
|
||
|
p.Shared_libs = append(p.Shared_libs, src_fix)
|
||
|
ctx.AppendProperties(p)
|
||
|
}
|
||
|
|
||
|
func isContain(items []string, item string) bool {
|
||
|
for _, eachItem := range items {
|
||
|
if eachItem == item {
|
||
|
return true
|
||
|
}
|
||
|
}
|
||
|
return false
|
||
|
}
|
||
|
|
||
|
func getOpteeVersion(ctx android.BaseContext) (string) {
|
||
|
var optee_version string = "v1"
|
||
|
var optee_v2_list = []string{"rk3326", "rk3528", "rk356x", "rk3562", "rk3588"}
|
||
|
if (isContain(optee_v2_list, ctx.AConfig().Getenv("TARGET_BOARD_PLATFORM"))) {
|
||
|
optee_version = "v2"
|
||
|
}
|
||
|
fmt.Println("Optee Version: " + optee_version)
|
||
|
return optee_version
|
||
|
}
|