Android P Android.dp添加逻辑判断
16lz
2021-01-23
原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的各种函数实现)
更多相关文章
- 【有图】android通过jdbc连接mysql(附文件)
- Android studio 多线程网络文件下载
- Android 记录gitignore文件内容
- Android写文件到SDCard的简单代码
- Android和PC端通过局域网文件同步
- android 根据apk文件路径获取图标
- Android SD卡文件列表