OSDN Git Service

drm_hwcomposer: Make Planner class fully static
[android-x86/external-drm_hwcomposer.git] / .ci / Makefile
1
2 INCLUDE_DIRS := . ../libdrm/include/drm include ./.ci/android_headers ./tests/test_include
3 SYSTEM_INCLUDE_DIRS := /usr/include/libdrm
4
5 CLANG := clang++-12
6 CLANG_TIDY := clang-tidy-12
7 OUT_DIR := /tmp/drm_hwcomposer/build/
8 SRC_DIR := .
9
10 CXXFLAGS := -fPIC -Wall -Wextra -Werror -DPLATFORM_SDK_VERSION=31 -D__ANDROID_API__=31
11 CXXFLAGS += -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS
12 CXXFLAGS += -fvisibility-inlines-hidden -std=gnu++17 -DHWC2_USE_CPP11 -DHWC2_INCLUDE_STRINGIFICATION -fno-rtti
13
14 BUILD_FILES := \
15     backend/BackendClient.cpp \
16     backend/Backend.cpp \
17     backend/BackendManager.cpp \
18     backend/BackendRCarDu.cpp \
19     bufferinfo/BufferInfoGetter.cpp \
20     bufferinfo/legacy/BufferInfoImagination.cpp \
21     bufferinfo/legacy/BufferInfoLibdrm.cpp \
22     bufferinfo/legacy/BufferInfoMaliHisi.cpp \
23     bufferinfo/legacy/BufferInfoMaliMediatek.cpp \
24     bufferinfo/legacy/BufferInfoMaliMeson.cpp \
25     bufferinfo/legacy/BufferInfoMinigbm.cpp \
26     compositor/DrmDisplayComposition.cpp \
27     compositor/DrmDisplayCompositor.cpp \
28     compositor/Planner.cpp \
29     drm/DrmConnector.cpp \
30     drm/DrmCrtc.cpp \
31     drm/DrmDevice.cpp \
32     drm/DrmEncoder.cpp \
33     drm/DrmFbImporter.cpp \
34     drm/DrmMode.cpp \
35     drm/DrmPlane.cpp \
36     drm/DrmProperty.cpp \
37     DrmHwcTwo.cpp \
38     drm/ResourceManager.cpp \
39     drm/UEventListener.cpp \
40     drm/VSyncWorker.cpp \
41     tests/worker_test.cpp \
42     utils/autolock.cpp \
43     utils/Worker.cpp \
44     utils/hwcutils.cpp \
45
46 #bufferinfo/BufferInfoMapperMetadata.cpp
47
48 TIDY_CHECKS_NORMAL := * \
49     -hicpp-* -llvmlibc-* -fuchsia-* -altera-* \
50     -cppcoreguidelines-special-member-functions \
51     -llvm-header-guard \
52     -cppcoreguidelines-avoid-c-arrays \
53     -cppcoreguidelines-pro-type-vararg \
54     -cppcoreguidelines-pro-bounds-array-to-pointer-decay \
55     -cppcoreguidelines-pro-bounds-constant-array-index \
56     -cppcoreguidelines-avoid-magic-numbers \
57     -google-readability-braces-around-statements \
58     -google-readability-casting \
59     -misc-non-private-member-variables-in-classes \
60     -modernize-avoid-c-arrays \
61     -modernize-use-nodiscard \
62     -modernize-use-trailing-return-type \
63     -readability-braces-around-statements \
64
65 TIDY_CHECKS_COARSE := \
66     $(TIDY_CHECKS_NORMAL) \
67     -cppcoreguidelines-non-private-member-variables-in-classes \
68     -cppcoreguidelines-pro-bounds-array-to-pointer-decay \
69     -cppcoreguidelines-pro-bounds-constant-array-index \
70     -cppcoreguidelines-pro-bounds-pointer-arithmetic \
71     -cppcoreguidelines-pro-type-cstyle-cast \
72     -cppcoreguidelines-pro-type-reinterpret-cast \
73     -cppcoreguidelines-pro-type-static-cast-downcast \
74     -cppcoreguidelines-pro-type-union-access \
75     -cppcoreguidelines-pro-type-vararg \
76     -cppcoreguidelines-avoid-magic-numbers \
77     -cppcoreguidelines-macro-usage \
78     -cppcoreguidelines-avoid-c-arrays \
79     -google-readability-braces-around-statements \
80     -google-readability-casting \
81     -misc-non-private-member-variables-in-classes \
82     -modernize-avoid-c-arrays \
83     -modernize-use-trailing-return-type \
84     -modernize-use-nodiscard \
85     -readability-braces-around-statements \
86     -readability-convert-member-functions-to-static \
87     -readability-implicit-bool-conversion \
88     -readability-identifier-naming \
89     -readability-magic-numbers \
90     -readability-use-anyofallof \
91
92 TIDY_FILES := \
93     drm/UEventListener.h:NORMAL                        \
94     drm/DrmFbImporter.h:FINE                           \
95     drm/ResourceManager.h:NORMAL                       \
96     drm/DrmMode.h:COARSE                               \
97     drm/DrmDevice.h:COARSE                             \
98     drm/DrmProperty.h:COARSE                           \
99     drm/DrmConnector.h:COARSE                          \
100     drm/DrmCrtc.h:COARSE                               \
101     drm/VSyncWorker.h:NORMAL                           \
102     drm/DrmPlane.h:NORMAL                              \
103     drm/DrmUnique.h:FINE                               \
104     drm/DrmEncoder.h:COARSE                            \
105     bufferinfo/legacy/BufferInfoMinigbm.h:NORMAL       \
106     bufferinfo/legacy/BufferInfoLibdrm.h:NORMAL        \
107     bufferinfo/legacy/BufferInfoMaliMediatek.h:NORMAL  \
108     bufferinfo/legacy/BufferInfoMaliHisi.h:NORMAL      \
109     bufferinfo/legacy/BufferInfoImagination.h:NORMAL   \
110     bufferinfo/legacy/BufferInfoMaliMeson.h:NORMAL     \
111     bufferinfo/BufferInfoGetter.h:NORMAL               \
112     bufferinfo/BufferInfoMapperMetadata.h:NORMAL       \
113     include/drmhwcgralloc.h:NORMAL                     \
114     include/drmhwcomposer.h:NORMAL                     \
115     utils/Worker.h:COARSE                              \
116     utils/UniqueFd.h:FINE                              \
117     utils/autolock.h:NORMAL                            \
118     utils/log.h:FINE                                   \
119     utils/properties.h:FINE                            \
120     compositor/DrmDisplayCompositor.h:COARSE           \
121     compositor/Planner.h:NORMAL                        \
122     compositor/DrmDisplayComposition.h:COARSE          \
123     backend/BackendManager.h:COARSE                    \
124     backend/BackendClient.h:NORMAL                     \
125     backend/Backend.h:NORMAL                           \
126     backend/BackendRCarDu.h:NORMAL                     \
127     DrmHwcTwo.h:COARSE                                 \
128
129 TIDY_FILES += \
130     backend/BackendClient.cpp:NORMAL                       \
131     backend/Backend.cpp:NORMAL                             \
132     backend/BackendManager.cpp:NORMAL                      \
133     backend/BackendRCarDu.cpp:NORMAL                       \
134     bufferinfo/BufferInfoGetter.cpp:NORMAL                 \
135     bufferinfo/legacy/BufferInfoImagination.cpp:COARSE     \
136     bufferinfo/legacy/BufferInfoLibdrm.cpp:COARSE          \
137     bufferinfo/legacy/BufferInfoMaliHisi.cpp:COARSE        \
138     bufferinfo/legacy/BufferInfoMaliMediatek.cpp:COARSE    \
139     bufferinfo/legacy/BufferInfoMaliMeson.cpp:COARSE       \
140     bufferinfo/legacy/BufferInfoMinigbm.cpp:COARSE         \
141     compositor/DrmDisplayComposition.cpp:COARSE            \
142     compositor/DrmDisplayCompositor.cpp:COARSE             \
143     compositor/Planner.cpp:NORMAL                          \
144     drm/DrmConnector.cpp:COARSE                            \
145     drm/DrmCrtc.cpp:NORMAL                                 \
146     drm/DrmDevice.cpp:COARSE                               \
147     drm/DrmEncoder.cpp:NORMAL                              \
148     drm/DrmFbImporter.cpp:NORMAL                           \
149     drm/DrmMode.cpp:NORMAL                                 \
150     drm/DrmPlane.cpp:COARSE                                \
151     drm/DrmProperty.cpp:COARSE                             \
152     DrmHwcTwo.cpp:COARSE                                   \
153     drm/ResourceManager.cpp:NORMAL                         \
154     drm/UEventListener.cpp:COARSE                          \
155     drm/VSyncWorker.cpp:COARSE                             \
156     tests/worker_test.cpp:COARSE                           \
157     utils/autolock.cpp:NORMAL                              \
158     utils/Worker.cpp:NORMAL                                \
159     utils/hwcutils.cpp:NORMAL                              \
160
161
162 .PHONY: all build tidy tidy-fine clean
163
164 all: build tidy tidy-fine
165
166 clean:
167         rm -rf $(OUT_DIR)/
168
169 _OBJ := $(BUILD_FILES:.cpp=.o)
170 OBJ  := $(patsubst %,$(OUT_DIR)/%,$(_OBJ))
171
172 DEPS := $(patsubst %.cpp,$(OUT_DIR)/%.d,$(BUILD_FILES))
173
174 build: $(OBJ)
175
176 CXXARGS := $(foreach dir,$(INCLUDE_DIRS),-I$(SRC_DIR)/$(dir)) $(foreach dir,$(SYSTEM_INCLUDE_DIRS),-I$(dir)) $(CXXFLAGS)
177
178 $(OUT_DIR)/%.o: $(SRC_DIR)/%.cpp
179         mkdir -p $(dir $@)
180         $(CLANG) $< $(CXXARGS) -c -o $@
181
182 $(OUT_DIR)/%.d: $(SRC_DIR)/%.cpp
183         mkdir -p $(dir $@)
184         $(CLANG) $(CXXARGS) $< -MM -MT $(OUT_DIR)/$(patsubst %.cpp,%.o,$<) -o $@
185
186 # TIDY
187 space := $(subst ,, )
188 comma := ,
189
190 TIDY_ARGS_FINE :=
191 TIDY_ARGS_NONE := --checks="-*,llvm-include-order"
192 TIDY_ARGS_     := --checks="-*,llvm-include-order"
193 TIDY_ARGS_NORMAL := --checks="$(subst $(space),$(comma),$(strip $(TIDY_CHECKS_NORMAL)))"
194 TIDY_ARGS_COARSE := --checks="$(subst $(space),$(comma),$(strip $(TIDY_CHECKS_COARSE)))"
195
196 define process-tidy
197
198 _TARG := $(OUT_DIR)/$1.tidy.ts
199 _DEP := $(SRC_DIR)/$1
200
201 TIDY_DEPS += $(_TARG)
202
203 TIDY_ARGS:=$(TIDY_ARGS_$2)
204
205 $(_TARG): $(_DEP)
206         mkdir -p $(dir $(_TARG))
207         $(CLANG_TIDY) $(_DEP) $(TIDY_ARGS) -- -x c++ $(CXXARGS)
208         touch $(_TARG)
209
210 endef
211
212 $(foreach pair,$(TIDY_FILES),$(eval $(call process-tidy,$(word 1, $(subst :, ,$(pair))),$(word 2, $(subst :, ,$(pair))))))
213
214 #$(warning $(TIDY_DEPS))
215
216 tidy: $(TIDY_DEPS)
217
218 ifneq ($(MAKECMDGOALS), clean)
219 -include $(DEPS)
220 endif