Hybrid soong/mk build using prebuilts
Change-Id: I96daa69af27bd19c8bfbe327a1318f51c738fc03
diff --git a/cc/androidmk.go b/cc/androidmk.go
new file mode 100644
index 0000000..7554ef4
--- /dev/null
+++ b/cc/androidmk.go
@@ -0,0 +1,83 @@
+// Copyright 2015 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 (
+ "io"
+ "path/filepath"
+ "strings"
+
+ "android/soong/common"
+)
+
+func (c *CCLibrary) AndroidMk() (ret common.AndroidMkData) {
+ if c.static() {
+ ret.Class = "STATIC_LIBRARIES"
+ } else {
+ ret.Class = "SHARED_LIBRARIES"
+ }
+ ret.OutputFile = c.outputFile()
+ ret.Extra = func(name, prefix, outputFile string, arch common.Arch) (ret []string) {
+ exportedIncludes := c.exportedFlags()
+ for i := range exportedIncludes {
+ exportedIncludes[i] = strings.TrimPrefix(exportedIncludes[i], "-I")
+ }
+ if len(exportedIncludes) > 0 {
+ ret = append(ret, "LOCAL_EXPORT_C_INCLUDE_DIRS := "+strings.Join(exportedIncludes, " "))
+ }
+
+ ret = append(ret, "LOCAL_MODULE_SUFFIX := "+filepath.Ext(outputFile))
+ ret = append(ret, "LOCAL_SHARED_LIBRARIES_"+arch.ArchType.String()+" := "+strings.Join(c.savedDepNames.SharedLibs, " "))
+
+ if c.Properties.Relative_install_path != "" {
+ ret = append(ret, "LOCAL_MODULE_RELATIVE_PATH := "+c.Properties.Relative_install_path)
+ }
+
+ // These are already included in LOCAL_SHARED_LIBRARIES
+ ret = append(ret, "LOCAL_CXX_STL := none")
+ ret = append(ret, "LOCAL_SYSTEM_SHARED_LIBRARIES :=")
+
+ return
+ }
+ return
+}
+
+func (c *ccObject) AndroidMk() (ret common.AndroidMkData) {
+ ret.OutputFile = c.outputFile()
+ ret.Custom = func(w io.Writer, name, prefix string) {
+ out := c.outputFile()
+
+ io.WriteString(w, "$("+prefix+"TARGET_OUT_INTERMEDIATE_LIBRARIES)/"+name+objectExtension+": "+out+" | $(ACP)\n")
+ io.WriteString(w, "\t$(copy-file-to-target)\n")
+ }
+ return
+}
+
+func (c *CCBinary) AndroidMk() (ret common.AndroidMkData) {
+ ret.Class = "EXECUTABLES"
+ ret.Extra = func(name, prefix, outputFile string, arch common.Arch) []string {
+ ret := []string{
+ "LOCAL_CXX_STL := none",
+ "LOCAL_SYSTEM_SHARED_LIBRARIES :=",
+ "LOCAL_SHARED_LIBRARIES_" + arch.ArchType.String() + " += " + strings.Join(c.savedDepNames.SharedLibs, " "),
+ }
+ if c.Properties.Relative_install_path != "" {
+ ret = append(ret, "LOCAL_MODULE_RELATIVE_PATH_"+arch.ArchType.String()+" := "+c.Properties.Relative_install_path)
+ }
+ return ret
+ }
+ ret.OutputFile = c.outputFile()
+ return
+}
diff --git a/cc/cc.go b/cc/cc.go
index 28ccc4c..e0c62d8 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -1078,6 +1078,7 @@
objFiles []string
exportFlags []string
out string
+ systemLibs []string
LibraryProperties CCLibraryProperties
}
@@ -1142,6 +1143,8 @@
depNames.SharedLibs = append(depNames.SharedLibs, c.LibraryProperties.Shared.Shared_libs...)
}
+ c.systemLibs = c.systemSharedLibs(ctx)
+
return depNames
}
@@ -1764,8 +1767,8 @@
&CCUnusedProperties{},
}
- _, propertyStructs = common.InitAndroidArchModule(module, common.HostOrDeviceSupported(0),
- common.Multilib(""), propertyStructs...)
+ _, propertyStructs = common.InitAndroidArchModule(module, common.HostAndDeviceDefault,
+ common.MultilibDefault, propertyStructs...)
return common.InitDefaultsModule(module, module, propertyStructs...)
}