xref: /third_party/libinput/BUILD.gn (revision a46c0ec8)
1# Copyright (c) 2021-2024 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6#     http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14import("//build/ohos.gni")
15
16gen_dst_dir = root_out_dir + "/diff_libinput_mmi"
17
18config("libinput-third_config") {
19  visibility = [ ":*" ]
20
21  include_dirs = [
22    "$gen_dst_dir/src",
23    "$gen_dst_dir/include",
24    "$gen_dst_dir/hm_src",
25  ]
26
27  cflags = [
28    "-Wno-unused-parameter",
29    "-Wno-implicit-int",
30    "-Wno-return-type",
31    "-Wno-unused-function",
32    "-Wno-string-conversion",
33    "-DHAVE_LIBINPUT_LOG_CONSOLE_ENABLE",
34    "-DHAVE_LIBINPUT_LOG_ENABLE",
35  ]
36}
37
38config("libinput-third_public_config") {
39  include_dirs = [
40    "$gen_dst_dir/export_include",
41    "$gen_dst_dir/include",
42    "$gen_dst_dir/src",
43  ]
44
45  cflags = []
46}
47
48ohos_source_set("patch_gen_libinput-third-mmi") {
49  part_name = "input"
50  subsystem_name = "multimodalinput"
51  sources = [
52    root_out_dir + "/diff_libinput_mmi/src/evdev-debounce.c",
53    root_out_dir + "/diff_libinput_mmi/src/evdev-fallback.c",
54    root_out_dir + "/diff_libinput_mmi/src/evdev-joystick.c",
55    root_out_dir + "/diff_libinput_mmi/src/evdev-privacy-switch.c",
56    root_out_dir + "/diff_libinput_mmi/src/evdev-middle-button.c",
57    root_out_dir + "/diff_libinput_mmi/src/evdev-mt-touchpad-buttons.c",
58    root_out_dir + "/diff_libinput_mmi/src/evdev-mt-touchpad-edge-scroll.c",
59    root_out_dir + "/diff_libinput_mmi/src/evdev-mt-touchpad-gestures.c",
60    root_out_dir + "/diff_libinput_mmi/src/evdev-mt-touchpad-tap.c",
61    root_out_dir + "/diff_libinput_mmi/src/evdev-mt-touchpad-thumb.c",
62    root_out_dir + "/diff_libinput_mmi/src/evdev-mt-touchpad.c",
63    root_out_dir + "/diff_libinput_mmi/src/evdev-tablet-pad-leds.c",
64    root_out_dir + "/diff_libinput_mmi/src/evdev-tablet-pad.c",
65    root_out_dir + "/diff_libinput_mmi/src/evdev-tablet.c",
66    root_out_dir + "/diff_libinput_mmi/src/evdev-totem.c",
67    root_out_dir + "/diff_libinput_mmi/src/evdev-wheel.c",
68    root_out_dir + "/diff_libinput_mmi/src/evdev.c",
69    root_out_dir + "/diff_libinput_mmi/src/filter-custom.c",
70    root_out_dir + "/diff_libinput_mmi/src/filter-flat.c",
71    root_out_dir + "/diff_libinput_mmi/src/filter-low-dpi.c",
72    root_out_dir + "/diff_libinput_mmi/src/filter-mouse.c",
73    root_out_dir + "/diff_libinput_mmi/src/filter-tablet.c",
74    root_out_dir + "/diff_libinput_mmi/src/filter-touchpad-flat.c",
75    root_out_dir + "/diff_libinput_mmi/src/filter-touchpad-x230.c",
76    root_out_dir + "/diff_libinput_mmi/src/filter-touchpad.c",
77    root_out_dir + "/diff_libinput_mmi/src/filter-trackpoint-flat.c",
78    root_out_dir + "/diff_libinput_mmi/src/filter-trackpoint.c",
79    root_out_dir + "/diff_libinput_mmi/src/filter.c",
80    root_out_dir + "/diff_libinput_mmi/src/libinput-util.c",
81    root_out_dir + "/diff_libinput_mmi/src/libinput.c",
82    root_out_dir + "/diff_libinput_mmi/src/path-seat.c",
83    root_out_dir + "/diff_libinput_mmi/src/quirks.c",
84    root_out_dir + "/diff_libinput_mmi/src/timer.c",
85    root_out_dir + "/diff_libinput_mmi/src/util-list.c",
86    root_out_dir + "/diff_libinput_mmi/src/util-prop-parsers.c",
87    root_out_dir + "/diff_libinput_mmi/src/util-ratelimit.c",
88    root_out_dir + "/diff_libinput_mmi/src/util-strings.c",
89  ]
90  branch_protector_ret = "pac_ret"
91  sanitize = {
92    cfi = true
93    cfi_cross_dso = true
94    debug = false
95  }
96  configs = [ ":libinput-third_config" ]
97
98  public_configs = [ ":libinput-third_public_config" ]
99
100  deps = [ "//third_party/libinput/patch:apply_patch" ]
101
102  public_external_deps = [
103    "input:mmi_libudev",
104    "libevdev:libevdev",
105    "mtdev:libmtdev-third-mmi",
106  ]
107}
108
109ohos_shared_library("libinput-third-mmi") {
110  sources = []
111  branch_protector_ret = "pac_ret"
112  sanitize = {
113    cfi = true
114    cfi_cross_dso = true
115    debug = false
116  }
117  configs = [ ":libinput-third_config" ]
118
119  public_configs = [ ":libinput-third_public_config" ]
120
121  deps = [ ":patch_gen_libinput-third-mmi" ]
122
123  public_external_deps = [
124    "input:mmi_libudev",
125    "libevdev:libevdev",
126    "mtdev:libmtdev-third-mmi",
127  ]
128
129  external_deps = [ "hilog:libhilog" ]
130  license_file = "//third_party/libinput/COPYING"
131  part_name = "input"
132  subsystem_name = "multimodalinput"
133}
134
135ohos_source_set("patch_gen_libinput-debug") {
136  part_name = "input"
137  subsystem_name = "multimodalinput"
138  sources = [
139    "$gen_dst_dir/tools/libinput-debug-events.c",
140    "$gen_dst_dir/tools/shared.c",
141    "$gen_dst_dir/tools/shared.h",
142  ]
143  branch_protector_ret = "pac_ret"
144  sanitize = {
145    cfi = true
146    cfi_cross_dso = true
147    debug = false
148  }
149  configs = [ ":libinput-third_config" ]
150
151  public_configs = [ ":libinput-third_public_config" ]
152
153  deps = [ "//third_party/libinput/patch:apply_patch" ]
154
155  public_external_deps = [
156    "input:mmi_libudev",
157    "libevdev:libevdev",
158    "mtdev:libmtdev-third-mmi",
159  ]
160}
161
162ohos_executable("libinput-debug-mmi") {
163  install_enable = true
164
165  sources = []
166  branch_protector_ret = "pac_ret"
167  sanitize = {
168    cfi = true
169    cfi_cross_dso = true
170    debug = false
171  }
172  configs = [ ":libinput-third_config" ]
173
174  public_configs = [ ":libinput-third_public_config" ]
175
176  deps = [
177    ":libinput-third-mmi",
178    ":patch_gen_libinput-debug",
179  ]
180
181  public_external_deps = [
182    "input:mmi_libudev",
183    "libevdev:libevdev",
184    "mtdev:libmtdev-third-mmi",
185  ]
186
187  part_name = "input"
188  subsystem_name = "multimodalinput"
189}
190
191ohos_source_set("patch_gen_libinput-list") {
192  part_name = "input"
193  subsystem_name = "multimodalinput"
194  sources = [
195    "$gen_dst_dir/tools/libinput-list-devices.c",
196    "$gen_dst_dir/tools/shared.c",
197    "$gen_dst_dir/tools/shared.h",
198  ]
199  branch_protector_ret = "pac_ret"
200  sanitize = {
201    cfi = true
202    cfi_cross_dso = true
203    debug = false
204  }
205  configs = [ ":libinput-third_config" ]
206
207  public_configs = [ ":libinput-third_public_config" ]
208
209  deps = [ "//third_party/libinput/patch:apply_patch" ]
210
211  public_external_deps = [
212    "input:mmi_libudev",
213    "libevdev:libevdev",
214    "mtdev:libmtdev-third-mmi",
215  ]
216}
217
218ohos_executable("libinput-list-mmi") {
219  install_enable = true
220
221  sources = []
222  branch_protector_ret = "pac_ret"
223  sanitize = {
224    cfi = true
225    cfi_cross_dso = true
226    debug = false
227  }
228  configs = [ ":libinput-third_config" ]
229
230  public_configs = [ ":libinput-third_public_config" ]
231
232  deps = [
233    ":libinput-third-mmi",
234    ":patch_gen_libinput-list",
235  ]
236
237  public_external_deps = [
238    "input:mmi_libudev",
239    "libevdev:libevdev",
240    "mtdev:libmtdev-third-mmi",
241  ]
242
243  part_name = "input"
244  subsystem_name = "multimodalinput"
245}
246
247ohos_source_set("patch_gen_libinput-tablet") {
248  part_name = "input"
249  subsystem_name = "multimodalinput"
250  sources = [
251    "$gen_dst_dir/tools/libinput-debug-tablet.c",
252    "$gen_dst_dir/tools/shared.c",
253    "$gen_dst_dir/tools/shared.h",
254  ]
255  branch_protector_ret = "pac_ret"
256  sanitize = {
257    cfi = true
258    cfi_cross_dso = true
259    debug = false
260  }
261  configs = [ ":libinput-third_config" ]
262
263  public_configs = [ ":libinput-third_public_config" ]
264
265  deps = [ "//third_party/libinput/patch:apply_patch" ]
266
267  public_external_deps = [
268    "input:mmi_libudev",
269    "libevdev:libevdev",
270    "mtdev:libmtdev-third-mmi",
271  ]
272}
273
274ohos_executable("libinput-tablet-mmi") {
275  install_enable = true
276
277  sources = []
278  branch_protector_ret = "pac_ret"
279  sanitize = {
280    cfi = true
281    cfi_cross_dso = true
282    debug = false
283  }
284  configs = [ ":libinput-third_config" ]
285
286  public_configs = [ ":libinput-third_public_config" ]
287
288  deps = [
289    ":libinput-third-mmi",
290    ":patch_gen_libinput-tablet",
291  ]
292
293  public_external_deps = [
294    "input:mmi_libudev",
295    "libevdev:libevdev",
296    "mtdev:libmtdev-third-mmi",
297  ]
298
299  part_name = "input"
300  subsystem_name = "multimodalinput"
301}
302
303ohos_source_set("patch_gen_libinput-record") {
304  part_name = "input"
305  subsystem_name = "multimodalinput"
306  sources = [
307    "$gen_dst_dir/hm_src/hm_missing.c",
308    "$gen_dst_dir/tools/libinput-record.c",
309    "$gen_dst_dir/tools/shared.c",
310    "$gen_dst_dir/tools/shared.h",
311  ]
312  branch_protector_ret = "pac_ret"
313  sanitize = {
314    cfi = true
315    cfi_cross_dso = true
316    debug = false
317  }
318  configs = [ ":libinput-third_config" ]
319
320  public_configs = [ ":libinput-third_public_config" ]
321
322  deps = [ "//third_party/libinput/patch:apply_patch" ]
323
324  public_external_deps = [
325    "input:mmi_libudev",
326    "libevdev:libevdev",
327    "mtdev:libmtdev-third-mmi",
328  ]
329}
330
331ohos_executable("libinput-record-mmi") {
332  install_enable = true
333
334  sources = []
335  branch_protector_ret = "pac_ret"
336  sanitize = {
337    cfi = true
338    cfi_cross_dso = true
339    debug = false
340  }
341  configs = [ ":libinput-third_config" ]
342
343  public_configs = [ ":libinput-third_public_config" ]
344
345  deps = [
346    ":libinput-third-mmi",
347    ":patch_gen_libinput-record",
348  ]
349
350  public_external_deps = [
351    "input:mmi_libudev",
352    "libevdev:libevdev",
353    "mtdev:libmtdev-third-mmi",
354  ]
355
356  part_name = "input"
357  subsystem_name = "multimodalinput"
358}
359
360ohos_source_set("patch_gen_libinput-analyze") {
361  part_name = "input"
362  subsystem_name = "multimodalinput"
363  sources = [
364    "$gen_dst_dir/tools/libinput-analyze.c",
365    "$gen_dst_dir/tools/shared.c",
366    "$gen_dst_dir/tools/shared.h",
367  ]
368  branch_protector_ret = "pac_ret"
369  sanitize = {
370    cfi = true
371    cfi_cross_dso = true
372    debug = false
373  }
374  configs = [ ":libinput-third_config" ]
375
376  public_configs = [ ":libinput-third_public_config" ]
377
378  deps = [ "//third_party/libinput/patch:apply_patch" ]
379
380  public_external_deps = [
381    "input:mmi_libudev",
382    "libevdev:libevdev",
383    "mtdev:libmtdev-third-mmi",
384  ]
385}
386
387ohos_executable("libinput-analyze-mmi") {
388  install_enable = true
389
390  sources = []
391  branch_protector_ret = "pac_ret"
392  sanitize = {
393    cfi = true
394    cfi_cross_dso = true
395    debug = false
396  }
397  configs = [ ":libinput-third_config" ]
398
399  public_configs = [ ":libinput-third_public_config" ]
400
401  deps = [
402    ":libinput-third-mmi",
403    ":patch_gen_libinput-analyze",
404  ]
405
406  public_external_deps = [
407    "input:mmi_libudev",
408    "libevdev:libevdev",
409    "mtdev:libmtdev-third-mmi",
410  ]
411
412  part_name = "input"
413  subsystem_name = "multimodalinput"
414}
415
416ohos_source_set("patch_gen_libinput-measure") {
417  part_name = "input"
418  subsystem_name = "multimodalinput"
419  sources = [
420    "$gen_dst_dir/tools/libinput-measure.c",
421    "$gen_dst_dir/tools/shared.c",
422    "$gen_dst_dir/tools/shared.h",
423  ]
424  branch_protector_ret = "pac_ret"
425  sanitize = {
426    cfi = true
427    cfi_cross_dso = true
428    debug = false
429  }
430  configs = [ ":libinput-third_config" ]
431
432  public_configs = [ ":libinput-third_public_config" ]
433
434  deps = [ "//third_party/libinput/patch:apply_patch" ]
435
436  public_external_deps = [
437    "input:mmi_libudev",
438    "libevdev:libevdev",
439    "mtdev:libmtdev-third-mmi",
440  ]
441}
442
443ohos_executable("libinput-measure-mmi") {
444  install_enable = true
445
446  sources = []
447  branch_protector_ret = "pac_ret"
448  sanitize = {
449    cfi = true
450    cfi_cross_dso = true
451    debug = false
452  }
453  configs = [ ":libinput-third_config" ]
454
455  public_configs = [ ":libinput-third_public_config" ]
456
457  deps = [
458    ":libinput-third-mmi",
459    ":patch_gen_libinput-measure",
460  ]
461
462  public_external_deps = [
463    "input:mmi_libudev",
464    "libevdev:libevdev",
465    "mtdev:libmtdev-third-mmi",
466  ]
467
468  part_name = "input"
469  subsystem_name = "multimodalinput"
470}
471
472ohos_source_set("patch_gen_libinput-quirks") {
473  part_name = "input"
474  subsystem_name = "multimodalinput"
475  sources = [
476    "$gen_dst_dir/tools/libinput-quirks.c",
477    "$gen_dst_dir/tools/shared.c",
478    "$gen_dst_dir/tools/shared.h",
479  ]
480  branch_protector_ret = "pac_ret"
481  sanitize = {
482    cfi = true
483    cfi_cross_dso = true
484    debug = false
485  }
486  configs = [ ":libinput-third_config" ]
487
488  public_configs = [ ":libinput-third_public_config" ]
489
490  deps = [ "//third_party/libinput/patch:apply_patch" ]
491
492  public_external_deps = [
493    "input:mmi_libudev",
494    "libevdev:libevdev",
495    "mtdev:libmtdev-third-mmi",
496  ]
497}
498
499ohos_executable("libinput-quirks-mmi") {
500  install_enable = true
501
502  sources = []
503  branch_protector_ret = "pac_ret"
504  sanitize = {
505    cfi = true
506    cfi_cross_dso = true
507    debug = false
508  }
509  configs = [ ":libinput-third_config" ]
510
511  public_configs = [ ":libinput-third_public_config" ]
512
513  deps = [
514    ":libinput-third-mmi",
515    ":patch_gen_libinput-quirks",
516  ]
517
518  public_external_deps = [
519    "input:mmi_libudev",
520    "libevdev:libevdev",
521    "mtdev:libmtdev-third-mmi",
522  ]
523
524  part_name = "input"
525  subsystem_name = "multimodalinput"
526}
527