From 38d78d19b9482e7bbad756f0cdbf533cbb52a8f8 Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Mon, 9 Oct 2017 11:03:38 -0700 Subject: applypatch: Forward declare struct Value. And move '#include "edify/expr.h"' into .cpp files. This breaks the transitive dependency on libedify. Modules that include "applypatch/applypatch.h" don't need to add libedify into their dependency list, unless they really need anything from libedify. Build libedify static library for host, which is needed by libimgpatch. Test: mmma bootable/recovery Change-Id: Ibb53d322579fcbf593438d058d9bcee240625941 --- applypatch/Android.mk | 2 ++ applypatch/bspatch.cpp | 3 ++- applypatch/imgpatch.cpp | 2 ++ applypatch/include/applypatch/applypatch.h | 3 ++- edify/Android.mk | 16 ++++++++++++++++ 5 files changed, 24 insertions(+), 2 deletions(-) diff --git a/applypatch/Android.mk b/applypatch/Android.mk index f5dda2bc4..db72e8eee 100644 --- a/applypatch/Android.mk +++ b/applypatch/Android.mk @@ -53,6 +53,7 @@ LOCAL_C_INCLUDES := \ bootable/recovery LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include LOCAL_STATIC_LIBRARIES := \ + libedify \ libcrypto \ libbspatch \ libbase \ @@ -77,6 +78,7 @@ LOCAL_C_INCLUDES := \ bootable/recovery LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include LOCAL_STATIC_LIBRARIES := \ + libedify \ libcrypto \ libbspatch \ libbase \ diff --git a/applypatch/bspatch.cpp b/applypatch/bspatch.cpp index 65ee614ef..b2f29fbd6 100644 --- a/applypatch/bspatch.cpp +++ b/applypatch/bspatch.cpp @@ -30,6 +30,7 @@ #include #include "applypatch/applypatch.h" +#include "edify/expr.h" #include "print_sha1.h" void ShowBSDiffLicense() { @@ -91,4 +92,4 @@ int ApplyBSDiffPatch(const unsigned char* old_data, size_t old_size, const Value } } return result; -} \ No newline at end of file +} diff --git a/applypatch/imgpatch.cpp b/applypatch/imgpatch.cpp index df75f98d4..7a43ddbef 100644 --- a/applypatch/imgpatch.cpp +++ b/applypatch/imgpatch.cpp @@ -37,6 +37,8 @@ #include #include +#include "edify/expr.h" + static inline int64_t Read8(const void *address) { return android::base::get_unaligned(address); } diff --git a/applypatch/include/applypatch/applypatch.h b/applypatch/include/applypatch/applypatch.h index 581360ef1..2a3b3ef39 100644 --- a/applypatch/include/applypatch/applypatch.h +++ b/applypatch/include/applypatch/applypatch.h @@ -27,7 +27,8 @@ #include -#include "edify/expr.h" +// Forward declaration to avoid including "edify/expr.h" in the header. +struct Value; struct FileContents { uint8_t sha1[SHA_DIGEST_LENGTH]; diff --git a/edify/Android.mk b/edify/Android.mk index cec65f42a..fbf2b1b06 100644 --- a/edify/Android.mk +++ b/edify/Android.mk @@ -34,3 +34,19 @@ LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. LOCAL_STATIC_LIBRARIES += libbase include $(BUILD_STATIC_LIBRARY) + +# +# Build the host-side library (static library) +# +include $(CLEAR_VARS) + +LOCAL_SRC_FILES := $(edify_src_files) + +LOCAL_CFLAGS := -Wall -Werror +LOCAL_CPPFLAGS := -Wno-unused-parameter +LOCAL_CPPFLAGS += -Wno-deprecated-register +LOCAL_MODULE := libedify +LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. +LOCAL_STATIC_LIBRARIES += libbase + +include $(BUILD_HOST_STATIC_LIBRARY) -- cgit v1.2.3