199ca880aSopenharmony_ciimport("//build/ohos.gni")
299ca880aSopenharmony_ci
399ca880aSopenharmony_ci## Build libudev.so {{{
499ca880aSopenharmony_ciconfig("libudev_config") {
599ca880aSopenharmony_ci  visibility = [ ":*" ]
699ca880aSopenharmony_ci
799ca880aSopenharmony_ci  include_dirs = [
899ca880aSopenharmony_ci    "src/shared",
999ca880aSopenharmony_ci    "src/libudev",
1099ca880aSopenharmony_ci    "hm_src",
1199ca880aSopenharmony_ci  ]
1299ca880aSopenharmony_ci
1399ca880aSopenharmony_ci  cflags = [
1499ca880aSopenharmony_ci    "-DSIZEOF_PID_T=4",
1599ca880aSopenharmony_ci    "-DSIZEOF_UID_T=4",
1699ca880aSopenharmony_ci    "-DSIZEOF_GID_T=4",
1799ca880aSopenharmony_ci    "-DSIZEOF_TIME_T=8",
1899ca880aSopenharmony_ci    "-DSIZEOF_RLIM_T=8",
1999ca880aSopenharmony_ci    "-DSIZEOF_DEV_T=8",
2099ca880aSopenharmony_ci    "-Wno-macro-redefined",
2199ca880aSopenharmony_ci    "-Wno-unused-parameter",
2299ca880aSopenharmony_ci    "-Wno-unused-variable",
2399ca880aSopenharmony_ci    "-Wno-extern-initializer",
2499ca880aSopenharmony_ci    "-Wno-unused-function",
2599ca880aSopenharmony_ci    "-Wno-implicit-function-declaration",
2699ca880aSopenharmony_ci    "-Wno-int-conversion",
2799ca880aSopenharmony_ci    "-Wno-int-to-pointer-cast",
2899ca880aSopenharmony_ci  ]
2999ca880aSopenharmony_ci}
3099ca880aSopenharmony_ci
3199ca880aSopenharmony_ciconfig("libudev_public_config") {
3299ca880aSopenharmony_ci  include_dirs = [ "export_include" ]
3399ca880aSopenharmony_ci
3499ca880aSopenharmony_ci  cflags = []
3599ca880aSopenharmony_ci}
3699ca880aSopenharmony_ci
3799ca880aSopenharmony_ciohos_shared_library("libudev") {
3899ca880aSopenharmony_ci  sources = [
3999ca880aSopenharmony_ci    "hm_src/log.c",
4099ca880aSopenharmony_ci    "src/libudev/libudev-device-private.c",
4199ca880aSopenharmony_ci    "src/libudev/libudev-device.c",
4299ca880aSopenharmony_ci    "src/libudev/libudev-enumerate.c",
4399ca880aSopenharmony_ci    "src/libudev/libudev-hwdb.c",
4499ca880aSopenharmony_ci    "src/libudev/libudev-list.c",
4599ca880aSopenharmony_ci    "src/libudev/libudev-monitor.c",
4699ca880aSopenharmony_ci    "src/libudev/libudev-queue.c",
4799ca880aSopenharmony_ci    "src/libudev/libudev-util.c",
4899ca880aSopenharmony_ci    "src/libudev/libudev.c",
4999ca880aSopenharmony_ci    "src/shared/MurmurHash2.c",
5099ca880aSopenharmony_ci    "src/shared/conf-files.c",
5199ca880aSopenharmony_ci    "src/shared/dev-setup.c",
5299ca880aSopenharmony_ci    "src/shared/device-nodes.c",
5399ca880aSopenharmony_ci    "src/shared/fileio.c",
5499ca880aSopenharmony_ci    "src/shared/hashmap.c",
5599ca880aSopenharmony_ci    "src/shared/label.c",
5699ca880aSopenharmony_ci    "src/shared/mempool.c",
5799ca880aSopenharmony_ci    "src/shared/mkdir-label.c",
5899ca880aSopenharmony_ci    "src/shared/mkdir.c",
5999ca880aSopenharmony_ci    "src/shared/path-util.c",
6099ca880aSopenharmony_ci    "src/shared/process-util.c",
6199ca880aSopenharmony_ci    "src/shared/random-util.c",
6299ca880aSopenharmony_ci    "src/shared/selinux-util.c",
6399ca880aSopenharmony_ci    "src/shared/siphash24.c",
6499ca880aSopenharmony_ci    "src/shared/smack-util.c",
6599ca880aSopenharmony_ci    "src/shared/strbuf.c",
6699ca880aSopenharmony_ci    "src/shared/strv.c",
6799ca880aSopenharmony_ci    "src/shared/strxcpyx.c",
6899ca880aSopenharmony_ci    "src/shared/sysctl-util.c",
6999ca880aSopenharmony_ci    "src/shared/terminal-util.c",
7099ca880aSopenharmony_ci    "src/shared/time-util.c",
7199ca880aSopenharmony_ci    "src/shared/utf8.c",
7299ca880aSopenharmony_ci    "src/shared/util.c",
7399ca880aSopenharmony_ci    "src/shared/virt.c",
7499ca880aSopenharmony_ci
7599ca880aSopenharmony_ci    # "src/shared/log.c",
7699ca880aSopenharmony_ci  ]
7799ca880aSopenharmony_ci
7899ca880aSopenharmony_ci  configs = [ ":libudev_config" ]
7999ca880aSopenharmony_ci
8099ca880aSopenharmony_ci  public_configs = [ ":libudev_public_config" ]
8199ca880aSopenharmony_ci
8299ca880aSopenharmony_ci  deps = []
8399ca880aSopenharmony_ci
8499ca880aSopenharmony_ci  public_deps = []
8599ca880aSopenharmony_ci
8699ca880aSopenharmony_ci  subsystem_name = "thirdparty"
8799ca880aSopenharmony_ci  part_name = "eudev"
8899ca880aSopenharmony_ci}
8999ca880aSopenharmony_ci
9099ca880aSopenharmony_ci## Build libudev.so }}}
9199ca880aSopenharmony_ci
9299ca880aSopenharmony_ci## Build udevd {{{
9399ca880aSopenharmony_ciconfig("udevd_config") {
9499ca880aSopenharmony_ci  visibility = [ ":*" ]
9599ca880aSopenharmony_ci
9699ca880aSopenharmony_ci  include_dirs = [
9799ca880aSopenharmony_ci    "./src/shared",
9899ca880aSopenharmony_ci    "./src/libudev",
9999ca880aSopenharmony_ci    "./src/udev",
10099ca880aSopenharmony_ci    "./hm_src",
10199ca880aSopenharmony_ci  ]
10299ca880aSopenharmony_ci
10399ca880aSopenharmony_ci  cflags = [
10499ca880aSopenharmony_ci    "-DSIZEOF_PID_T=4",
10599ca880aSopenharmony_ci    "-DSIZEOF_UID_T=4",
10699ca880aSopenharmony_ci    "-DSIZEOF_GID_T=4",
10799ca880aSopenharmony_ci    "-DSIZEOF_TIME_T=8",
10899ca880aSopenharmony_ci    "-DSIZEOF_RLIM_T=8",
10999ca880aSopenharmony_ci    "-DSIZEOF_DEV_T=8",
11099ca880aSopenharmony_ci    "-Wno-unused-parameter",
11199ca880aSopenharmony_ci    "-Wno-missing-field-initializers",
11299ca880aSopenharmony_ci    "-Wno-implicit-function-declaration",
11399ca880aSopenharmony_ci    "-Wno-macro-redefined",
11499ca880aSopenharmony_ci  ]
11599ca880aSopenharmony_ci}
11699ca880aSopenharmony_ci
11799ca880aSopenharmony_ciconfig("udevd_public_config") {
11899ca880aSopenharmony_ci  include_dirs = []
11999ca880aSopenharmony_ci
12099ca880aSopenharmony_ci  cflags = []
12199ca880aSopenharmony_ci}
12299ca880aSopenharmony_ci
12399ca880aSopenharmony_ciohos_executable("udevd") {
12499ca880aSopenharmony_ci  install_enable = true
12599ca880aSopenharmony_ci
12699ca880aSopenharmony_ci  sources = [
12799ca880aSopenharmony_ci    "src/udev/udev-builtin-btrfs.c",
12899ca880aSopenharmony_ci    "src/udev/udev-builtin-hwdb.c",
12999ca880aSopenharmony_ci    "src/udev/udev-builtin-input_id.c",
13099ca880aSopenharmony_ci    "src/udev/udev-builtin-keyboard.c",
13199ca880aSopenharmony_ci    "src/udev/udev-builtin-net_id.c",
13299ca880aSopenharmony_ci    "src/udev/udev-builtin-path_id.c",
13399ca880aSopenharmony_ci    "src/udev/udev-builtin-usb_id.c",
13499ca880aSopenharmony_ci    "src/udev/udev-builtin.c",
13599ca880aSopenharmony_ci    "src/udev/udev-ctrl.c",
13699ca880aSopenharmony_ci    "src/udev/udev-event.c",
13799ca880aSopenharmony_ci    "src/udev/udev-node.c",
13899ca880aSopenharmony_ci    "src/udev/udev-rules.c",
13999ca880aSopenharmony_ci    "src/udev/udev-watch.c",
14099ca880aSopenharmony_ci    "src/udev/udevd.c",
14199ca880aSopenharmony_ci  ]
14299ca880aSopenharmony_ci
14399ca880aSopenharmony_ci  configs = [ ":udevd_config" ]
14499ca880aSopenharmony_ci
14599ca880aSopenharmony_ci  public_configs = [ ":udevd_public_config" ]
14699ca880aSopenharmony_ci
14799ca880aSopenharmony_ci  deps = [ ":libudev" ]
14899ca880aSopenharmony_ci
14999ca880aSopenharmony_ci  public_deps = []
15099ca880aSopenharmony_ci  subsystem_name = "thirdparty"
15199ca880aSopenharmony_ci  part_name = "eudev"
15299ca880aSopenharmony_ci}
15399ca880aSopenharmony_ci
15499ca880aSopenharmony_ci## Build udevd }}}
15599ca880aSopenharmony_ci
15699ca880aSopenharmony_ciohos_executable("udevadm") {
15799ca880aSopenharmony_ci  install_enable = true
15899ca880aSopenharmony_ci
15999ca880aSopenharmony_ci  sources = [
16099ca880aSopenharmony_ci    "src/udev/udev-builtin-btrfs.c",
16199ca880aSopenharmony_ci    "src/udev/udev-builtin-hwdb.c",
16299ca880aSopenharmony_ci    "src/udev/udev-builtin-input_id.c",
16399ca880aSopenharmony_ci    "src/udev/udev-builtin-keyboard.c",
16499ca880aSopenharmony_ci    "src/udev/udev-builtin-net_id.c",
16599ca880aSopenharmony_ci    "src/udev/udev-builtin-path_id.c",
16699ca880aSopenharmony_ci    "src/udev/udev-builtin-usb_id.c",
16799ca880aSopenharmony_ci    "src/udev/udev-builtin.c",
16899ca880aSopenharmony_ci    "src/udev/udev-ctrl.c",
16999ca880aSopenharmony_ci    "src/udev/udev-event.c",
17099ca880aSopenharmony_ci    "src/udev/udev-node.c",
17199ca880aSopenharmony_ci    "src/udev/udev-rules.c",
17299ca880aSopenharmony_ci    "src/udev/udev-watch.c",
17399ca880aSopenharmony_ci    "src/udev/udevadm-control.c",
17499ca880aSopenharmony_ci    "src/udev/udevadm-hwdb.c",
17599ca880aSopenharmony_ci    "src/udev/udevadm-info.c",
17699ca880aSopenharmony_ci    "src/udev/udevadm-monitor.c",
17799ca880aSopenharmony_ci    "src/udev/udevadm-settle.c",
17899ca880aSopenharmony_ci    "src/udev/udevadm-test-builtin.c",
17999ca880aSopenharmony_ci    "src/udev/udevadm-test.c",
18099ca880aSopenharmony_ci    "src/udev/udevadm-trigger.c",
18199ca880aSopenharmony_ci    "src/udev/udevadm-util.c",
18299ca880aSopenharmony_ci    "src/udev/udevadm-util.h",
18399ca880aSopenharmony_ci    "src/udev/udevadm.c",
18499ca880aSopenharmony_ci  ]
18599ca880aSopenharmony_ci
18699ca880aSopenharmony_ci  configs = [ ":udevd_config" ]
18799ca880aSopenharmony_ci
18899ca880aSopenharmony_ci  public_configs = [ ":udevd_public_config" ]
18999ca880aSopenharmony_ci
19099ca880aSopenharmony_ci  deps = [ ":libudev" ]
19199ca880aSopenharmony_ci
19299ca880aSopenharmony_ci  public_deps = []
19399ca880aSopenharmony_ci  subsystem_name = "thirdparty"
19499ca880aSopenharmony_ci  part_name = "eudev"
19599ca880aSopenharmony_ci}
19699ca880aSopenharmony_ci
19799ca880aSopenharmony_ci## Build udevd }}}
19899ca880aSopenharmony_ci
19999ca880aSopenharmony_ciohos_prebuilt_etc("udev_conf") {
20099ca880aSopenharmony_ci  source = "src/udev/udev.conf"
20199ca880aSopenharmony_ci  relative_install_dir = "udev"
20299ca880aSopenharmony_ci  subsystem_name = "thirdparty"
20399ca880aSopenharmony_ci  part_name = "eudev"
20499ca880aSopenharmony_ci}
20599ca880aSopenharmony_ci
20699ca880aSopenharmony_ciohos_prebuilt_etc("udev_touchscreen_rule") {
20799ca880aSopenharmony_ci  source = "rules.d/touchscreen.rules"
20899ca880aSopenharmony_ci  relative_install_dir = "udev/rules.d"
20999ca880aSopenharmony_ci  subsystem_name = "thirdparty"
21099ca880aSopenharmony_ci  part_name = "eudev"
21199ca880aSopenharmony_ci}
21299ca880aSopenharmony_ci
21399ca880aSopenharmony_ciohos_prebuilt_etc("udev_vk_rule") {
21499ca880aSopenharmony_ci  source = "rules.d/vk.rules"
21599ca880aSopenharmony_ci  relative_install_dir = "udev/rules.d"
21699ca880aSopenharmony_ci  subsystem_name = "thirdparty"
21799ca880aSopenharmony_ci  part_name = "eudev"
21899ca880aSopenharmony_ci}
21999ca880aSopenharmony_ci
22099ca880aSopenharmony_ci## Install udevd.rc to /system/etc/init/udevd.rc {{{
22199ca880aSopenharmony_ciohos_prebuilt_etc("udevd.rc") {
22299ca880aSopenharmony_ci  source = "udevd.rc"
22399ca880aSopenharmony_ci  relative_install_dir = "init"
22499ca880aSopenharmony_ci  subsystem_name = "thirdparty"
22599ca880aSopenharmony_ci  part_name = "eudev"
22699ca880aSopenharmony_ci}
22799ca880aSopenharmony_ci## Install udevd.rc to /system/etc/init/udevd.rc }}}
228