# Generated file; do not modify.
subdir('BMC')
generated_others += custom_target(
    'xyz/openbmc_project/State/BMC__markdown'.underscorify(),
    input: [ '../../../../yaml/xyz/openbmc_project/State/BMC.interface.yaml',  ],
    output: [ 'BMC.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/State/BMC',
    ],
)

subdir('BMCRedundancy')
generated_others += custom_target(
    'xyz/openbmc_project/State/BMCRedundancy__markdown'.underscorify(),
    input: [ '../../../../yaml/xyz/openbmc_project/State/BMCRedundancy.interface.yaml',  ],
    output: [ 'BMCRedundancy.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/State/BMCRedundancy',
    ],
)

subdir('Boot')
subdir('Chassis')
generated_others += custom_target(
    'xyz/openbmc_project/State/Chassis__markdown'.underscorify(),
    input: [ '../../../../yaml/xyz/openbmc_project/State/Chassis.interface.yaml',  ],
    output: [ 'Chassis.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/State/Chassis',
    ],
)

subdir('Decorator')
subdir('Drive')
generated_others += custom_target(
    'xyz/openbmc_project/State/Drive__markdown'.underscorify(),
    input: [ '../../../../yaml/xyz/openbmc_project/State/Drive.interface.yaml',  ],
    output: [ 'Drive.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/State/Drive',
    ],
)

subdir('Host')
generated_others += custom_target(
    'xyz/openbmc_project/State/Host__markdown'.underscorify(),
    input: [ '../../../../yaml/xyz/openbmc_project/State/Host.interface.yaml',  ],
    output: [ 'Host.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/State/Host',
    ],
)

subdir('OperatingSystem')
subdir('PowerOnHours')
generated_others += custom_target(
    'xyz/openbmc_project/State/PowerOnHours__markdown'.underscorify(),
    input: [ '../../../../yaml/xyz/openbmc_project/State/PowerOnHours.interface.yaml',  ],
    output: [ 'PowerOnHours.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/State/PowerOnHours',
    ],
)

subdir('ScheduledHostTransition')
generated_others += custom_target(
    'xyz/openbmc_project/State/ScheduledHostTransition__markdown'.underscorify(),
    input: [ '../../../../yaml/xyz/openbmc_project/State/ScheduledHostTransition.interface.yaml',  ],
    output: [ 'ScheduledHostTransition.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/State/ScheduledHostTransition',
    ],
)

subdir('Shutdown')
subdir('SystemdTarget')
generated_others += custom_target(
    'xyz/openbmc_project/State/SystemdTarget__markdown'.underscorify(),
    input: [ '../../../../yaml/xyz/openbmc_project/State/SystemdTarget.errors.yaml',  ],
    output: [ 'SystemdTarget.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/State/SystemdTarget',
    ],
)

subdir('Watchdog')
generated_others += custom_target(
    'xyz/openbmc_project/State/Watchdog__markdown'.underscorify(),
    input: [ '../../../../yaml/xyz/openbmc_project/State/Watchdog.interface.yaml',  ],
    output: [ 'Watchdog.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/State/Watchdog',
    ],
)

