在主文件夹中
soong_config_module_type {
name: "adv_vs_vda_cc_defaults",
module_type: "cc_defaults",
config_namespace: "adv_vs_vda",
variables: ["adv_or_vda"],
properties: ["cflags", "include_dirs", "static_libs", "whole_static_libs", "srcs", "required"],
}
然后再其他文件中
bootstrap_go_package {
name: "soong-ADV",
pkgPath: "android/soong/ADV",
deps: [
"blueprint",
"blueprint-pathtools",
"soong",
"soong-android",
"soong-cc",
"soong-genrule",
],
srcs:[
"adv.go"
],
pluginFor:["soong_build"],
}
soong_config_module_type_import {
from: "device/AAA/missi/Android.bp",
module_types: [
"adv_vs_vda_cc_defaults",
],
}
adv_vs_vda_cc_defaults{
name: "adv_stack_cc-default",
soong_config_variables: {
adv_or_vda: {
advvda: {
cflags: [
],
}
}
}
}
然后go语言编写
package ADV
import (
"android/soong/android"
"android/soong/cc"
"fmt"
)
func init() {
android.RegisterModuleType("adv_vs_vda_cc_defaults", AdvAduioFeature_Cflag)
}
func AdvAduioFeature_Cflag() (android.Module) {
module := cc.DefaultsFactory()
android.AddLoadHook(module, AdvAduioFeature_Defaults)
return module
}
func AdvAduioFeature_Defaults(ctx android.LoadHookContext) {
type props struct {
Soong_config_variables struct {
Adv_or_vda struct {
Advvda struct {
Cflags []string
}
}
}
}
p := &props{}
p.Soong_config_variables.Adv_or_vda.Advvda.Cflags = []string{"-DAAAAA=1"}
ctx.AppendProperties(p)
}
但是编译失败了,out/host/linux-x86/bin/go/soong-BTIF/pkg/android/soong/BTIF.a
应该是实际的结构并不是这么弄的,哪位大 佬知道该怎么写,万分感谢
可以参考一下:https://android.googlesource.com/platform/build/soong/+/refs/heads/master/android/soong_config_modules.go