1project( 2 'hsbp-manager', 3 'cpp', 4 version: '1.1.1', 5 meson_version: '>=1.1.1', 6 default_options: ['cpp_std=c++23'], 7) 8 9# Compiler flags 10cpp_args = [ 11 '-lstdc++fs', 12 '-Werror', 13 '-Wall', 14 '-Wextra', 15 '-Wshadow', 16 '-Wnon-virtual-dtor', 17 '-Wold-style-cast', 18 '-Wcast-align', 19 '-Wunused', 20 '-Woverloaded-virtual', 21 '-Wpedantic', 22 '-Wconversion', 23 '-Wmisleading-indentation', 24 '-Wduplicated-cond', 25 '-Wduplicated-branches', 26 '-Wlogical-op', 27 '-Wnull-dereference', 28 '-Wuseless-cast', 29 '-Wdouble-promotion', 30 '-Wformat=2', 31 '-fno-rtti', 32] 33 34# Definitions 35add_project_arguments( 36 '-DBOOST_ERROR_CODE_HEADER_ONLY', 37 '-DBOOST_SYSTEM_NO_DEPRECATED', 38 '-DBOOST_ALL_NO_LIB', 39 '-DBOOST_NO_RTTI', 40 '-DBOOST_NO_TYPEID', 41 '-DBOOST_ASIO_DISABLE_THREADS', 42 language: 'cpp', 43) 44 45# Include directories 46inc = include_directories('include') 47 48cpp = meson.get_compiler('cpp') 49boost = dependency('boost', version: '1.86.0', required: false) 50sdbusplus = dependency('sdbusplus', required: true) 51i2c_dep = cpp.find_library('i2c') 52gpiodcxx = dependency('libgpiodcxx', default_options: ['bindings=cxx']) 53 54incdir = include_directories('include') 55 56executable( 57 'hsbp-manager', 58 'src/hsbp_manager.cpp', 59 include_directories: incdir, 60 dependencies: [boost, i2c_dep, sdbusplus, gpiodcxx], 61) 62# Systemd service files 63systemd_system_unit_dir = dependency('systemd').get_variable( 64 'systemdsystemunitdir', 65) 66 67install_data( 68 'service_files/hsbp-manager.service', 69 install_dir: systemd_system_unit_dir, 70) 71