blob: 02ea2f26f2b42016ebe9e98c0501f335d2de1742 [file] [log] [blame]
George Liuc7d70b62021-05-17 16:02:18 +08001project(
Patrick Williams2f51f1a2025-02-01 08:37:23 -05002 'phosphor-ledcontroller',
3 'cpp',
4 version: '1.0.0',
Patrick Williams2b50fa62023-07-17 10:07:11 -05005 meson_version: '>=1.1.1',
George Liuc7d70b62021-05-17 16:02:18 +08006 default_options: [
7 'warning_level=3',
8 'werror=true',
Patrick Williams2b50fa62023-07-17 10:07:11 -05009 'cpp_std=c++23',
Patrick Williams2f51f1a2025-02-01 08:37:23 -050010 'buildtype=debugoptimized',
11 ],
George Liuc7d70b62021-05-17 16:02:18 +080012)
13
George Liu3c894262021-12-28 10:32:49 +080014sdbusplus_dep = dependency('sdbusplus')
15phosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces')
Jayashree Dhanapalb6779842022-10-07 13:34:16 +053016phosphor_logging_dep = dependency('phosphor-logging')
George Liueaa1c892023-08-03 16:19:51 +080017
18cxx = meson.get_compiler('cpp')
19if cxx.has_header('CLI/CLI.hpp')
20 cli11_dep = declare_dependency()
21else
22 cli11_dep = dependency('CLI11')
23endif
24
George Liuc7d70b62021-05-17 16:02:18 +080025deps = [
George Liueaa1c892023-08-03 16:19:51 +080026 cli11_dep,
George Liuc7d70b62021-05-17 16:02:18 +080027 sdbusplus_dep,
28 phosphor_dbus_interfaces_dep,
Jayashree Dhanapalb6779842022-10-07 13:34:16 +053029 phosphor_logging_dep,
George Liuc7d70b62021-05-17 16:02:18 +080030]
31
Patrick Williams3778f8e2023-04-12 08:01:18 -050032udevdir = dependency('udev').get_variable('udevdir')
Patrick Williams2f51f1a2025-02-01 08:37:23 -050033install_data(
34 ['udev' / 'rules.d' / '70-leds.rules'],
35 install_dir: udevdir / 'rules.d',
36)
Jayashree Dhanapal3930b6b2022-09-20 17:08:15 +053037
38systemd = dependency('systemd')
Patrick Williams2f51f1a2025-02-01 08:37:23 -050039install_data(
40 ['systemd' / 'system' / 'phosphor-ledcontroller.service'],
41 install_dir: systemd.get_variable(pkgconfig: 'systemdsystemunitdir'),
Jayashree Dhanapalb6779842022-10-07 13:34:16 +053042)
Patrick Williams2f51f1a2025-02-01 08:37:23 -050043install_data(
44 ['systemd' / 'system' / 'sysfs-led@.service'],
45 install_dir: systemd.get_variable(pkgconfig: 'systemdsystemunitdir'),
Jayashree Dhanapalb6779842022-10-07 13:34:16 +053046)
47
48dbus = dependency('dbus-1')
Patrick Williams2f51f1a2025-02-01 08:37:23 -050049install_data(
50 [
51 'dbus-1' / 'system-services' / 'xyz.openbmc_project.LED.Controller.service',
52 ],
53 install_dir: dbus.get_variable(pkgconfig: 'system_bus_services_dir'),
Jayashree Dhanapal3930b6b2022-09-20 17:08:15 +053054)
55
George Liuc7d70b62021-05-17 16:02:18 +080056sources = [
Jayashree Dhanapalb6779842022-10-07 13:34:16 +053057 'interfaces/internal_interface.cpp',
George Liuc7d70b62021-05-17 16:02:18 +080058 'controller.cpp',
59 'physical.cpp',
60 'sysfs.cpp',
61]
62
63executable(
64 'phosphor-ledcontroller',
65 sources,
66 implicit_include_directories: true,
67 dependencies: deps,
68 install: true,
Patrick Williams2f51f1a2025-02-01 08:37:23 -050069 install_dir: '/usr/libexec/phosphor-led-sysfs',
George Liuc7d70b62021-05-17 16:02:18 +080070)
71
Jayashree Dhanapalb6779842022-10-07 13:34:16 +053072executable(
73 'add-led-action',
74 'argument.cpp',
75 'add_led_action.cpp',
76 implicit_include_directories: true,
77 dependencies: deps,
78 install: true,
Patrick Williams2f51f1a2025-02-01 08:37:23 -050079 install_dir: '/usr/libexec/phosphor-led-sysfs',
Jayashree Dhanapalb6779842022-10-07 13:34:16 +053080)
81
82build_tests = get_option('tests')
Patrick Williamsb851ddf2025-01-30 17:47:46 -050083if build_tests.allowed()
Patrick Williams2f51f1a2025-02-01 08:37:23 -050084 subdir('test')
George Liuc7d70b62021-05-17 16:02:18 +080085endif