1d6a1bae7SGeorge Liuproject( 2d6a1bae7SGeorge Liu 'phosphor-buttons', 'cpp', 3d6a1bae7SGeorge Liu version: '1.0.0', 4d6a1bae7SGeorge Liu meson_version: '>=0.58.0', 5d6a1bae7SGeorge Liu default_options: [ 6d6a1bae7SGeorge Liu 'warning_level=3', 7d6a1bae7SGeorge Liu 'werror=true', 8d6a1bae7SGeorge Liu 'cpp_std=c++20', 9d6a1bae7SGeorge Liu ] 10d6a1bae7SGeorge Liu) 11d6a1bae7SGeorge Liu 12d6a1bae7SGeorge Liuconf_data = configuration_data() 13d6a1bae7SGeorge Liuconf_data.set_quoted('POWER_DBUS_OBJECT_NAME', 'xyz/openbmc_project/Chassis/Buttons/Power') 14d6a1bae7SGeorge Liuconf_data.set_quoted('RESET_DBUS_OBJECT_NAME', 'xyz/openbmc_project/Chassis/Buttons/Reset') 15d6a1bae7SGeorge Liuconf_data.set_quoted('ID_DBUS_OBJECT_NAME', 'xyz/openbmc_project/Chassis/Buttons/ID') 16d6a1bae7SGeorge Liuconf_data.set_quoted('HS_DBUS_OBJECT_NAME', 'xyz/openbmc_project/Chassis/Buttons/HostSelector') 17d6a1bae7SGeorge Liuconf_data.set_quoted('GPIO_BASE_LABEL_NAME', '/com/inspur/cpld/motherboard/acfail') 18d6a1bae7SGeorge Liuconf_data.set_quoted('BUTTON_PATH', '1e780000.gpio') 19d6a1bae7SGeorge Liuconf_data.set_quoted('CHASSIS_STATE_OBJECT_NAME', 'xyz/openbmc_project/state/chassis') 20d6a1bae7SGeorge Liuconf_data.set_quoted('CHASSISSYSTEM_STATE_OBJECT_NAME', 'xyz/openbmc_project/state/chassis_system') 21d6a1bae7SGeorge Liuconf_data.set_quoted('HOST_STATE_OBJECT_NAME', 'xyz/openbmc_project/state/host') 22d6a1bae7SGeorge Liuconf_data.set_quoted('ID_LED_GROUP', get_option('id-led-group')) 23d6a1bae7SGeorge Liu 24*f756f8b0SGeorge Liuconf_data.set('LONG_PRESS_TIME_MS', get_option('long-press-time-ms')) 25d6a1bae7SGeorge Liu 26d6a1bae7SGeorge Liuconfigure_file(output: 'config.h', 27d6a1bae7SGeorge Liu configuration: conf_data 28d6a1bae7SGeorge Liu) 29d6a1bae7SGeorge Liu 30d6a1bae7SGeorge Liusdbusplus_dep = dependency('sdbusplus') 31d6a1bae7SGeorge Liuphosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces') 32d6a1bae7SGeorge Liuphosphor_logging_dep = dependency('phosphor-logging') 33d6a1bae7SGeorge Liugpioplus_dep = dependency('gpioplus') 34d6a1bae7SGeorge Liu 35d6a1bae7SGeorge Liucpp = meson.get_compiler('cpp') 36d6a1bae7SGeorge Liuif cpp.has_header_symbol( 37d6a1bae7SGeorge Liu 'nlohmann/json.hpp', 38d6a1bae7SGeorge Liu 'nlohmann::json::string_t', 39d6a1bae7SGeorge Liu required:false) 40d6a1bae7SGeorge Liu nlohmann_json_dep = declare_dependency() 41d6a1bae7SGeorge Liuelse 42d6a1bae7SGeorge Liu nlohmann_json_dep = dependency('nlohmann-json') 43d6a1bae7SGeorge Liuendif 44d6a1bae7SGeorge Liu 45d6a1bae7SGeorge Liudeps = [ 46d6a1bae7SGeorge Liu sdbusplus_dep, 47d6a1bae7SGeorge Liu phosphor_dbus_interfaces_dep, 48d6a1bae7SGeorge Liu phosphor_logging_dep, 49d6a1bae7SGeorge Liu nlohmann_json_dep, 50d6a1bae7SGeorge Liu gpioplus_dep, 51d6a1bae7SGeorge Liu] 52d6a1bae7SGeorge Liu 53d6a1bae7SGeorge Liusources_buttons = [ 54d6a1bae7SGeorge Liu 'src/gpio.cpp', 55d6a1bae7SGeorge Liu 'src/hostSelector_switch.cpp', 56d6a1bae7SGeorge Liu 'src/id_button.cpp', 57d6a1bae7SGeorge Liu 'src/main.cpp', 58d6a1bae7SGeorge Liu 'src/power_button.cpp', 59d6a1bae7SGeorge Liu 'src/reset_button.cpp', 60d6a1bae7SGeorge Liu] 61d6a1bae7SGeorge Liu 62d6a1bae7SGeorge Liusources_handler = [ 63d6a1bae7SGeorge Liu 'src/button_handler_main.cpp', 64d6a1bae7SGeorge Liu 'src/button_handler.cpp', 65d6a1bae7SGeorge Liu] 66d6a1bae7SGeorge Liu 67d6a1bae7SGeorge Liuexecutable( 68d6a1bae7SGeorge Liu 'buttons', 69d6a1bae7SGeorge Liu sources_buttons, 70d6a1bae7SGeorge Liu implicit_include_directories: true, 71d6a1bae7SGeorge Liu include_directories: ['inc'], 72d6a1bae7SGeorge Liu dependencies: deps, 73d6a1bae7SGeorge Liu install: true, 74d6a1bae7SGeorge Liu install_dir: get_option('bindir') 75d6a1bae7SGeorge Liu) 76d6a1bae7SGeorge Liu 77d6a1bae7SGeorge Liuexecutable( 78d6a1bae7SGeorge Liu 'button-handler', 79d6a1bae7SGeorge Liu sources_handler, 80d6a1bae7SGeorge Liu implicit_include_directories: true, 81d6a1bae7SGeorge Liu include_directories: ['inc'], 82d6a1bae7SGeorge Liu dependencies: deps, 83d6a1bae7SGeorge Liu install: true, 84d6a1bae7SGeorge Liu install_dir: get_option('bindir') 85d6a1bae7SGeorge Liu) 86d6a1bae7SGeorge Liu 87d6a1bae7SGeorge Liusystemd = dependency('systemd') 88d6a1bae7SGeorge Liusystemd_system_unit_dir = systemd.get_variable( 89d6a1bae7SGeorge Liu pkgconfig: 'systemdsystemunitdir', 90d6a1bae7SGeorge Liu pkgconfig_define: ['prefix', get_option('prefix')]) 91d6a1bae7SGeorge Liu 92d6a1bae7SGeorge Liuconfigure_file(input: 'service_files/phosphor-button-handler.service', 93d6a1bae7SGeorge Liu output: 'phosphor-button-handler.service', 94d6a1bae7SGeorge Liu copy: true, 95d6a1bae7SGeorge Liu install_dir: systemd_system_unit_dir) 96d6a1bae7SGeorge Liu 97d6a1bae7SGeorge Liuconfigure_file(input: 'service_files/xyz.openbmc_project.Chassis.Buttons.service', 98d6a1bae7SGeorge Liu output: 'xyz.openbmc_project.Chassis.Buttons.service', 99d6a1bae7SGeorge Liu copy: true, 100d6a1bae7SGeorge Liu install_dir: systemd_system_unit_dir) 101