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