1// 2// Copyright © 2020 ARM Ltd. All rights reserved. 3// SPDX-License-Identifier: MIT 4// 5 6package arm_compute_library_nn_driver 7 8import ( 9 "android/soong/android" 10 "android/soong/cc" 11 "strings" 12) 13 14func globalFlags(ctx android.BaseContext) []string { 15 var cppflags []string 16 17 if ctx.AConfig().PlatformVersionName() == "Q" || ctx.AConfig().PlatformVersionName() == "10" { 18 cppflags = append(cppflags, "-fno-addrsig") 19 } 20 21 if ctx.AConfig().PlatformVersionName() == "R" || ctx.AConfig().PlatformVersionName() == "11" { 22 cppflags = append(cppflags, "-fno-addrsig") 23 } 24 25 data_types := strings.Split(ctx.AConfig().GetenvWithDefault("COMPUTE_LIB_DATA_TYPE", "ALL"), ",") 26 27 for _, x := range data_types { 28 if strings.ToUpper(x) == "ALL" || strings.ToUpper(x) == "QASYMM8" { 29 cppflags = append(cppflags, "-DENABLE_QASYMM8_KERNELS") 30 } 31 if strings.ToUpper(x) == "ALL" || strings.ToUpper(x) == "QASYMM8_SIGNED" { 32 cppflags = append(cppflags, "-DENABLE_QASYMM8_SIGNED_KERNELS") 33 } 34 if strings.ToUpper(x) == "ALL" || strings.ToUpper(x) == "QASYMM16" { 35 cppflags = append(cppflags, "-DENABLE_QASYMM16_KERNELS") 36 } 37 if strings.ToUpper(x) == "ALL" || strings.ToUpper(x) == "QSYMM16" { 38 cppflags = append(cppflags, "-DENABLE_QSYMM16_KERNELS") 39 } 40 if strings.ToUpper(x) == "ALL" || strings.ToUpper(x) == "FP16" { 41 cppflags = append(cppflags, "-DENABLE_FP16_KERNELS") 42 } 43 if strings.ToUpper(x) == "ALL" || strings.ToUpper(x) == "FP32" { 44 cppflags = append(cppflags, "-DENABLE_FP32_KERNELS") 45 } 46 } 47 48 return cppflags 49} 50 51func clframeworkNNDriverDefaults(ctx android.LoadHookContext) { 52 type props struct { 53 Cppflags []string 54 } 55 56 p := &props{} 57 p.Cppflags = globalFlags(ctx) 58 59 ctx.AppendProperties(p) 60} 61 62func init() { 63 64 android.RegisterModuleType("arm_compute_library_defaults", clframeworkNNDriverDefaultsFactory) 65} 66 67func clframeworkNNDriverDefaultsFactory() android.Module { 68 69 module := cc.DefaultsFactory() 70 android.AddLoadHook(module, clframeworkNNDriverDefaults) 71 return module 72} 73