Convert libbacktrace, libutils to Soong
Change-Id: I8b578f671f92246aca61f98937d75a60b56bc5c6
diff --git a/libbacktrace/Android.bp b/libbacktrace/Android.bp
new file mode 100644
index 0000000..93d997b
--- /dev/null
+++ b/libbacktrace/Android.bp
@@ -0,0 +1,121 @@
+//
+// Copyright (C) 2014 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_defaults {
+ name: "libbacktrace_common",
+
+ cflags: [
+ "-Wall",
+ "-Werror",
+ ],
+ conlyflags: ["-std=gnu99"],
+ cppflags: ["-std=gnu++11"],
+
+ clang_cflags: ["-Wno-inline-asm"],
+
+ // The latest clang (r230699) does not allow SP/PC to be declared in inline asm lists.
+ include_dirs: ["external/libunwind/include/tdep"],
+
+ // TODO: LLVM_DEVICE_BUILD_MK
+ // TODO: LLVM_HOST_BUILD_MK
+
+ target: {
+ host: {
+ // -fno-omit-frame-pointer should be set for host build. Because currently
+ // libunwind can't recognize .debug_frame using dwarf version 4, and it relies
+ // on stack frame pointer to do unwinding on x86.
+ // $(LLVM_HOST_BUILD_MK) overwrites -fno-omit-frame-pointer. so the below line
+ // must be after the include.
+ cflags: [
+ "-Wno-extern-c-compat",
+ "-fno-omit-frame-pointer",
+ ],
+ },
+
+ darwin: {
+ enabled: false,
+ },
+ },
+
+ multilib: {
+ lib32: {
+ suffix: "32",
+ },
+ lib64: {
+ suffix: "64",
+ },
+ }
+}
+
+libbacktrace_sources = [
+ "Backtrace.cpp",
+ "BacktraceCurrent.cpp",
+ "BacktracePtrace.cpp",
+ "thread_utils.c",
+ "ThreadEntry.cpp",
+ "UnwindCurrent.cpp",
+ "UnwindMap.cpp",
+ "UnwindPtrace.cpp",
+]
+
+cc_library {
+ name: "libbacktrace",
+ defaults: ["libbacktrace_common"],
+ host_supported: true,
+
+ srcs: [
+ "BacktraceMap.cpp",
+ ],
+
+ target: {
+ darwin: {
+ enabled: true,
+ },
+ linux: {
+ srcs: libbacktrace_sources,
+
+ shared_libs: [
+ "libbase",
+ "liblog",
+ "libunwind",
+ ],
+
+ static_libs: ["libcutils"],
+ },
+ android: {
+ srcs: libbacktrace_sources,
+
+ shared_libs: [
+ "libbase",
+ "liblog",
+ "libunwind",
+ ],
+
+ static_libs: ["libcutils"],
+ },
+ },
+}
+
+cc_library_shared {
+ name: "libbacktrace_test",
+ defaults: ["libbacktrace_common"],
+ host_supported: true,
+ strip: {
+ none: true,
+ },
+ cflags: ["-O0"],
+ srcs: ["backtrace_testlib.c"],
+}
diff --git a/libbacktrace/Android.mk b/libbacktrace/Android.mk
index 356ab8b..9bb113a 100644
--- a/libbacktrace/Android.mk
+++ b/libbacktrace/Android.mk
@@ -44,53 +44,6 @@
include $(LLVM_ROOT_PATH)/llvm.mk
#-------------------------------------------------------------------------
-# The libbacktrace library.
-#-------------------------------------------------------------------------
-libbacktrace_src_files := \
- Backtrace.cpp \
- BacktraceCurrent.cpp \
- BacktraceMap.cpp \
- BacktracePtrace.cpp \
- thread_utils.c \
- ThreadEntry.cpp \
- UnwindCurrent.cpp \
- UnwindMap.cpp \
- UnwindPtrace.cpp \
-
-libbacktrace_shared_libraries := \
- libbase \
- liblog \
- libunwind \
-
-libbacktrace_static_libraries := \
- libcutils
-
-module := libbacktrace
-module_tag := optional
-build_type := target
-build_target := SHARED_LIBRARY
-include $(LOCAL_PATH)/Android.build.mk
-build_type := host
-libbacktrace_multilib := both
-include $(LOCAL_PATH)/Android.build.mk
-
-libbacktrace_shared_libraries :=
-
-libbacktrace_static_libraries := \
- libbase \
- liblog \
- libunwind \
- liblzma \
-
-module := libbacktrace
-build_type := target
-build_target := STATIC_LIBRARY
-include $(LOCAL_PATH)/Android.build.mk
-build_type := host
-libbacktrace_multilib := both
-include $(LOCAL_PATH)/Android.build.mk
-
-#-------------------------------------------------------------------------
# The libbacktrace_offline shared library.
#-------------------------------------------------------------------------
libbacktrace_offline_src_files := \
@@ -135,26 +88,6 @@
include $(LOCAL_PATH)/Android.build.mk
#-------------------------------------------------------------------------
-# The libbacktrace_test library needed by backtrace_test.
-#-------------------------------------------------------------------------
-libbacktrace_test_cflags := \
- -O0 \
-
-libbacktrace_test_src_files := \
- backtrace_testlib.c \
-
-libbacktrace_test_strip_module := false
-
-module := libbacktrace_test
-module_tag := debug
-build_type := target
-build_target := SHARED_LIBRARY
-libbacktrace_test_multilib := both
-include $(LOCAL_PATH)/Android.build.mk
-build_type := host
-include $(LOCAL_PATH)/Android.build.mk
-
-#-------------------------------------------------------------------------
# The backtrace_test executable.
#-------------------------------------------------------------------------
backtrace_test_cflags := \
@@ -219,22 +152,3 @@
include $(LOCAL_PATH)/Android.build.mk
build_type := host
include $(LOCAL_PATH)/Android.build.mk
-
-#----------------------------------------------------------------------------
-# Special truncated libbacktrace library for mac.
-#----------------------------------------------------------------------------
-ifeq ($(HOST_OS),darwin)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := libbacktrace
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_SRC_FILES := \
- BacktraceMap.cpp \
-
-LOCAL_MULTILIB := both
-
-include $(BUILD_HOST_SHARED_LIBRARY)
-
-endif # HOST_OS-darwin