platform_build_soong/cc/proto.go
Colin Cross 38f794ee49 Refactor proto in preparation for java proto support
Test: m -j checkbuild
Change-Id: Idf00ea0bacb2777458f9af2c7eb47e1e1854eeba
2017-09-11 12:41:58 -07:00

67 lines
1.8 KiB
Go

// 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
}