1# Copyright (C) 2016 The Android Open Source Project 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15LOCAL_PATH:= $(call my-dir) 16 17# proto files used in incidentd to generate cppstream proto headers. 18PROTO_FILES:= \ 19 frameworks/base/core/proto/android/os/backtrace.proto \ 20 frameworks/base/core/proto/android/os/data.proto \ 21 frameworks/base/core/proto/android/util/log.proto 22 23# ========= # 24# incidentd # 25# ========= # 26 27include $(CLEAR_VARS) 28 29LOCAL_MODULE := incidentd 30 31LOCAL_SRC_FILES := $(call all-cpp-files-under, src) \ 32 33LOCAL_CFLAGS += \ 34 -Wall -Werror -Wno-missing-field-initializers -Wno-unused-variable -Wunused-parameter 35 36ifeq (debug,) 37 LOCAL_CFLAGS += \ 38 -g -O0 39else 40 # optimize for size (protobuf glop can get big) 41 LOCAL_CFLAGS += \ 42 -Os 43endif 44LOCAL_C_INCLUDES += $(LOCAL_PATH)/src 45 46LOCAL_SHARED_LIBRARIES := \ 47 libbase \ 48 libbinder \ 49 libdebuggerd_client \ 50 libdumputils \ 51 libincident \ 52 liblog \ 53 libprotoutil \ 54 libservices \ 55 libutils 56 57LOCAL_MODULE_CLASS := EXECUTABLES 58 59gen_src_dir := $(local-generated-sources-dir) 60 61# generate section_list.cpp 62GEN_LIST := $(gen_src_dir)/src/section_list.cpp 63$(GEN_LIST): $(HOST_OUT_EXECUTABLES)/incident-section-gen 64$(GEN_LIST): PRIVATE_CUSTOM_TOOL = \ 65 $(HOST_OUT_EXECUTABLES)/incident-section-gen incidentd > $@ 66$(GEN_LIST): $(HOST_OUT_EXECUTABLES)/incident-section-gen 67 $(transform-generated-source) 68LOCAL_GENERATED_SOURCES += $(GEN_LIST) 69GEN_LIST:= 70 71# generate cppstream proto, add proto files to PROTO_FILES 72GEN_PROTO := $(gen_src_dir)/proto.timestamp 73$(GEN_PROTO): $(HOST_OUT_EXECUTABLES)/aprotoc $(HOST_OUT_EXECUTABLES)/protoc-gen-cppstream $(PROTO_FILES) 74$(GEN_PROTO): PRIVATE_GEN_SRC_DIR := $(gen_src_dir) 75$(GEN_PROTO): PRIVATE_CUSTOM_TOOL = \ 76 $(HOST_OUT_EXECUTABLES)/aprotoc --plugin=protoc-gen-cppstream=$(HOST_OUT_EXECUTABLES)/protoc-gen-cppstream \ 77 --cppstream_out=$(PRIVATE_GEN_SRC_DIR) -Iexternal/protobuf/src -I . \ 78 $(PROTO_FILES) \ 79 && touch $@ 80$(GEN_PROTO): $(HOST_OUT_EXECUTABLES)/aprotoc 81 $(transform-generated-source) 82LOCAL_GENERATED_SOURCES += $(GEN_PROTO) 83GEN_PROTO:= 84 85gen_src_dir:= 86 87LOCAL_INIT_RC := incidentd.rc 88 89include $(BUILD_EXECUTABLE) 90 91# ============== # 92# incidentd_test # 93# ============== # 94 95include $(CLEAR_VARS) 96 97LOCAL_MODULE := incidentd_test 98LOCAL_COMPATIBILITY_SUITE := device-tests 99LOCAL_MODULE_TAGS := tests 100 101LOCAL_CFLAGS := -Werror -Wall -Wno-unused-variable -Wunused-parameter 102 103LOCAL_C_INCLUDES += $(LOCAL_PATH)/src 104 105LOCAL_SRC_FILES := $(call all-cpp-files-under, tests) \ 106 src/PrivacyBuffer.cpp \ 107 src/FdBuffer.cpp \ 108 src/Privacy.cpp \ 109 src/Reporter.cpp \ 110 src/Section.cpp \ 111 src/Throttler.cpp \ 112 src/incidentd_util.cpp \ 113 src/report_directory.cpp \ 114 115LOCAL_STATIC_LIBRARIES := \ 116 libgmock \ 117 118LOCAL_SHARED_LIBRARIES := \ 119 libbase \ 120 libbinder \ 121 libdebuggerd_client \ 122 libdumputils \ 123 libincident \ 124 liblog \ 125 libprotobuf-cpp-lite \ 126 libprotoutil \ 127 libservices \ 128 libutils \ 129 130LOCAL_TEST_DATA := $(call find-test-data-in-subdirs, $(LOCAL_PATH), *, testdata) 131 132LOCAL_MODULE_CLASS := NATIVE_TESTS 133gen_src_dir := $(local-generated-sources-dir) 134# generate cppstream proto for testing 135GEN_PROTO := $(gen_src_dir)/test.proto.timestamp 136$(GEN_PROTO): $(HOST_OUT_EXECUTABLES)/aprotoc $(HOST_OUT_EXECUTABLES)/protoc-gen-cppstream $(PROTO_FILES) 137$(GEN_PROTO): PRIVATE_GEN_SRC_DIR := $(gen_src_dir) 138$(GEN_PROTO): PRIVATE_CUSTOM_TOOL = \ 139 $(HOST_OUT_EXECUTABLES)/aprotoc --plugin=protoc-gen-cppstream=$(HOST_OUT_EXECUTABLES)/protoc-gen-cppstream \ 140 --cppstream_out=$(PRIVATE_GEN_SRC_DIR) -Iexternal/protobuf/src -I . \ 141 $(PROTO_FILES) \ 142 && touch $@ 143$(GEN_PROTO): $(HOST_OUT_EXECUTABLES)/aprotoc 144 $(transform-generated-source) 145LOCAL_GENERATED_SOURCES += $(GEN_PROTO) 146GEN_PROTO:= 147 148gen_src_dir:= 149 150include $(BUILD_NATIVE_TEST) 151