1d6a1bae7SGeorge Liuproject( 2d6a1bae7SGeorge Liu 'phosphor-buttons', 'cpp', 3d6a1bae7SGeorge Liu version: '1.0.0', 410bc3aebSPatrick Williams meson_version: '>=1.1.1', 5d6a1bae7SGeorge Liu default_options: [ 6d6a1bae7SGeorge Liu 'warning_level=3', 7d6a1bae7SGeorge Liu 'werror=true', 810bc3aebSPatrick Williams 'cpp_std=c++23', 9d6a1bae7SGeorge Liu ] 10d6a1bae7SGeorge Liu) 11d6a1bae7SGeorge Liu 12d6a1bae7SGeorge Liuconf_data = configuration_data() 13d6a1bae7SGeorge Liuconf_data.set_quoted('ID_LED_GROUP', get_option('id-led-group')) 141a309f77SMatt Spinlerconf_data.set_quoted('POWER_BUTTON_PROFILE', get_option('power-button-profile')) 15f756f8b0SGeorge Liuconf_data.set('LONG_PRESS_TIME_MS', get_option('long-press-time-ms')) 1688f20387SPatrick Williamsconf_data.set('LOOKUP_GPIO_BASE', get_option('lookup-gpio-base').allowed()) 1788f20387SPatrick Williamsconf_data.set('ENABLE_RESET_BUTTON_DO_WARM_REBOOT', get_option('reset-button-do-warm-reboot').allowed()) 18d6a1bae7SGeorge Liu 19*3e30b7a6SDelphine CC Chiuconfigure_file( 20*3e30b7a6SDelphine CC Chiu input: 'meson_config.hpp.in', 21*3e30b7a6SDelphine CC Chiu output: 'config.hpp', 22d6a1bae7SGeorge Liu configuration: conf_data 23d6a1bae7SGeorge Liu) 24d6a1bae7SGeorge Liu 257824da46SPatrick Williamsgpioplus_dep = dependency('gpioplus') 267824da46SPatrick Williamsnlohmann_json_dep = dependency('nlohmann_json', include_type: 'system') 27d6a1bae7SGeorge Liuphosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces') 28d6a1bae7SGeorge Liuphosphor_logging_dep = dependency('phosphor-logging') 297824da46SPatrick Williamssdbusplus_dep = dependency('sdbusplus') 307824da46SPatrick Williamssdeventplus_dep = dependency('sdeventplus') 31d6a1bae7SGeorge Liu 32d6a1bae7SGeorge Liudeps = [ 33d6a1bae7SGeorge Liu sdbusplus_dep, 34d6a1bae7SGeorge Liu phosphor_dbus_interfaces_dep, 35d6a1bae7SGeorge Liu phosphor_logging_dep, 36d6a1bae7SGeorge Liu nlohmann_json_dep, 37d6a1bae7SGeorge Liu gpioplus_dep, 389479b06cSMatt Spinler sdeventplus_dep, 39d6a1bae7SGeorge Liu] 40d6a1bae7SGeorge Liu 41d6a1bae7SGeorge Liusources_buttons = [ 42d6a1bae7SGeorge Liu 'src/gpio.cpp', 43ccd7db05SDelphine CC Chiu 'src/cpld.cpp', 44d6a1bae7SGeorge Liu 'src/hostSelector_switch.cpp', 45a6d4e65dSNaveen Moses 'src/debugHostSelector_button.cpp', 46d219fa3cSNaveen Moses 'src/serial_uart_mux.cpp', 47d6a1bae7SGeorge Liu 'src/id_button.cpp', 48d6a1bae7SGeorge Liu 'src/main.cpp', 49d6a1bae7SGeorge Liu 'src/power_button.cpp', 50d6a1bae7SGeorge Liu 'src/reset_button.cpp', 51d6a1bae7SGeorge Liu] 52d6a1bae7SGeorge Liu 53d6a1bae7SGeorge Liusources_handler = [ 54d6a1bae7SGeorge Liu 'src/button_handler_main.cpp', 55d6a1bae7SGeorge Liu 'src/button_handler.cpp', 561a309f77SMatt Spinler 'src/host_then_chassis_poweroff.cpp', 57d6a1bae7SGeorge Liu] 58d6a1bae7SGeorge Liu 59d6a1bae7SGeorge Liuexecutable( 60d6a1bae7SGeorge Liu 'buttons', 61d6a1bae7SGeorge Liu sources_buttons, 62d6a1bae7SGeorge Liu implicit_include_directories: true, 63d6a1bae7SGeorge Liu include_directories: ['inc'], 64d6a1bae7SGeorge Liu dependencies: deps, 65d6a1bae7SGeorge Liu install: true, 66d6a1bae7SGeorge Liu install_dir: get_option('bindir') 67d6a1bae7SGeorge Liu) 68d6a1bae7SGeorge Liu 69d6a1bae7SGeorge Liuexecutable( 70d6a1bae7SGeorge Liu 'button-handler', 71d6a1bae7SGeorge Liu sources_handler, 72d6a1bae7SGeorge Liu implicit_include_directories: true, 73d6a1bae7SGeorge Liu include_directories: ['inc'], 74d6a1bae7SGeorge Liu dependencies: deps, 75d6a1bae7SGeorge Liu install: true, 76d6a1bae7SGeorge Liu install_dir: get_option('bindir') 77d6a1bae7SGeorge Liu) 78d6a1bae7SGeorge Liu 79d6a1bae7SGeorge Liusystemd = dependency('systemd') 80d6a1bae7SGeorge Liusystemd_system_unit_dir = systemd.get_variable( 8106b10603SPatrick Williams 'systemdsystemunitdir', 82d6a1bae7SGeorge Liu pkgconfig_define: ['prefix', get_option('prefix')]) 83d6a1bae7SGeorge Liu 8470a0dc8bSGeorge Liufs = import('fs') 8570a0dc8bSGeorge Liufs.copyfile( 8670a0dc8bSGeorge Liu 'service_files/phosphor-button-handler.service', 8770a0dc8bSGeorge Liu install: true, 8870a0dc8bSGeorge Liu install_dir: systemd_system_unit_dir 8970a0dc8bSGeorge Liu) 9070a0dc8bSGeorge Liufs.copyfile( 9170a0dc8bSGeorge Liu 'service_files/xyz.openbmc_project.Chassis.Buttons.service', 9270a0dc8bSGeorge Liu install: true, 9370a0dc8bSGeorge Liu install_dir: systemd_system_unit_dir 9470a0dc8bSGeorge Liu) 95