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

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

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

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

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

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

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

