xref: /openbmc/phosphor-led-sysfs/meson.build (revision a16bef7d)
1project(
2    'phosphor-ledcontroller', 'cpp',
3    version : '1.0.0',
4    meson_version: '>=1.1.1',
5    default_options: [
6        'warning_level=3',
7        'werror=true',
8        'cpp_std=c++23',
9        'buildtype=debugoptimized'
10    ]
11)
12
13sdbusplus_dep = dependency('sdbusplus')
14phosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces')
15phosphor_logging_dep = dependency('phosphor-logging')
16
17cxx = meson.get_compiler('cpp')
18if cxx.has_header('CLI/CLI.hpp')
19    cli11_dep = declare_dependency()
20else
21    cli11_dep = dependency('CLI11')
22endif
23
24deps = [
25    cli11_dep,
26    sdbusplus_dep,
27    phosphor_dbus_interfaces_dep,
28    phosphor_logging_dep,
29]
30
31udevdir = dependency('udev').get_variable('udevdir')
32install_data(['udev' / 'rules.d' / '70-leds.rules'], install_dir : udevdir / 'rules.d')
33
34systemd = dependency('systemd')
35install_data(['systemd' / 'system' / 'phosphor-ledcontroller.service'],
36             install_dir: systemd.get_variable(pkgconfig: 'systemdsystemunitdir')
37)
38install_data(['systemd' / 'system' / 'sysfs-led@.service'],
39             install_dir: systemd.get_variable(pkgconfig: 'systemdsystemunitdir')
40)
41
42dbus = dependency('dbus-1')
43install_data(['dbus-1' / 'system-services' / 'xyz.openbmc_project.LED.Controller.service'],
44             install_dir: dbus.get_variable(pkgconfig: 'system_bus_services_dir')
45)
46
47sources = [
48    'interfaces/internal_interface.cpp',
49    'controller.cpp',
50    'physical.cpp',
51    'sysfs.cpp',
52]
53
54executable(
55    'phosphor-ledcontroller',
56    sources,
57    implicit_include_directories: true,
58    dependencies: deps,
59    install: true,
60    install_dir: '/usr/libexec/phosphor-led-sysfs'
61)
62
63executable(
64    'add-led-action',
65    'argument.cpp',
66    'add_led_action.cpp',
67    implicit_include_directories: true,
68    dependencies: deps,
69    install: true,
70    install_dir: '/usr/libexec/phosphor-led-sysfs'
71)
72
73build_tests = get_option('tests')
74if build_tests.enabled()
75  subdir('test')
76endif
77