1LOCAL_PATH:= $(call my-dir) 2 3# ================# 4# Common settings # 5# ================# 6# ZipArchive support, the order matters here to get all symbols. 7COMMON_ZIP_LIBRARIES := libziparchive libz libcrypto 8 9# TODO: ideally the tests should depend on a shared dumpstate library, but currently libdumpstate 10# is used to define the device-specific HAL library. Instead, both dumpstate and dumpstate_test 11# shares a lot of common settings 12COMMON_LOCAL_CFLAGS := \ 13 -Wall -Werror -Wno-missing-field-initializers -Wno-unused-variable -Wunused-parameter 14COMMON_SRC_FILES := \ 15 DumpstateInternal.cpp \ 16 utils.cpp 17COMMON_SHARED_LIBRARIES := \ 18 android.hardware.dumpstate@1.0 \ 19 android.hidl.manager@1.0 \ 20 libhidlbase \ 21 libbase \ 22 libbinder \ 23 libcutils \ 24 libdebuggerd_client \ 25 libdumpstateaidl \ 26 libdumpstateutil \ 27 liblog \ 28 libselinux \ 29 libutils \ 30 $(COMMON_ZIP_LIBRARIES) 31 32# ====================# 33# libdumpstateutil # 34# ====================# 35include $(CLEAR_VARS) 36 37LOCAL_MODULE := libdumpstateutil 38 39LOCAL_CFLAGS := $(COMMON_LOCAL_CFLAGS) 40LOCAL_C_INCLUDES := $(LOCAL_PATH) 41LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) 42LOCAL_SRC_FILES := \ 43 DumpstateInternal.cpp \ 44 DumpstateUtil.cpp 45LOCAL_SHARED_LIBRARIES := \ 46 libbase \ 47 liblog \ 48 49include $(BUILD_SHARED_LIBRARY) 50 51# ====================# 52# libdumpstateheaders # 53# ====================# 54# TODO: this module is necessary so the device-specific libdumpstate implementations do not 55# need to add any other dependency (like libbase). Should go away once dumpstate HAL changes. 56include $(CLEAR_VARS) 57 58LOCAL_EXPORT_C_INCLUDE_DIRS = $(LOCAL_PATH) 59LOCAL_MODULE := libdumpstateheaders 60LOCAL_EXPORT_SHARED_LIBRARY_HEADERS := \ 61 $(COMMON_SHARED_LIBRARIES) 62LOCAL_EXPORT_STATIC_LIBRARY_HEADERS := \ 63 $(COMMON_STATIC_LIBRARIES) 64# Soong requires that whats is on LOCAL_EXPORTED_ is also on LOCAL_ 65LOCAL_SHARED_LIBRARIES := $(LOCAL_EXPORT_SHARED_LIBRARY_HEADERS) 66LOCAL_STATIC_LIBRARIES := $(LOCAL_EXPORT_STATIC_LIBRARY_HEADERS) 67 68include $(BUILD_STATIC_LIBRARY) 69 70# ================ # 71# libdumpstateaidl # 72# =================# 73include $(CLEAR_VARS) 74 75LOCAL_MODULE := libdumpstateaidl 76 77LOCAL_CFLAGS := $(COMMON_LOCAL_CFLAGS) 78 79LOCAL_SHARED_LIBRARIES := \ 80 libbinder \ 81 libutils 82LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/binder 83LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/binder 84LOCAL_C_INCLUDES := $(LOCAL_PATH)/binder 85LOCAL_SRC_FILES := \ 86 binder/android/os/IDumpstate.aidl \ 87 binder/android/os/IDumpstateListener.aidl \ 88 binder/android/os/IDumpstateToken.aidl 89 90include $(BUILD_SHARED_LIBRARY) 91 92# ==========# 93# dumpstate # 94# ==========# 95include $(CLEAR_VARS) 96 97LOCAL_SRC_FILES := $(COMMON_SRC_FILES) \ 98 DumpstateService.cpp \ 99 dumpstate.cpp 100 101LOCAL_MODULE := dumpstate 102 103LOCAL_SHARED_LIBRARIES := $(COMMON_SHARED_LIBRARIES) 104 105LOCAL_STATIC_LIBRARIES := $(COMMON_STATIC_LIBRARIES) 106 107LOCAL_CFLAGS += $(COMMON_LOCAL_CFLAGS) 108 109LOCAL_INIT_RC := dumpstate.rc 110 111include $(BUILD_EXECUTABLE) 112 113# ===============# 114# dumpstate_test # 115# ===============# 116include $(CLEAR_VARS) 117 118LOCAL_MODULE := dumpstate_test 119 120LOCAL_MODULE_TAGS := tests 121 122LOCAL_CFLAGS := $(COMMON_LOCAL_CFLAGS) 123 124LOCAL_SRC_FILES := $(COMMON_SRC_FILES) \ 125 DumpstateService.cpp \ 126 tests/dumpstate_test.cpp 127 128LOCAL_STATIC_LIBRARIES := $(COMMON_STATIC_LIBRARIES) \ 129 libgmock 130 131LOCAL_SHARED_LIBRARIES := $(COMMON_SHARED_LIBRARIES) 132 133include $(BUILD_NATIVE_TEST) 134 135# =======================# 136# dumpstate_test_fixture # 137# =======================# 138include $(CLEAR_VARS) 139 140LOCAL_MODULE := dumpstate_test_fixture 141 142LOCAL_MODULE_TAGS := tests 143 144LOCAL_CFLAGS := $(COMMON_LOCAL_CFLAGS) 145 146LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 147 148LOCAL_SRC_FILES := \ 149 tests/dumpstate_test_fixture.cpp 150 151LOCAL_MODULE_CLASS := NATIVE_TESTS 152 153dumpstate_tests_intermediates := $(local-intermediates-dir)/DATA 154dumpstate_tests_subpath_from_data := nativetest/dumpstate_test_fixture 155dumpstate_tests_root_in_device := /data/$(dumpstate_tests_subpath_from_data) 156dumpstate_tests_root_for_test_zip := $(dumpstate_tests_intermediates)/$(dumpstate_tests_subpath_from_data) 157testdata_files := $(call find-subdir-files, testdata/*) 158 159# Copy test data files to intermediates/DATA for use with LOCAL_PICKUP_FILES 160GEN := $(addprefix $(dumpstate_tests_root_for_test_zip)/, $(testdata_files)) 161$(GEN): PRIVATE_PATH := $(LOCAL_PATH) 162$(GEN): PRIVATE_CUSTOM_TOOL = cp $< $@ 163$(GEN): $(dumpstate_tests_root_for_test_zip)/testdata/% : $(LOCAL_PATH)/testdata/% 164 $(transform-generated-source) 165LOCAL_GENERATED_SOURCES += $(GEN) 166 167# Copy test data files again to $OUT/data so the tests can be run with adb sync 168# TODO: the build system should do this automatically 169GEN := $(addprefix $(TARGET_OUT_DATA)/$(dumpstate_tests_subpath_from_data)/, $(testdata_files)) 170$(GEN): PRIVATE_PATH := $(LOCAL_PATH) 171$(GEN): PRIVATE_CUSTOM_TOOL = cp $< $@ 172$(GEN): $(TARGET_OUT_DATA)/$(dumpstate_tests_subpath_from_data)/testdata/% : $(LOCAL_PATH)/testdata/% 173 $(transform-generated-source) 174LOCAL_GENERATED_SOURCES += $(GEN) 175 176LOCAL_PICKUP_FILES := $(dumpstate_tests_intermediates) 177 178include $(BUILD_NATIVE_TEST) 179