原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. 【有图】android通过jdbc连接mysql(附文件)
  2. Android studio 多线程网络文件下载
  3. Android 记录gitignore文件内容
  4. Android写文件到SDCard的简单代码
  5. Android和PC端通过局域网文件同步
  6. android 根据apk文件路径获取图标
  7. Android SD卡文件列表

随机推荐

  1. Android(安卓)Studio--报错日记
  2. android之Android类装载器DexClassLoader
  3. Android(安卓)ApiDemos示例解析(137):Vie
  4. Android(安卓)DEX 方法超过64K限制
  5. Android事件分发之总结(三)
  6. android out of memory 内存泄露
  7. 【转】Android(安卓)--Google Market
  8. android系统学习笔记二
  9. android中checkbox自定义样式
  10. MT6573默认锁屏界面修改