# Generated file; do not modify.
subdir('Association')
generated_others += custom_target(
    'xyz/openbmc_project/Association__markdown'.underscorify(),
    input: [ meson.project_source_root() / 'xyz/openbmc_project/Association.interface.yaml',  ],
    output: [ 'Association.md' ],
    command: [
        sdbuspp_gen_meson_prog, '--command', 'markdown',
        '--output', meson.current_build_dir(),
        '--tool', sdbusplusplus_prog,
        '--directory', meson.project_source_root(),
        'xyz/openbmc_project/Association',
    ],
    build_by_default: true,
)

subdir('BIOSConfig')
subdir('Certs')
generated_others += custom_target(
    'xyz/openbmc_project/Certs__markdown'.underscorify(),
    input: [ meson.project_source_root() / 'xyz/openbmc_project/Certs.errors.yaml',  ],
    output: [ 'Certs.md' ],
    command: [
        sdbuspp_gen_meson_prog, '--command', 'markdown',
        '--output', meson.current_build_dir(),
        '--tool', sdbusplusplus_prog,
        '--directory', meson.project_source_root(),
        'xyz/openbmc_project/Certs',
    ],
    build_by_default: true,
)

subdir('Channel')
subdir('Chassis')
subdir('Collection')
subdir('Common')
generated_others += custom_target(
    'xyz/openbmc_project/Common__markdown'.underscorify(),
    input: [ meson.project_source_root() / 'xyz/openbmc_project/Common.errors.yaml',  ],
    output: [ 'Common.md' ],
    command: [
        sdbuspp_gen_meson_prog, '--command', 'markdown',
        '--output', meson.current_build_dir(),
        '--tool', sdbusplusplus_prog,
        '--directory', meson.project_source_root(),
        'xyz/openbmc_project/Common',
    ],
    build_by_default: true,
)

subdir('Condition')
subdir('Control')
subdir('Dump')
subdir('Inventory')
generated_others += custom_target(
    'xyz/openbmc_project/Inventory__markdown'.underscorify(),
    input: [ meson.project_source_root() / 'xyz/openbmc_project/Inventory.errors.yaml',  ],
    output: [ 'Inventory.md' ],
    command: [
        sdbuspp_gen_meson_prog, '--command', 'markdown',
        '--output', meson.current_build_dir(),
        '--tool', sdbusplusplus_prog,
        '--directory', meson.project_source_root(),
        'xyz/openbmc_project/Inventory',
    ],
    build_by_default: true,
)

subdir('Ipmi')
subdir('Led')
subdir('Logging')
subdir('Memory')
subdir('Network')
subdir('Nvme')
subdir('Object')
subdir('ObjectMapper')
generated_others += custom_target(
    'xyz/openbmc_project/ObjectMapper__markdown'.underscorify(),
    input: [ meson.project_source_root() / 'xyz/openbmc_project/ObjectMapper.interface.yaml',  ],
    output: [ 'ObjectMapper.md' ],
    command: [
        sdbuspp_gen_meson_prog, '--command', 'markdown',
        '--output', meson.current_build_dir(),
        '--tool', sdbusplusplus_prog,
        '--directory', meson.project_source_root(),
        'xyz/openbmc_project/ObjectMapper',
    ],
    build_by_default: true,
)

subdir('PFR')
subdir('PLDM')
subdir('ScheduledTime')
generated_others += custom_target(
    'xyz/openbmc_project/ScheduledTime__markdown'.underscorify(),
    input: [ meson.project_source_root() / 'xyz/openbmc_project/ScheduledTime.errors.yaml',  ],
    output: [ 'ScheduledTime.md' ],
    command: [
        sdbuspp_gen_meson_prog, '--command', 'markdown',
        '--output', meson.current_build_dir(),
        '--tool', sdbusplusplus_prog,
        '--directory', meson.project_source_root(),
        'xyz/openbmc_project/ScheduledTime',
    ],
    build_by_default: true,
)

subdir('Sensor')
subdir('Smbios')
subdir('Software')
subdir('State')
subdir('Telemetry')
subdir('Time')
generated_others += custom_target(
    'xyz/openbmc_project/Time__markdown'.underscorify(),
    input: [ meson.project_source_root() / 'xyz/openbmc_project/Time.errors.yaml',  ],
    output: [ 'Time.md' ],
    command: [
        sdbuspp_gen_meson_prog, '--command', 'markdown',
        '--output', meson.current_build_dir(),
        '--tool', sdbusplusplus_prog,
        '--directory', meson.project_source_root(),
        'xyz/openbmc_project/Time',
    ],
    build_by_default: true,
)

subdir('User')
subdir('VirtualMedia')
