| # Copyright 2021 Google LLC |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| project( |
| 'metrics-ipmi-blobs', |
| 'cpp', |
| version: '0.1', |
| default_options: [ |
| 'warning_level=3', |
| 'werror=true', |
| 'cpp_std=c++20', |
| 'tests=' + (meson.is_subproject() ? 'disabled' : 'auto'), |
| ], |
| ) |
| |
| headers = include_directories('.') |
| |
| deps = [ |
| dependency('phosphor-logging'), |
| dependency('phosphor-ipmi-blobs'), |
| dependency('protobuf'), |
| dependency('sdbusplus'), |
| ] |
| |
| proto = custom_target( |
| 'metricblob_proto', |
| command: [ |
| find_program('protoc', native: true), |
| '--proto_path=@CURRENT_SOURCE_DIR@', |
| '--cpp_out=@OUTDIR@', |
| '@INPUT@' |
| ], |
| output: [ |
| 'metricblob.pb.cc', |
| 'metricblob.pb.h', |
| ], |
| input: 'metricblob.proto') |
| proto_h = proto[1] |
| |
| lib = static_library( |
| 'metricsblob', |
| 'util.cpp', |
| 'handler.cpp', |
| 'metric.cpp', |
| proto, |
| include_directories: headers, |
| implicit_include_directories: false, |
| dependencies: deps) |
| |
| dep = declare_dependency( |
| sources: proto_h, |
| dependencies: deps, |
| include_directories: headers, |
| link_with: lib) |
| |
| shared_module( |
| 'metricsblob', |
| 'main.cpp', |
| dependencies: dep, |
| implicit_include_directories: false, |
| install: true, |
| install_dir: get_option('libdir') / 'blob-ipmid') |
| |
| if not get_option('tests').disabled() |
| subdir('test') |
| endif |