1project( 2 'phosphor-ledcontroller', 'cpp', 3 version : '1.0.0', 4 meson_version: '>=0.58.0', 5 default_options: [ 6 'warning_level=3', 7 'werror=true', 8 'cpp_std=c++20', 9 'buildtype=debugoptimized' 10 ] 11) 12 13sdbusplus_dep = dependency('sdbusplus') 14phosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces') 15boost = dependency('boost', include_type: 'system') 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 boost, 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' / 'xyz.openbmc_project.led.controller@.service'], 36 install_dir: systemd.get_variable('systemdsystemunitdir') 37) 38 39sources = [ 40 'controller.cpp', 41 'physical.cpp', 42 'sysfs.cpp', 43] 44 45executable( 46 'phosphor-ledcontroller', 47 sources, 48 implicit_include_directories: true, 49 dependencies: deps, 50 install: true, 51 install_dir: '/usr/libexec/phosphor-led-sysfs' 52) 53 54if get_option('tests').allowed() 55 subdir('test') 56endif 57