// Copyright 2016 Google Inc. All rights reserved. // // 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. package cc import ( "github.com/google/blueprint/proptools" "android/soong/android" ) func protoDeps(ctx BaseModuleContext, deps Deps, p *android.ProtoProperties, static bool) Deps { var lib string switch proptools.String(p.Proto.Type) { case "full": if ctx.sdk() { lib = "libprotobuf-cpp-full-ndk" static = true } else { lib = "libprotobuf-cpp-full" } case "lite", "": if ctx.sdk() { lib = "libprotobuf-cpp-lite-ndk" static = true } else { lib = "libprotobuf-cpp-lite" } default: ctx.PropertyErrorf("proto.type", "unknown proto type %q", proptools.String(p.Proto.Type)) } if static { deps.StaticLibs = append(deps.StaticLibs, lib) deps.ReexportStaticLibHeaders = append(deps.ReexportStaticLibHeaders, lib) } else { deps.SharedLibs = append(deps.SharedLibs, lib) deps.ReexportSharedLibHeaders = append(deps.ReexportSharedLibHeaders, lib) } return deps } func protoFlags(ctx ModuleContext, flags Flags, p *android.ProtoProperties) Flags { flags.CFlags = append(flags.CFlags, "-DGOOGLE_PROTOBUF_NO_RTTI") flags.GlobalFlags = append(flags.GlobalFlags, "-I"+android.ProtoSubDir(ctx).String(), "-I"+android.ProtoDir(ctx).String(), ) flags.protoFlags = android.ProtoFlags(ctx, p) return flags }