11285115cSWilliam A. Kennington III# Copyright 2021 Google LLC 21285115cSWilliam A. Kennington III# 31285115cSWilliam A. Kennington III# Licensed under the Apache License, Version 2.0 (the "License"); 41285115cSWilliam A. Kennington III# you may not use this file except in compliance with the License. 51285115cSWilliam A. Kennington III# You may obtain a copy of the License at 61285115cSWilliam A. Kennington III# 71285115cSWilliam A. Kennington III# http://www.apache.org/licenses/LICENSE-2.0 81285115cSWilliam A. Kennington III# 91285115cSWilliam A. Kennington III# Unless required by applicable law or agreed to in writing, software 101285115cSWilliam A. Kennington III# distributed under the License is distributed on an "AS IS" BASIS, 111285115cSWilliam A. Kennington III# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 121285115cSWilliam A. Kennington III# See the License for the specific language governing permissions and 131285115cSWilliam A. Kennington III# limitations under the License. 141285115cSWilliam A. Kennington III 151285115cSWilliam A. Kennington IIIproject( 161285115cSWilliam A. Kennington III 'metrics-ipmi-blobs', 177f49370dSWilliam A. Kennington III ['cpp', 'c'], 181285115cSWilliam A. Kennington III version: '0.1', 191285115cSWilliam A. Kennington III default_options: [ 201285115cSWilliam A. Kennington III 'warning_level=3', 211285115cSWilliam A. Kennington III 'werror=true', 221dfe24eaSPatrick Williams 'cpp_std=c++23', 237f49370dSWilliam A. Kennington III 'c_std=c18', 241285115cSWilliam A. Kennington III 'tests=' + (meson.is_subproject() ? 'disabled' : 'auto'), 251285115cSWilliam A. Kennington III ], 261285115cSWilliam A. Kennington III) 271285115cSWilliam A. Kennington III 287f49370dSWilliam A. Kennington IIInanopb = find_program('nanopb_generator.py', native: true, required: false) 297f49370dSWilliam A. Kennington IIIif not nanopb.found() 307f49370dSWilliam A. Kennington III nanopb_opts = import('cmake').subproject_options() 317f49370dSWilliam A. Kennington III nanopb_opts.add_cmake_defines({'BUILD_SHARED_LIBS': 'ON'}) 327f49370dSWilliam A. Kennington III nanopb_proj = import('cmake').subproject('nanopb', options: nanopb_opts) 337f49370dSWilliam A. Kennington III nanopb = find_program(meson.global_source_root() + '/subprojects/nanopb/generator/nanopb_generator.py', native: true) 347f49370dSWilliam A. Kennington III nanopb_dep = nanopb_proj.dependency('protobuf_nanopb') 357f49370dSWilliam A. Kennington IIIelse 367f49370dSWilliam A. Kennington III nanopb_dep = meson.get_compiler('cpp').find_library('protobuf-nanopb') 377f49370dSWilliam A. Kennington IIIendif 381285115cSWilliam A. Kennington III 397f49370dSWilliam A. Kennington IIInanopb_kwargs = { 407f49370dSWilliam A. Kennington III 'output': [ 417f49370dSWilliam A. Kennington III '@BASENAME@.pb.n.h', 427f49370dSWilliam A. Kennington III '@BASENAME@.pb.n.c', 437f49370dSWilliam A. Kennington III ], 447f49370dSWilliam A. Kennington III 'command': [ 457f49370dSWilliam A. Kennington III nanopb, 467f49370dSWilliam A. Kennington III '-q', 477f49370dSWilliam A. Kennington III '-s', 'packed_struct:0', 487f49370dSWilliam A. Kennington III '-H.n.h', 497f49370dSWilliam A. Kennington III '-S.n.c', 507f49370dSWilliam A. Kennington III '-I' + import('fs').relative_to(meson.current_source_dir(), meson.global_build_root()), 517f49370dSWilliam A. Kennington III '-D' + import('fs').relative_to(meson.current_build_dir(), meson.global_build_root()), 527f49370dSWilliam A. Kennington III '@INPUT@', 537f49370dSWilliam A. Kennington III ], 547f49370dSWilliam A. Kennington III} 557f49370dSWilliam A. Kennington III 567f49370dSWilliam A. Kennington IIItgt = custom_target( 577f49370dSWilliam A. Kennington III 'metricblob.pb.n.hc', 587f49370dSWilliam A. Kennington III input: 'metricblob.proto', 597f49370dSWilliam A. Kennington III kwargs: nanopb_kwargs) 607f49370dSWilliam A. Kennington IIImetrics_nanopb_hdr = tgt[0] 617f49370dSWilliam A. Kennington IIImetrics_nanopb_src = tgt[1] 627f49370dSWilliam A. Kennington III 637f49370dSWilliam A. Kennington IIImetrics_nanopb_pre = declare_dependency( 647f49370dSWilliam A. Kennington III include_directories: include_directories('.'), 657f49370dSWilliam A. Kennington III sources: metrics_nanopb_hdr, 667f49370dSWilliam A. Kennington III dependencies: [ 677f49370dSWilliam A. Kennington III nanopb_dep, 687f49370dSWilliam A. Kennington III ]) 697f49370dSWilliam A. Kennington III 707f49370dSWilliam A. Kennington IIImetrics_nanopb_lib = static_library( 717f49370dSWilliam A. Kennington III 'metrics_nanopb', 727f49370dSWilliam A. Kennington III metrics_nanopb_src, 737f49370dSWilliam A. Kennington III implicit_include_directories: false, 747f49370dSWilliam A. Kennington III dependencies: metrics_nanopb_pre) 757f49370dSWilliam A. Kennington III 767f49370dSWilliam A. Kennington IIImetrics_nanopb_dep = declare_dependency( 777f49370dSWilliam A. Kennington III dependencies: metrics_nanopb_pre, 787f49370dSWilliam A. Kennington III link_with: metrics_nanopb_lib) 797f49370dSWilliam A. Kennington III 807f49370dSWilliam A. Kennington IIIpre = declare_dependency( 817f49370dSWilliam A. Kennington III include_directories: include_directories('.'), 827f49370dSWilliam A. Kennington III dependencies: [ 837f49370dSWilliam A. Kennington III metrics_nanopb_dep, 841285115cSWilliam A. Kennington III dependency('phosphor-logging'), 851285115cSWilliam A. Kennington III dependency('phosphor-ipmi-blobs'), 86b63d6314SMichael Shen dependency('sdbusplus'), 877f49370dSWilliam A. Kennington III ]) 88b056df69SWilliam A. Kennington III 89b056df69SWilliam A. Kennington IIIlib = static_library( 90b056df69SWilliam A. Kennington III 'metricsblob', 91b056df69SWilliam A. Kennington III 'util.cpp', 92b056df69SWilliam A. Kennington III 'handler.cpp', 93b056df69SWilliam A. Kennington III 'metric.cpp', 941285115cSWilliam A. Kennington III implicit_include_directories: false, 957f49370dSWilliam A. Kennington III dependencies: pre) 961285115cSWilliam A. Kennington III 971285115cSWilliam A. Kennington IIIdep = declare_dependency( 987f49370dSWilliam A. Kennington III dependencies: pre, 991285115cSWilliam A. Kennington III link_with: lib) 1001285115cSWilliam A. Kennington III 1011285115cSWilliam A. Kennington IIIshared_module( 1021285115cSWilliam A. Kennington III 'metricsblob', 1031285115cSWilliam A. Kennington III 'main.cpp', 1041285115cSWilliam A. Kennington III dependencies: dep, 1051285115cSWilliam A. Kennington III implicit_include_directories: false, 1061285115cSWilliam A. Kennington III install: true, 107548f3ad1SWilliam A. Kennington III install_dir: get_option('libdir') / 'blob-ipmid') 1081285115cSWilliam A. Kennington III 109*a2d0c9e8SPatrick Williamsif get_option('tests').allowed() 1101285115cSWilliam A. Kennington III subdir('test') 1111285115cSWilliam A. Kennington IIIendif 112