# 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',  ],
    depend_files: sdbusplusplus_depfiles,
    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' ],
    depend_files: sdbusplusplus_depfiles,
    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' ],
    depend_files: sdbusplusplus_depfiles,
    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' ],
    depend_files: sdbusplusplus_depfiles,
    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('FaultLogType')
generated_others += custom_target(
    'xyz/openbmc_project/Common/FaultLogType__markdown'.underscorify(),
    input: [ '../../../../yaml/xyz/openbmc_project/Common/FaultLogType.interface.yaml',  ],
    output: [ 'FaultLogType.md' ],
    depend_files: sdbusplusplus_depfiles,
    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/FaultLogType',
    ],
)

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' ],
    depend_files: sdbusplusplus_depfiles,
    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' ],
    depend_files: sdbusplusplus_depfiles,
    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' ],
    depend_files: sdbusplusplus_depfiles,
    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' ],
    depend_files: sdbusplusplus_depfiles,
    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('Priority')
generated_others += custom_target(
    'xyz/openbmc_project/Common/Priority__markdown'.underscorify(),
    input: [ '../../../../yaml/xyz/openbmc_project/Common/Priority.interface.yaml',  ],
    output: [ 'Priority.md' ],
    depend_files: sdbusplusplus_depfiles,
    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/Priority',
    ],
)

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' ],
    depend_files: sdbusplusplus_depfiles,
    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' ],
    depend_files: sdbusplusplus_depfiles,
    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('Threshold')
generated_others += custom_target(
    'xyz/openbmc_project/Common/Threshold__markdown'.underscorify(),
    input: [ '../../../../yaml/xyz/openbmc_project/Common/Threshold.interface.yaml',  ],
    output: [ 'Threshold.md' ],
    depend_files: sdbusplusplus_depfiles,
    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/Threshold',
    ],
)

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' ],
    depend_files: sdbusplusplus_depfiles,
    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',
    ],
)

