原Android.dp

// Copyright (C) 2011 The Android Open Source Project//// Licensed under the Apache License, Version 2.0 (the "License");// you may not use this file except in compliance with the License.// You may obtain a copy of the License at////      http://www.apache.org/licenses/LICENSE-2.0//// Unless required by applicable law or agreed to in writing, software// distributed under the License is distributed on an "AS IS" BASIS,// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.// See the License for the specific language governing permissions and// limitations under the License.cc_library_shared {    name: "test",        relative_install_path: "hw",    vendor: true,        srcs: [        "test.c"    ],    shared_libs: [        "liblog",        "libcutils",        "libhardware",    ],    cflags: [        "-Wall",        "-Wno-unused-parameter",        "-Wno-unused-variable",        "-Wno-logical-op-parentheses",        "-Wno-incompatible-pointer-types-discards-qualifiers",        "-Wno-unused-function",    ],} 

define.go文件创建

package defineimport (        "android/soong/android"        "android/soong/cc"        "fmt"        "strings")func init() {    // for DEBUG    fmt.Println("init start")    android.RegisterModuleType("test_defaults", sys_gpsDefaultsFactory)}func sys_gpsDefaultsFactory() (android.Module) {    module := cc.DefaultsFactory()    android.AddLoadHook(module, sys_gpsDefaults)    return module}func sys_gpsDefaults(ctx android.LoadHookContext) {    type props struct {        Cflags []string    }    p := &props{}    p.Cflags = globalDefaults(ctx)    ctx.AppendProperties(p)}func globalDefaults(ctx android.BaseContext) ([]string) {    var cppflags []string        fmt.Println("DeviceName:", ctx.AConfig().DeviceName())    fmt.Println("DeviceName:", strings.Compare(ctx.AConfig().DeviceName(), "chinatsp_s203_p_8q"))    name := ctx.AConfig().DeviceName();            if name == "xxxx" {          cppflags = append(cppflags,                         "-DXXXX=\"XXXXXXX\"")    }        if name == "yyyy" {          cppflags = append(cppflags,                         "-DYYYY=\"yyyyyyy\"")    }    return cppflags}

修改后的Android.dp

// Copyright (C) 2011 The Android Open Source Project//// Licensed under the Apache License, Version 2.0 (the "License");// you may not use this file except in compliance with the License.// You may obtain a copy of the License at////      http://www.apache.org/licenses/LICENSE-2.0//// Unless required by applicable law or agreed to in writing, software// distributed under the License is distributed on an "AS IS" BASIS,// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.// See the License for the specific language governing permissions and// limitations under the License.bootstrap_go_package {    // name and pkgPath need to  according to your module    name: "soong-sys_define",    pkgPath: "hardware/libhardware/modules/test",    deps: [        "blueprint",        "blueprint-pathtools",        "soong",        "soong-android",        "soong-cc",        "soong-genrule",    ],    srcs: [          // include new add .go file          "define.go",    ],    pluginFor: ["soong_build"],}test_defaults {    name: "test_defaults",}cc_library_shared {    name: "test",        relative_install_path: "hw",    vendor: true,        defaults: [        "test_defaults",    ],        srcs: [        "test.c"    ],    shared_libs: [        "liblog",        "libcutils",        "libhardware",    ],    cflags: [        "-Wall",        "-Wno-unused-parameter",        "-Wno-unused-variable",        "-Wno-logical-op-parentheses",        "-Wno-incompatible-pointer-types-discards-qualifiers",        "-Wno-unused-function",    ],} 

(参考 build/soong/android/config.go 中对 build/soong/android/module.go中的 androidBaseContext interface的各种函数实现)

更多相关文章

  1. 箭头函数的基础使用
  2. Python技巧匿名函数、回调函数和高阶函数
  3. Android(安卓)创建线程执行任务
  4. Android(安卓)简单数据库(增删改查)
  5. android 线程之创建一个子线程,并在UI线程中进行交互
  6. android之HandlerThread类的实现
  7. Android动态创建ListView视图,动态增加和删除Item.
  8. android折叠展开列表动态修改显示测试
  9. android Settings 修改默认主题为白底黑字

随机推荐

  1. android的消息处理机制(图+源码分析)——Lo
  2. Android(安卓)渗透测试学习手册 第一章 A
  3. 《Android(安卓)基础(四十九)》Navigation
  4. Android(安卓)手机软键盘的弹起和关闭的
  5. Java Android(安卓)HTTP实现总结
  6. android:configChanges属性
  7. Android(安卓): 如何得到Activities栈顶
  8. Android输入子系统概览
  9. android videoview的使用
  10. android学习日记之broadcast