• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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