# Generated file; do not modify.
generated_sources += custom_target(
    'xyz/openbmc_project/Common__cpp'.underscorify(),
    input: [ '../../../../yaml/xyz/openbmc_project/Common.errors.yaml',  ],
    output: [ 'error.cpp', 'error.hpp',  ],
    command: [
        sdbuspp_gen_meson_prog, '--command', 'cpp',
        '--output', meson.current_build_dir(),
        '--tool', sdbusplusplus_prog,
        '--directory', meson.current_source_dir() / '../../../../yaml',
        'xyz/openbmc_project/Common',
    ],
)

subdir('Callout')
generated_others += custom_target(
    'xyz/openbmc_project/Common/Callout__markdown'.underscorify(),
    input: [ '../../../../yaml/xyz/openbmc_project/Common/Callout.errors.yaml',  ],
    output: [ 'Callout.md' ],
    command: [
        sdbuspp_gen_meson_prog, '--command', 'markdown',
        '--output', meson.current_build_dir(),
        '--tool', sdbusplusplus_prog,
        '--directory', meson.current_source_dir() / '../../../../yaml',
        'xyz/openbmc_project/Common/Callout',
    ],
)

subdir('Device')
generated_others += custom_target(
    'xyz/openbmc_project/Common/Device__markdown'.underscorify(),
    input: [ '../../../../yaml/xyz/openbmc_project/Common/Device.errors.yaml',  ],
    output: [ 'Device.md' ],
    command: [
        sdbuspp_gen_meson_prog, '--command', 'markdown',
        '--output', meson.current_build_dir(),
        '--tool', sdbusplusplus_prog,
        '--directory', meson.current_source_dir() / '../../../../yaml',
        'xyz/openbmc_project/Common/Device',
    ],
)

subdir('FactoryReset')
generated_others += custom_target(
    'xyz/openbmc_project/Common/FactoryReset__markdown'.underscorify(),
    input: [ '../../../../yaml/xyz/openbmc_project/Common/FactoryReset.interface.yaml',  ],
    output: [ 'FactoryReset.md' ],
    command: [
        sdbuspp_gen_meson_prog, '--command', 'markdown',
        '--output', meson.current_build_dir(),
        '--tool', sdbusplusplus_prog,
        '--directory', meson.current_source_dir() / '../../../../yaml',
        'xyz/openbmc_project/Common/FactoryReset',
    ],
)

subdir('File')
generated_others += custom_target(
    'xyz/openbmc_project/Common/File__markdown'.underscorify(),
    input: [ '../../../../yaml/xyz/openbmc_project/Common/File.errors.yaml',  ],
    output: [ 'File.md' ],
    command: [
        sdbuspp_gen_meson_prog, '--command', 'markdown',
        '--output', meson.current_build_dir(),
        '--tool', sdbusplusplus_prog,
        '--directory', meson.current_source_dir() / '../../../../yaml',
        'xyz/openbmc_project/Common/File',
    ],
)

subdir('FilePath')
generated_others += custom_target(
    'xyz/openbmc_project/Common/FilePath__markdown'.underscorify(),
    input: [ '../../../../yaml/xyz/openbmc_project/Common/FilePath.interface.yaml',  ],
    output: [ 'FilePath.md' ],
    command: [
        sdbuspp_gen_meson_prog, '--command', 'markdown',
        '--output', meson.current_build_dir(),
        '--tool', sdbusplusplus_prog,
        '--directory', meson.current_source_dir() / '../../../../yaml',
        'xyz/openbmc_project/Common/FilePath',
    ],
)

subdir('ObjectPath')
generated_others += custom_target(
    'xyz/openbmc_project/Common/ObjectPath__markdown'.underscorify(),
    input: [ '../../../../yaml/xyz/openbmc_project/Common/ObjectPath.interface.yaml',  ],
    output: [ 'ObjectPath.md' ],
    command: [
        sdbuspp_gen_meson_prog, '--command', 'markdown',
        '--output', meson.current_build_dir(),
        '--tool', sdbusplusplus_prog,
        '--directory', meson.current_source_dir() / '../../../../yaml',
        'xyz/openbmc_project/Common/ObjectPath',
    ],
)

subdir('OriginatedBy')
generated_others += custom_target(
    'xyz/openbmc_project/Common/OriginatedBy__markdown'.underscorify(),
    input: [ '../../../../yaml/xyz/openbmc_project/Common/OriginatedBy.interface.yaml',  ],
    output: [ 'OriginatedBy.md' ],
    command: [
        sdbuspp_gen_meson_prog, '--command', 'markdown',
        '--output', meson.current_build_dir(),
        '--tool', sdbusplusplus_prog,
        '--directory', meson.current_source_dir() / '../../../../yaml',
        'xyz/openbmc_project/Common/OriginatedBy',
    ],
)

subdir('Progress')
generated_others += custom_target(
    'xyz/openbmc_project/Common/Progress__markdown'.underscorify(),
    input: [ '../../../../yaml/xyz/openbmc_project/Common/Progress.interface.yaml',  ],
    output: [ 'Progress.md' ],
    command: [
        sdbuspp_gen_meson_prog, '--command', 'markdown',
        '--output', meson.current_build_dir(),
        '--tool', sdbusplusplus_prog,
        '--directory', meson.current_source_dir() / '../../../../yaml',
        'xyz/openbmc_project/Common/Progress',
    ],
)

subdir('TFTP')
generated_others += custom_target(
    'xyz/openbmc_project/Common/TFTP__markdown'.underscorify(),
    input: [ '../../../../yaml/xyz/openbmc_project/Common/TFTP.interface.yaml',  ],
    output: [ 'TFTP.md' ],
    command: [
        sdbuspp_gen_meson_prog, '--command', 'markdown',
        '--output', meson.current_build_dir(),
        '--tool', sdbusplusplus_prog,
        '--directory', meson.current_source_dir() / '../../../../yaml',
        'xyz/openbmc_project/Common/TFTP',
    ],
)

subdir('UUID')
generated_others += custom_target(
    'xyz/openbmc_project/Common/UUID__markdown'.underscorify(),
    input: [ '../../../../yaml/xyz/openbmc_project/Common/UUID.interface.yaml',  ],
    output: [ 'UUID.md' ],
    command: [
        sdbuspp_gen_meson_prog, '--command', 'markdown',
        '--output', meson.current_build_dir(),
        '--tool', sdbusplusplus_prog,
        '--directory', meson.current_source_dir() / '../../../../yaml',
        'xyz/openbmc_project/Common/UUID',
    ],
)

