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

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

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

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

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

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

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

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

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

