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

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

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

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

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

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

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

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

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

