build: support registry generation

sdbus++-gen-meson version 10 adds support for redfish registry
generation and greatly simplifies the install directives.

Regenerate the YAML meson files and modify the base meson.build
as necessary.  Also, format meson.build with `meson format`.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I77586fca7742d5468803913cb45276ca57271655
diff --git a/gen/com/google/gbmc/Hoth/meson.build b/gen/com/google/gbmc/Hoth/meson.build
index 16871da..57f9daf 100644
--- a/gen/com/google/gbmc/Hoth/meson.build
+++ b/gen/com/google/gbmc/Hoth/meson.build
@@ -1,8 +1,22 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/google/gbmc/Hoth'
+
 generated_sources += custom_target(
     'com/google/gbmc/Hoth__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/google/gbmc/Hoth.errors.yaml', '../../../../../yaml/com/google/gbmc/Hoth.interface.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp', 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/google/gbmc/Hoth.errors.yaml',
+        '../../../../../yaml/com/google/gbmc/Hoth.interface.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +25,16 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/google/gbmc/Hoth',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/google/gbmc/meson.build b/gen/com/google/gbmc/meson.build
index 9d762dd..4d57002 100644
--- a/gen/com/google/gbmc/meson.build
+++ b/gen/com/google/gbmc/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('Hoth')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'com/google/gbmc'
+
+generated_markdown += custom_target(
     'com/google/gbmc/Hoth__markdown'.underscorify(),
     input: [ '../../../../yaml/com/google/gbmc/Hoth.errors.yaml', '../../../../yaml/com/google/gbmc/Hoth.interface.yaml',  ],
     output: [ 'Hoth.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/google/gbmc/Hoth',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/com/ibm/Dump/Create/meson.build b/gen/com/ibm/Dump/Create/meson.build
index 7033ff3..ce6bbd7 100644
--- a/gen/com/ibm/Dump/Create/meson.build
+++ b/gen/com/ibm/Dump/Create/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/Dump/Create'
+
 generated_sources += custom_target(
     'com/ibm/Dump/Create__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/Dump/Create.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/Dump/Create.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/Dump/Create',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/Dump/Entry/Hardware/meson.build b/gen/com/ibm/Dump/Entry/Hardware/meson.build
index 43cbbff..9eb9633 100644
--- a/gen/com/ibm/Dump/Entry/Hardware/meson.build
+++ b/gen/com/ibm/Dump/Entry/Hardware/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/Dump/Entry/Hardware'
+
 generated_sources += custom_target(
     'com/ibm/Dump/Entry/Hardware__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/com/ibm/Dump/Entry/Hardware.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/com/ibm/Dump/Entry/Hardware.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'com/ibm/Dump/Entry/Hardware',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/Dump/Entry/Hostboot/meson.build b/gen/com/ibm/Dump/Entry/Hostboot/meson.build
index ea8feae..9c9669c 100644
--- a/gen/com/ibm/Dump/Entry/Hostboot/meson.build
+++ b/gen/com/ibm/Dump/Entry/Hostboot/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/Dump/Entry/Hostboot'
+
 generated_sources += custom_target(
     'com/ibm/Dump/Entry/Hostboot__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/com/ibm/Dump/Entry/Hostboot.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/com/ibm/Dump/Entry/Hostboot.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'com/ibm/Dump/Entry/Hostboot',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/Dump/Entry/Resource/meson.build b/gen/com/ibm/Dump/Entry/Resource/meson.build
index cb3ed0b..906c4b7 100644
--- a/gen/com/ibm/Dump/Entry/Resource/meson.build
+++ b/gen/com/ibm/Dump/Entry/Resource/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/Dump/Entry/Resource'
+
 generated_sources += custom_target(
     'com/ibm/Dump/Entry/Resource__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/com/ibm/Dump/Entry/Resource.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/com/ibm/Dump/Entry/Resource.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'com/ibm/Dump/Entry/Resource',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/Dump/Entry/SBE/meson.build b/gen/com/ibm/Dump/Entry/SBE/meson.build
index 859fc6c..659c539 100644
--- a/gen/com/ibm/Dump/Entry/SBE/meson.build
+++ b/gen/com/ibm/Dump/Entry/SBE/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/Dump/Entry/SBE'
+
 generated_sources += custom_target(
     'com/ibm/Dump/Entry/SBE__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/com/ibm/Dump/Entry/SBE.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/com/ibm/Dump/Entry/SBE.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'com/ibm/Dump/Entry/SBE',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/Dump/Entry/meson.build b/gen/com/ibm/Dump/Entry/meson.build
index 4f7ea25..c3fad5f 100644
--- a/gen/com/ibm/Dump/Entry/meson.build
+++ b/gen/com/ibm/Dump/Entry/meson.build
@@ -1,6 +1,12 @@
 # Generated file; do not modify.
 subdir('Hardware')
-generated_others += custom_target(
+subdir('Hostboot')
+subdir('Resource')
+subdir('SBE')
+
+sdbusplus_current_path = 'com/ibm/Dump/Entry'
+
+generated_markdown += custom_target(
     'com/ibm/Dump/Entry/Hardware__markdown'.underscorify(),
     input: [ '../../../../../yaml/com/ibm/Dump/Entry/Hardware.interface.yaml',  ],
     output: [ 'Hardware.md' ],
@@ -12,10 +18,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/Dump/Entry/Hardware',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Hostboot')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/Dump/Entry/Hostboot__markdown'.underscorify(),
     input: [ '../../../../../yaml/com/ibm/Dump/Entry/Hostboot.interface.yaml',  ],
     output: [ 'Hostboot.md' ],
@@ -27,10 +35,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/Dump/Entry/Hostboot',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Resource')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/Dump/Entry/Resource__markdown'.underscorify(),
     input: [ '../../../../../yaml/com/ibm/Dump/Entry/Resource.interface.yaml',  ],
     output: [ 'Resource.md' ],
@@ -42,10 +52,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/Dump/Entry/Resource',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('SBE')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/Dump/Entry/SBE__markdown'.underscorify(),
     input: [ '../../../../../yaml/com/ibm/Dump/Entry/SBE.interface.yaml',  ],
     output: [ 'SBE.md' ],
@@ -57,5 +69,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/Dump/Entry/SBE',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/com/ibm/Dump/Notify/meson.build b/gen/com/ibm/Dump/Notify/meson.build
index 063dc38..e762d4c 100644
--- a/gen/com/ibm/Dump/Notify/meson.build
+++ b/gen/com/ibm/Dump/Notify/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/Dump/Notify'
+
 generated_sources += custom_target(
     'com/ibm/Dump/Notify__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/Dump/Notify.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/Dump/Notify.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/Dump/Notify',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/Dump/meson.build b/gen/com/ibm/Dump/meson.build
index 69fd81b..9e93b59 100644
--- a/gen/com/ibm/Dump/meson.build
+++ b/gen/com/ibm/Dump/meson.build
@@ -1,6 +1,11 @@
 # Generated file; do not modify.
 subdir('Create')
-generated_others += custom_target(
+subdir('Entry')
+subdir('Notify')
+
+sdbusplus_current_path = 'com/ibm/Dump'
+
+generated_markdown += custom_target(
     'com/ibm/Dump/Create__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/Dump/Create.interface.yaml',  ],
     output: [ 'Create.md' ],
@@ -12,11 +17,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/Dump/Create',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Entry')
-subdir('Notify')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/Dump/Notify__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/Dump/Notify.interface.yaml',  ],
     output: [ 'Notify.md' ],
@@ -28,5 +34,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/Dump/Notify',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/com/ibm/Hardware/Chassis/meson.build b/gen/com/ibm/Hardware/Chassis/meson.build
index 3b83fb8..990a744 100644
--- a/gen/com/ibm/Hardware/Chassis/meson.build
+++ b/gen/com/ibm/Hardware/Chassis/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/Hardware/Chassis'
+
 generated_sources += custom_target(
     'com/ibm/Hardware/Chassis__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/Hardware/Chassis.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/Hardware/Chassis.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/Hardware/Chassis',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/Hardware/meson.build b/gen/com/ibm/Hardware/meson.build
index d30ffa3..2a10886 100644
--- a/gen/com/ibm/Hardware/meson.build
+++ b/gen/com/ibm/Hardware/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('Chassis')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'com/ibm/Hardware'
+
+generated_markdown += custom_target(
     'com/ibm/Hardware/Chassis__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/Hardware/Chassis.interface.yaml',  ],
     output: [ 'Chassis.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/Hardware/Chassis',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/com/ibm/Logging/Policy/meson.build b/gen/com/ibm/Logging/Policy/meson.build
index 6ea7264..e227eab 100644
--- a/gen/com/ibm/Logging/Policy/meson.build
+++ b/gen/com/ibm/Logging/Policy/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/Logging/Policy'
+
 generated_sources += custom_target(
     'com/ibm/Logging/Policy__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/Logging/Policy.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/Logging/Policy.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/Logging/Policy',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/Logging/meson.build b/gen/com/ibm/Logging/meson.build
index f2213f5..463d47f 100644
--- a/gen/com/ibm/Logging/meson.build
+++ b/gen/com/ibm/Logging/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('Policy')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'com/ibm/Logging'
+
+generated_markdown += custom_target(
     'com/ibm/Logging/Policy__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/Logging/Policy.interface.yaml',  ],
     output: [ 'Policy.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/Logging/Policy',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/com/ibm/VPD/Collection/meson.build b/gen/com/ibm/VPD/Collection/meson.build
index 24c8c99..1f93fce 100644
--- a/gen/com/ibm/VPD/Collection/meson.build
+++ b/gen/com/ibm/VPD/Collection/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/VPD/Collection'
+
 generated_sources += custom_target(
     'com/ibm/VPD/Collection__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/VPD/Collection.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/VPD/Collection.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/VPD/Collection',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/VPD/Manager/meson.build b/gen/com/ibm/VPD/Manager/meson.build
index 026669d..6451f3e 100644
--- a/gen/com/ibm/VPD/Manager/meson.build
+++ b/gen/com/ibm/VPD/Manager/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/VPD/Manager'
+
 generated_sources += custom_target(
     'com/ibm/VPD/Manager__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/VPD/Manager.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/VPD/Manager.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/VPD/Manager',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/VPD/meson.build b/gen/com/ibm/VPD/meson.build
index 5ff46d9..c9c401f 100644
--- a/gen/com/ibm/VPD/meson.build
+++ b/gen/com/ibm/VPD/meson.build
@@ -1,8 +1,18 @@
 # Generated file; do not modify.
+subdir('Collection')
+subdir('Manager')
+
+sdbusplus_current_path = 'com/ibm/VPD'
+
 generated_sources += custom_target(
     'com/ibm/VPD__cpp'.underscorify(),
-    input: [ '../../../../yaml/com/ibm/VPD.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../yaml/com/ibm/VPD.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,10 +21,15 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/VPD',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
-subdir('Collection')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/VPD/Collection__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/VPD/Collection.interface.yaml',  ],
     output: [ 'Collection.md' ],
@@ -26,10 +41,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/VPD/Collection',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Manager')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/VPD/Manager__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/VPD/Manager.interface.yaml',  ],
     output: [ 'Manager.md' ],
@@ -41,5 +58,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/VPD/Manager',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/com/ibm/ipzvpd/CP00/meson.build b/gen/com/ibm/ipzvpd/CP00/meson.build
index 6d2abff..a51a99b 100644
--- a/gen/com/ibm/ipzvpd/CP00/meson.build
+++ b/gen/com/ibm/ipzvpd/CP00/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/CP00'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/CP00__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/CP00.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/CP00.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/CP00',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/CRP0/meson.build b/gen/com/ibm/ipzvpd/CRP0/meson.build
index 148524f..00b01a1 100644
--- a/gen/com/ibm/ipzvpd/CRP0/meson.build
+++ b/gen/com/ibm/ipzvpd/CRP0/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/CRP0'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/CRP0__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/CRP0.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/CRP0.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/CRP0',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/DINF/meson.build b/gen/com/ibm/ipzvpd/DINF/meson.build
index 0fdb8ff..498b963 100644
--- a/gen/com/ibm/ipzvpd/DINF/meson.build
+++ b/gen/com/ibm/ipzvpd/DINF/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/DINF'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/DINF__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/DINF.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/DINF.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/DINF',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/LRP0/meson.build b/gen/com/ibm/ipzvpd/LRP0/meson.build
index add0da9..d378872 100644
--- a/gen/com/ibm/ipzvpd/LRP0/meson.build
+++ b/gen/com/ibm/ipzvpd/LRP0/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/LRP0'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/LRP0__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/LRP0.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/LRP0.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/LRP0',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/LRP1/meson.build b/gen/com/ibm/ipzvpd/LRP1/meson.build
index 47bea74..f4f82d9 100644
--- a/gen/com/ibm/ipzvpd/LRP1/meson.build
+++ b/gen/com/ibm/ipzvpd/LRP1/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/LRP1'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/LRP1__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/LRP1.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/LRP1.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/LRP1',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/LRP2/meson.build b/gen/com/ibm/ipzvpd/LRP2/meson.build
index ba1110d..ef7eff0 100644
--- a/gen/com/ibm/ipzvpd/LRP2/meson.build
+++ b/gen/com/ibm/ipzvpd/LRP2/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/LRP2'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/LRP2__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/LRP2.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/LRP2.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/LRP2',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/LRP3/meson.build b/gen/com/ibm/ipzvpd/LRP3/meson.build
index c2d75b3..06c9bcd 100644
--- a/gen/com/ibm/ipzvpd/LRP3/meson.build
+++ b/gen/com/ibm/ipzvpd/LRP3/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/LRP3'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/LRP3__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/LRP3.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/LRP3.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/LRP3',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/LRP4/meson.build b/gen/com/ibm/ipzvpd/LRP4/meson.build
index 80c8564..b2dc237 100644
--- a/gen/com/ibm/ipzvpd/LRP4/meson.build
+++ b/gen/com/ibm/ipzvpd/LRP4/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/LRP4'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/LRP4__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/LRP4.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/LRP4.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/LRP4',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/LRP5/meson.build b/gen/com/ibm/ipzvpd/LRP5/meson.build
index d5e0efb..891c4ce 100644
--- a/gen/com/ibm/ipzvpd/LRP5/meson.build
+++ b/gen/com/ibm/ipzvpd/LRP5/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/LRP5'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/LRP5__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/LRP5.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/LRP5.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/LRP5',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/LRP6/meson.build b/gen/com/ibm/ipzvpd/LRP6/meson.build
index 2e54535..36e108d 100644
--- a/gen/com/ibm/ipzvpd/LRP6/meson.build
+++ b/gen/com/ibm/ipzvpd/LRP6/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/LRP6'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/LRP6__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/LRP6.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/LRP6.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/LRP6',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/LRP7/meson.build b/gen/com/ibm/ipzvpd/LRP7/meson.build
index 14f0b53..1dd3e50 100644
--- a/gen/com/ibm/ipzvpd/LRP7/meson.build
+++ b/gen/com/ibm/ipzvpd/LRP7/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/LRP7'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/LRP7__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/LRP7.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/LRP7.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/LRP7',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/LWP0/meson.build b/gen/com/ibm/ipzvpd/LWP0/meson.build
index 07ed8d2..a082077 100644
--- a/gen/com/ibm/ipzvpd/LWP0/meson.build
+++ b/gen/com/ibm/ipzvpd/LWP0/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/LWP0'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/LWP0__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/LWP0.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/LWP0.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/LWP0',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/LWP1/meson.build b/gen/com/ibm/ipzvpd/LWP1/meson.build
index 65d7c4d..c0384f7 100644
--- a/gen/com/ibm/ipzvpd/LWP1/meson.build
+++ b/gen/com/ibm/ipzvpd/LWP1/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/LWP1'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/LWP1__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/LWP1.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/LWP1.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/LWP1',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/LWP2/meson.build b/gen/com/ibm/ipzvpd/LWP2/meson.build
index 975d3d1..9adaaa1 100644
--- a/gen/com/ibm/ipzvpd/LWP2/meson.build
+++ b/gen/com/ibm/ipzvpd/LWP2/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/LWP2'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/LWP2__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/LWP2.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/LWP2.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/LWP2',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/LWP3/meson.build b/gen/com/ibm/ipzvpd/LWP3/meson.build
index f2f7e7c..2031ab1 100644
--- a/gen/com/ibm/ipzvpd/LWP3/meson.build
+++ b/gen/com/ibm/ipzvpd/LWP3/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/LWP3'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/LWP3__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/LWP3.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/LWP3.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/LWP3',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/LWP4/meson.build b/gen/com/ibm/ipzvpd/LWP4/meson.build
index c046f90..f7662f3 100644
--- a/gen/com/ibm/ipzvpd/LWP4/meson.build
+++ b/gen/com/ibm/ipzvpd/LWP4/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/LWP4'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/LWP4__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/LWP4.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/LWP4.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/LWP4',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/LWP5/meson.build b/gen/com/ibm/ipzvpd/LWP5/meson.build
index 0a5d4d0..f94856c 100644
--- a/gen/com/ibm/ipzvpd/LWP5/meson.build
+++ b/gen/com/ibm/ipzvpd/LWP5/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/LWP5'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/LWP5__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/LWP5.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/LWP5.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/LWP5',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/LWP6/meson.build b/gen/com/ibm/ipzvpd/LWP6/meson.build
index 57499a0..0c0b9b3 100644
--- a/gen/com/ibm/ipzvpd/LWP6/meson.build
+++ b/gen/com/ibm/ipzvpd/LWP6/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/LWP6'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/LWP6__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/LWP6.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/LWP6.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/LWP6',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/LWP7/meson.build b/gen/com/ibm/ipzvpd/LWP7/meson.build
index 87279ce..f7b879a 100644
--- a/gen/com/ibm/ipzvpd/LWP7/meson.build
+++ b/gen/com/ibm/ipzvpd/LWP7/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/LWP7'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/LWP7__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/LWP7.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/LWP7.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/LWP7',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/LXR0/meson.build b/gen/com/ibm/ipzvpd/LXR0/meson.build
index a83f025..f0bc552 100644
--- a/gen/com/ibm/ipzvpd/LXR0/meson.build
+++ b/gen/com/ibm/ipzvpd/LXR0/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/LXR0'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/LXR0__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/LXR0.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/LXR0.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/LXR0',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/Location/meson.build b/gen/com/ibm/ipzvpd/Location/meson.build
index dac1644..974d74c 100644
--- a/gen/com/ibm/ipzvpd/Location/meson.build
+++ b/gen/com/ibm/ipzvpd/Location/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/Location'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/Location__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/Location.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/Location.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/Location',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/MER0/meson.build b/gen/com/ibm/ipzvpd/MER0/meson.build
index 4de398e..7b9e0de 100644
--- a/gen/com/ibm/ipzvpd/MER0/meson.build
+++ b/gen/com/ibm/ipzvpd/MER0/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/MER0'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/MER0__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/MER0.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/MER0.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/MER0',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/PSPD/meson.build b/gen/com/ibm/ipzvpd/PSPD/meson.build
index a0c60e6..14f8cf1 100644
--- a/gen/com/ibm/ipzvpd/PSPD/meson.build
+++ b/gen/com/ibm/ipzvpd/PSPD/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/PSPD'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/PSPD__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/PSPD.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/PSPD.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/PSPD',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/UTIL/meson.build b/gen/com/ibm/ipzvpd/UTIL/meson.build
index 2665af7..064100a 100644
--- a/gen/com/ibm/ipzvpd/UTIL/meson.build
+++ b/gen/com/ibm/ipzvpd/UTIL/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/UTIL'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/UTIL__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/UTIL.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/UTIL.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/UTIL',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/VCEN/meson.build b/gen/com/ibm/ipzvpd/VCEN/meson.build
index c329663..09e4574 100644
--- a/gen/com/ibm/ipzvpd/VCEN/meson.build
+++ b/gen/com/ibm/ipzvpd/VCEN/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/VCEN'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/VCEN__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/VCEN.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/VCEN.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/VCEN',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/VCFG/meson.build b/gen/com/ibm/ipzvpd/VCFG/meson.build
index 14f6069..73aaff6 100644
--- a/gen/com/ibm/ipzvpd/VCFG/meson.build
+++ b/gen/com/ibm/ipzvpd/VCFG/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/VCFG'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/VCFG__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/VCFG.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/VCFG.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/VCFG',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/VEIR/meson.build b/gen/com/ibm/ipzvpd/VEIR/meson.build
index 5830ebd..bb45e66 100644
--- a/gen/com/ibm/ipzvpd/VEIR/meson.build
+++ b/gen/com/ibm/ipzvpd/VEIR/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/VEIR'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/VEIR__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/VEIR.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/VEIR.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/VEIR',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/VER0/meson.build b/gen/com/ibm/ipzvpd/VER0/meson.build
index 83ba4b6..9a4282d 100644
--- a/gen/com/ibm/ipzvpd/VER0/meson.build
+++ b/gen/com/ibm/ipzvpd/VER0/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/VER0'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/VER0__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/VER0.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/VER0.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/VER0',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/VINI/meson.build b/gen/com/ibm/ipzvpd/VINI/meson.build
index 4168624..3c8d6b8 100644
--- a/gen/com/ibm/ipzvpd/VINI/meson.build
+++ b/gen/com/ibm/ipzvpd/VINI/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/VINI'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/VINI__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/VINI.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/VINI.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/VINI',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/VMPU/meson.build b/gen/com/ibm/ipzvpd/VMPU/meson.build
index f09fd89..d292240 100644
--- a/gen/com/ibm/ipzvpd/VMPU/meson.build
+++ b/gen/com/ibm/ipzvpd/VMPU/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/VMPU'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/VMPU__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/VMPU.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/VMPU.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/VMPU',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/VMSC/meson.build b/gen/com/ibm/ipzvpd/VMSC/meson.build
index ca62df9..59101ce 100644
--- a/gen/com/ibm/ipzvpd/VMSC/meson.build
+++ b/gen/com/ibm/ipzvpd/VMSC/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/VMSC'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/VMSC__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/VMSC.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/VMSC.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/VMSC',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/VPRI/meson.build b/gen/com/ibm/ipzvpd/VPRI/meson.build
index e1a6d98..e4a0974 100644
--- a/gen/com/ibm/ipzvpd/VPRI/meson.build
+++ b/gen/com/ibm/ipzvpd/VPRI/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/VPRI'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/VPRI__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/VPRI.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/VPRI.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/VPRI',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/VR10/meson.build b/gen/com/ibm/ipzvpd/VR10/meson.build
index 93b496e..970967b 100644
--- a/gen/com/ibm/ipzvpd/VR10/meson.build
+++ b/gen/com/ibm/ipzvpd/VR10/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/VR10'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/VR10__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/VR10.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/VR10.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/VR10',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/VRML/meson.build b/gen/com/ibm/ipzvpd/VRML/meson.build
index bb75826..18d8cec 100644
--- a/gen/com/ibm/ipzvpd/VRML/meson.build
+++ b/gen/com/ibm/ipzvpd/VRML/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/VRML'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/VRML__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/VRML.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/VRML.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/VRML',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/VRTN/meson.build b/gen/com/ibm/ipzvpd/VRTN/meson.build
index d5c84e3..c75650d 100644
--- a/gen/com/ibm/ipzvpd/VRTN/meson.build
+++ b/gen/com/ibm/ipzvpd/VRTN/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/VRTN'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/VRTN__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/VRTN.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/VRTN.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/VRTN',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/VSBK/meson.build b/gen/com/ibm/ipzvpd/VSBK/meson.build
index 5900e4d..18f6c84 100644
--- a/gen/com/ibm/ipzvpd/VSBK/meson.build
+++ b/gen/com/ibm/ipzvpd/VSBK/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/VSBK'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/VSBK__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/VSBK.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/VSBK.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/VSBK',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/VSBP/meson.build b/gen/com/ibm/ipzvpd/VSBP/meson.build
index be78f4f..cc1af1a 100644
--- a/gen/com/ibm/ipzvpd/VSBP/meson.build
+++ b/gen/com/ibm/ipzvpd/VSBP/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/VSBP'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/VSBP__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/VSBP.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/VSBP.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/VSBP',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/VSRC/meson.build b/gen/com/ibm/ipzvpd/VSRC/meson.build
index aa58111..f703338 100644
--- a/gen/com/ibm/ipzvpd/VSRC/meson.build
+++ b/gen/com/ibm/ipzvpd/VSRC/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/VSRC'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/VSRC__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/VSRC.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/VSRC.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/VSRC',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/VSYS/meson.build b/gen/com/ibm/ipzvpd/VSYS/meson.build
index dfa8b7f..4831d47 100644
--- a/gen/com/ibm/ipzvpd/VSYS/meson.build
+++ b/gen/com/ibm/ipzvpd/VSYS/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/VSYS'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/VSYS__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/VSYS.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/VSYS.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/VSYS',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/VW10/meson.build b/gen/com/ibm/ipzvpd/VW10/meson.build
index 8cd8c55..6563545 100644
--- a/gen/com/ibm/ipzvpd/VW10/meson.build
+++ b/gen/com/ibm/ipzvpd/VW10/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/VW10'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/VW10__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/VW10.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/VW10.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/VW10',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/VWML/meson.build b/gen/com/ibm/ipzvpd/VWML/meson.build
index 7c1b5ed..ad00abe 100644
--- a/gen/com/ibm/ipzvpd/VWML/meson.build
+++ b/gen/com/ibm/ipzvpd/VWML/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/ibm/ipzvpd/VWML'
+
 generated_sources += custom_target(
     'com/ibm/ipzvpd/VWML__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/ibm/ipzvpd/VWML.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/ibm/ipzvpd/VWML.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/ibm/ipzvpd/VWML',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/ibm/ipzvpd/meson.build b/gen/com/ibm/ipzvpd/meson.build
index 48a5dfb..adb3b80 100644
--- a/gen/com/ibm/ipzvpd/meson.build
+++ b/gen/com/ibm/ipzvpd/meson.build
@@ -1,6 +1,49 @@
 # Generated file; do not modify.
 subdir('CP00')
-generated_others += custom_target(
+subdir('CRP0')
+subdir('DINF')
+subdir('LRP0')
+subdir('LRP1')
+subdir('LRP2')
+subdir('LRP3')
+subdir('LRP4')
+subdir('LRP5')
+subdir('LRP6')
+subdir('LRP7')
+subdir('LWP0')
+subdir('LWP1')
+subdir('LWP2')
+subdir('LWP3')
+subdir('LWP4')
+subdir('LWP5')
+subdir('LWP6')
+subdir('LWP7')
+subdir('LXR0')
+subdir('Location')
+subdir('MER0')
+subdir('PSPD')
+subdir('UTIL')
+subdir('VCEN')
+subdir('VCFG')
+subdir('VEIR')
+subdir('VER0')
+subdir('VINI')
+subdir('VMPU')
+subdir('VMSC')
+subdir('VPRI')
+subdir('VR10')
+subdir('VRML')
+subdir('VRTN')
+subdir('VSBK')
+subdir('VSBP')
+subdir('VSRC')
+subdir('VSYS')
+subdir('VW10')
+subdir('VWML')
+
+sdbusplus_current_path = 'com/ibm/ipzvpd'
+
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/CP00__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/CP00.interface.yaml',  ],
     output: [ 'CP00.md' ],
@@ -12,10 +55,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/CP00',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('CRP0')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/CRP0__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/CRP0.interface.yaml',  ],
     output: [ 'CRP0.md' ],
@@ -27,10 +72,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/CRP0',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('DINF')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/DINF__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/DINF.interface.yaml',  ],
     output: [ 'DINF.md' ],
@@ -42,10 +89,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/DINF',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('LRP0')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/LRP0__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/LRP0.interface.yaml',  ],
     output: [ 'LRP0.md' ],
@@ -57,10 +106,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/LRP0',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('LRP1')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/LRP1__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/LRP1.interface.yaml',  ],
     output: [ 'LRP1.md' ],
@@ -72,10 +123,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/LRP1',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('LRP2')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/LRP2__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/LRP2.interface.yaml',  ],
     output: [ 'LRP2.md' ],
@@ -87,10 +140,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/LRP2',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('LRP3')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/LRP3__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/LRP3.interface.yaml',  ],
     output: [ 'LRP3.md' ],
@@ -102,10 +157,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/LRP3',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('LRP4')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/LRP4__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/LRP4.interface.yaml',  ],
     output: [ 'LRP4.md' ],
@@ -117,10 +174,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/LRP4',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('LRP5')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/LRP5__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/LRP5.interface.yaml',  ],
     output: [ 'LRP5.md' ],
@@ -132,10 +191,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/LRP5',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('LRP6')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/LRP6__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/LRP6.interface.yaml',  ],
     output: [ 'LRP6.md' ],
@@ -147,10 +208,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/LRP6',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('LRP7')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/LRP7__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/LRP7.interface.yaml',  ],
     output: [ 'LRP7.md' ],
@@ -162,10 +225,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/LRP7',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('LWP0')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/LWP0__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/LWP0.interface.yaml',  ],
     output: [ 'LWP0.md' ],
@@ -177,10 +242,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/LWP0',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('LWP1')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/LWP1__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/LWP1.interface.yaml',  ],
     output: [ 'LWP1.md' ],
@@ -192,10 +259,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/LWP1',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('LWP2')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/LWP2__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/LWP2.interface.yaml',  ],
     output: [ 'LWP2.md' ],
@@ -207,10 +276,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/LWP2',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('LWP3')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/LWP3__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/LWP3.interface.yaml',  ],
     output: [ 'LWP3.md' ],
@@ -222,10 +293,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/LWP3',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('LWP4')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/LWP4__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/LWP4.interface.yaml',  ],
     output: [ 'LWP4.md' ],
@@ -237,10 +310,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/LWP4',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('LWP5')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/LWP5__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/LWP5.interface.yaml',  ],
     output: [ 'LWP5.md' ],
@@ -252,10 +327,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/LWP5',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('LWP6')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/LWP6__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/LWP6.interface.yaml',  ],
     output: [ 'LWP6.md' ],
@@ -267,10 +344,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/LWP6',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('LWP7')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/LWP7__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/LWP7.interface.yaml',  ],
     output: [ 'LWP7.md' ],
@@ -282,10 +361,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/LWP7',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('LXR0')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/LXR0__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/LXR0.interface.yaml',  ],
     output: [ 'LXR0.md' ],
@@ -297,10 +378,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/LXR0',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Location')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/Location__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/Location.interface.yaml',  ],
     output: [ 'Location.md' ],
@@ -312,10 +395,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/Location',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('MER0')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/MER0__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/MER0.interface.yaml',  ],
     output: [ 'MER0.md' ],
@@ -327,10 +412,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/MER0',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('PSPD')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/PSPD__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/PSPD.interface.yaml',  ],
     output: [ 'PSPD.md' ],
@@ -342,10 +429,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/PSPD',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('UTIL')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/UTIL__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/UTIL.interface.yaml',  ],
     output: [ 'UTIL.md' ],
@@ -357,10 +446,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/UTIL',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('VCEN')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/VCEN__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/VCEN.interface.yaml',  ],
     output: [ 'VCEN.md' ],
@@ -372,10 +463,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/VCEN',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('VCFG')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/VCFG__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/VCFG.interface.yaml',  ],
     output: [ 'VCFG.md' ],
@@ -387,10 +480,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/VCFG',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('VEIR')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/VEIR__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/VEIR.interface.yaml',  ],
     output: [ 'VEIR.md' ],
@@ -402,10 +497,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/VEIR',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('VER0')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/VER0__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/VER0.interface.yaml',  ],
     output: [ 'VER0.md' ],
@@ -417,10 +514,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/VER0',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('VINI')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/VINI__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/VINI.interface.yaml',  ],
     output: [ 'VINI.md' ],
@@ -432,10 +531,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/VINI',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('VMPU')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/VMPU__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/VMPU.interface.yaml',  ],
     output: [ 'VMPU.md' ],
@@ -447,10 +548,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/VMPU',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('VMSC')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/VMSC__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/VMSC.interface.yaml',  ],
     output: [ 'VMSC.md' ],
@@ -462,10 +565,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/VMSC',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('VPRI')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/VPRI__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/VPRI.interface.yaml',  ],
     output: [ 'VPRI.md' ],
@@ -477,10 +582,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/VPRI',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('VR10')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/VR10__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/VR10.interface.yaml',  ],
     output: [ 'VR10.md' ],
@@ -492,10 +599,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/VR10',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('VRML')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/VRML__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/VRML.interface.yaml',  ],
     output: [ 'VRML.md' ],
@@ -507,10 +616,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/VRML',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('VRTN')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/VRTN__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/VRTN.interface.yaml',  ],
     output: [ 'VRTN.md' ],
@@ -522,10 +633,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/VRTN',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('VSBK')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/VSBK__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/VSBK.interface.yaml',  ],
     output: [ 'VSBK.md' ],
@@ -537,10 +650,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/VSBK',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('VSBP')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/VSBP__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/VSBP.interface.yaml',  ],
     output: [ 'VSBP.md' ],
@@ -552,10 +667,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/VSBP',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('VSRC')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/VSRC__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/VSRC.interface.yaml',  ],
     output: [ 'VSRC.md' ],
@@ -567,10 +684,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/VSRC',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('VSYS')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/VSYS__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/VSYS.interface.yaml',  ],
     output: [ 'VSYS.md' ],
@@ -582,10 +701,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/VSYS',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('VW10')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/VW10__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/VW10.interface.yaml',  ],
     output: [ 'VW10.md' ],
@@ -597,10 +718,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/VW10',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('VWML')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/ibm/ipzvpd/VWML__markdown'.underscorify(),
     input: [ '../../../../yaml/com/ibm/ipzvpd/VWML.interface.yaml',  ],
     output: [ 'VWML.md' ],
@@ -612,5 +735,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/ibm/ipzvpd/VWML',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/com/ibm/meson.build b/gen/com/ibm/meson.build
index f6f99d2..eaa3f53 100644
--- a/gen/com/ibm/meson.build
+++ b/gen/com/ibm/meson.build
@@ -3,7 +3,11 @@
 subdir('Hardware')
 subdir('Logging')
 subdir('VPD')
-generated_others += custom_target(
+subdir('ipzvpd')
+
+sdbusplus_current_path = 'com/ibm'
+
+generated_markdown += custom_target(
     'com/ibm/VPD__markdown'.underscorify(),
     input: [ '../../../yaml/com/ibm/VPD.errors.yaml',  ],
     output: [ 'VPD.md' ],
@@ -15,6 +19,8 @@
         '--directory', meson.current_source_dir() / '../../../yaml',
         'com/ibm/VPD',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('ipzvpd')
diff --git a/gen/com/intel/Control/NMISource/meson.build b/gen/com/intel/Control/NMISource/meson.build
index 8c94ec7..e0d10eb 100644
--- a/gen/com/intel/Control/NMISource/meson.build
+++ b/gen/com/intel/Control/NMISource/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/intel/Control/NMISource'
+
 generated_sources += custom_target(
     'com/intel/Control/NMISource__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/intel/Control/NMISource.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/intel/Control/NMISource.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/intel/Control/NMISource',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/intel/Control/OCOTShutdownPolicy/meson.build b/gen/com/intel/Control/OCOTShutdownPolicy/meson.build
index 5bcdaaf..80e5cb9 100644
--- a/gen/com/intel/Control/OCOTShutdownPolicy/meson.build
+++ b/gen/com/intel/Control/OCOTShutdownPolicy/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/intel/Control/OCOTShutdownPolicy'
+
 generated_sources += custom_target(
     'com/intel/Control/OCOTShutdownPolicy__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/intel/Control/OCOTShutdownPolicy.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/intel/Control/OCOTShutdownPolicy.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/intel/Control/OCOTShutdownPolicy',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/intel/Control/meson.build b/gen/com/intel/Control/meson.build
index 2342e1e..b41480e 100644
--- a/gen/com/intel/Control/meson.build
+++ b/gen/com/intel/Control/meson.build
@@ -1,6 +1,10 @@
 # Generated file; do not modify.
 subdir('NMISource')
-generated_others += custom_target(
+subdir('OCOTShutdownPolicy')
+
+sdbusplus_current_path = 'com/intel/Control'
+
+generated_markdown += custom_target(
     'com/intel/Control/NMISource__markdown'.underscorify(),
     input: [ '../../../../yaml/com/intel/Control/NMISource.interface.yaml',  ],
     output: [ 'NMISource.md' ],
@@ -12,10 +16,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/intel/Control/NMISource',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('OCOTShutdownPolicy')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'com/intel/Control/OCOTShutdownPolicy__markdown'.underscorify(),
     input: [ '../../../../yaml/com/intel/Control/OCOTShutdownPolicy.interface.yaml',  ],
     output: [ 'OCOTShutdownPolicy.md' ],
@@ -27,5 +33,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/intel/Control/OCOTShutdownPolicy',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/com/intel/Protocol/PECI/Raw/meson.build b/gen/com/intel/Protocol/PECI/Raw/meson.build
index f1fdf82..99f26c5 100644
--- a/gen/com/intel/Protocol/PECI/Raw/meson.build
+++ b/gen/com/intel/Protocol/PECI/Raw/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/intel/Protocol/PECI/Raw'
+
 generated_sources += custom_target(
     'com/intel/Protocol/PECI/Raw__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/com/intel/Protocol/PECI/Raw.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/com/intel/Protocol/PECI/Raw.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'com/intel/Protocol/PECI/Raw',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/intel/Protocol/PECI/meson.build b/gen/com/intel/Protocol/PECI/meson.build
index 1d1896a..535c3ab 100644
--- a/gen/com/intel/Protocol/PECI/meson.build
+++ b/gen/com/intel/Protocol/PECI/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('Raw')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'com/intel/Protocol/PECI'
+
+generated_markdown += custom_target(
     'com/intel/Protocol/PECI/Raw__markdown'.underscorify(),
     input: [ '../../../../../yaml/com/intel/Protocol/PECI/Raw.interface.yaml',  ],
     output: [ 'Raw.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/intel/Protocol/PECI/Raw',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/com/meta/Hardware/BMC/meson.build b/gen/com/meta/Hardware/BMC/meson.build
index c8e9ab8..8f365f8 100644
--- a/gen/com/meta/Hardware/BMC/meson.build
+++ b/gen/com/meta/Hardware/BMC/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/meta/Hardware/BMC'
+
 generated_sources += custom_target(
     'com/meta/Hardware/BMC__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/meta/Hardware/BMC.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/meta/Hardware/BMC.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/meta/Hardware/BMC',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/meta/Hardware/meson.build b/gen/com/meta/Hardware/meson.build
index 2f7d6ac..48164ee 100644
--- a/gen/com/meta/Hardware/meson.build
+++ b/gen/com/meta/Hardware/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('BMC')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'com/meta/Hardware'
+
+generated_markdown += custom_target(
     'com/meta/Hardware/BMC__markdown'.underscorify(),
     input: [ '../../../../yaml/com/meta/Hardware/BMC.interface.yaml',  ],
     output: [ 'BMC.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/meta/Hardware/BMC',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/com/meta/Inventory/ManufacturerExt/meson.build b/gen/com/meta/Inventory/ManufacturerExt/meson.build
index 2f7e508..65210e5 100644
--- a/gen/com/meta/Inventory/ManufacturerExt/meson.build
+++ b/gen/com/meta/Inventory/ManufacturerExt/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'com/meta/Inventory/ManufacturerExt'
+
 generated_sources += custom_target(
     'com/meta/Inventory/ManufacturerExt__cpp'.underscorify(),
-    input: [ '../../../../../yaml/com/meta/Inventory/ManufacturerExt.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/com/meta/Inventory/ManufacturerExt.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'com/meta/Inventory/ManufacturerExt',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/com/meta/Inventory/meson.build b/gen/com/meta/Inventory/meson.build
index a30b77c..8c71a7e 100644
--- a/gen/com/meta/Inventory/meson.build
+++ b/gen/com/meta/Inventory/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('ManufacturerExt')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'com/meta/Inventory'
+
+generated_markdown += custom_target(
     'com/meta/Inventory/ManufacturerExt__markdown'.underscorify(),
     input: [ '../../../../yaml/com/meta/Inventory/ManufacturerExt.interface.yaml',  ],
     output: [ 'ManufacturerExt.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'com/meta/Inventory/ManufacturerExt',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/meson.build b/gen/meson.build
index 38522c5..ef27aee 100644
--- a/gen/meson.build
+++ b/gen/meson.build
@@ -5,11 +5,31 @@
     check: true,
 ).stdout().strip().split('\n')[0]
 
-if sdbuspp_gen_meson_ver != 'sdbus++-gen-meson version 9'
+if sdbuspp_gen_meson_ver != 'sdbus++-gen-meson version 10'
     warning('Generated meson files from wrong version of sdbus++-gen-meson.')
     warning(
-        'Expected "sdbus++-gen-meson version 9", got:',
+        'Expected "sdbus++-gen-meson version 10", got:',
         sdbuspp_gen_meson_ver
     )
 endif
 
+inst_markdown_dir = get_option('datadir') / 'doc' / meson.project_name()
+inst_registry_dir = get_option('datadir') / 'redfish-registry' / meson.project_name()
+
+generated_sources = []
+generated_markdown = []
+generated_registry = []
+
+foreach d : yaml_selected_subdirs
+    subdir(d)
+endforeach
+
+generated_headers = []
+foreach s : generated_sources
+    foreach f : s.to_list()
+        if f.full_path().endswith('.hpp')
+            generated_headers += f
+        endif
+    endforeach
+endforeach
+
diff --git a/gen/org/freedesktop/UPower/Device/meson.build b/gen/org/freedesktop/UPower/Device/meson.build
index fd8097c..3f9452b 100644
--- a/gen/org/freedesktop/UPower/Device/meson.build
+++ b/gen/org/freedesktop/UPower/Device/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'org/freedesktop/UPower/Device'
+
 generated_sources += custom_target(
     'org/freedesktop/UPower/Device__cpp'.underscorify(),
-    input: [ '../../../../../yaml/org/freedesktop/UPower/Device.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/org/freedesktop/UPower/Device.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'org/freedesktop/UPower/Device',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/org/freedesktop/UPower/meson.build b/gen/org/freedesktop/UPower/meson.build
index f87d535..95c1c55 100644
--- a/gen/org/freedesktop/UPower/meson.build
+++ b/gen/org/freedesktop/UPower/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('Device')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'org/freedesktop/UPower'
+
+generated_markdown += custom_target(
     'org/freedesktop/UPower/Device__markdown'.underscorify(),
     input: [ '../../../../yaml/org/freedesktop/UPower/Device.interface.yaml',  ],
     output: [ 'Device.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'org/freedesktop/UPower/Device',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/org/open_power/Common/Callout/meson.build b/gen/org/open_power/Common/Callout/meson.build
index 96d7dcf..0c1b57b 100644
--- a/gen/org/open_power/Common/Callout/meson.build
+++ b/gen/org/open_power/Common/Callout/meson.build
@@ -1,8 +1,16 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'org/open_power/Common/Callout'
+
 generated_sources += custom_target(
     'org/open_power/Common/Callout__cpp'.underscorify(),
-    input: [ '../../../../../yaml/org/open_power/Common/Callout.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../../yaml/org/open_power/Common/Callout.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +19,11 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'org/open_power/Common/Callout',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/org/open_power/Common/meson.build b/gen/org/open_power/Common/meson.build
index c50edd7..6626a09 100644
--- a/gen/org/open_power/Common/meson.build
+++ b/gen/org/open_power/Common/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('Callout')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'org/open_power/Common'
+
+generated_markdown += custom_target(
     'org/open_power/Common/Callout__markdown'.underscorify(),
     input: [ '../../../../yaml/org/open_power/Common/Callout.errors.yaml',  ],
     output: [ 'Callout.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'org/open_power/Common/Callout',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/org/open_power/Control/Host/meson.build b/gen/org/open_power/Control/Host/meson.build
index 78cd665..ece1221 100644
--- a/gen/org/open_power/Control/Host/meson.build
+++ b/gen/org/open_power/Control/Host/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'org/open_power/Control/Host'
+
 generated_sources += custom_target(
     'org/open_power/Control/Host__cpp'.underscorify(),
-    input: [ '../../../../../yaml/org/open_power/Control/Host.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/org/open_power/Control/Host.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'org/open_power/Control/Host',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/org/open_power/Control/TPM/SecurityKeys/meson.build b/gen/org/open_power/Control/TPM/SecurityKeys/meson.build
index d89fa71..65f45e2 100644
--- a/gen/org/open_power/Control/TPM/SecurityKeys/meson.build
+++ b/gen/org/open_power/Control/TPM/SecurityKeys/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'org/open_power/Control/TPM/SecurityKeys'
+
 generated_sources += custom_target(
     'org/open_power/Control/TPM/SecurityKeys__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/org/open_power/Control/TPM/SecurityKeys.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/org/open_power/Control/TPM/SecurityKeys.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'org/open_power/Control/TPM/SecurityKeys',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/org/open_power/Control/TPM/meson.build b/gen/org/open_power/Control/TPM/meson.build
index c5b3c6b..093ce18 100644
--- a/gen/org/open_power/Control/TPM/meson.build
+++ b/gen/org/open_power/Control/TPM/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('SecurityKeys')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'org/open_power/Control/TPM'
+
+generated_markdown += custom_target(
     'org/open_power/Control/TPM/SecurityKeys__markdown'.underscorify(),
     input: [ '../../../../../yaml/org/open_power/Control/TPM/SecurityKeys.interface.yaml',  ],
     output: [ 'SecurityKeys.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'org/open_power/Control/TPM/SecurityKeys',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/org/open_power/Control/meson.build b/gen/org/open_power/Control/meson.build
index 358e023..13b72c2 100644
--- a/gen/org/open_power/Control/meson.build
+++ b/gen/org/open_power/Control/meson.build
@@ -1,6 +1,10 @@
 # Generated file; do not modify.
 subdir('Host')
-generated_others += custom_target(
+subdir('TPM')
+
+sdbusplus_current_path = 'org/open_power/Control'
+
+generated_markdown += custom_target(
     'org/open_power/Control/Host__markdown'.underscorify(),
     input: [ '../../../../yaml/org/open_power/Control/Host.interface.yaml',  ],
     output: [ 'Host.md' ],
@@ -12,6 +16,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'org/open_power/Control/Host',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('TPM')
diff --git a/gen/org/open_power/Host/Access/meson.build b/gen/org/open_power/Host/Access/meson.build
index e925d64..6a06209 100644
--- a/gen/org/open_power/Host/Access/meson.build
+++ b/gen/org/open_power/Host/Access/meson.build
@@ -1,8 +1,16 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'org/open_power/Host/Access'
+
 generated_sources += custom_target(
     'org/open_power/Host/Access__cpp'.underscorify(),
-    input: [ '../../../../../yaml/org/open_power/Host/Access.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../../yaml/org/open_power/Host/Access.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +19,11 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'org/open_power/Host/Access',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/org/open_power/Host/Boot/meson.build b/gen/org/open_power/Host/Boot/meson.build
index 6a86ba3..04ead34 100644
--- a/gen/org/open_power/Host/Boot/meson.build
+++ b/gen/org/open_power/Host/Boot/meson.build
@@ -1,8 +1,16 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'org/open_power/Host/Boot'
+
 generated_sources += custom_target(
     'org/open_power/Host/Boot__cpp'.underscorify(),
-    input: [ '../../../../../yaml/org/open_power/Host/Boot.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../../yaml/org/open_power/Host/Boot.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +19,11 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'org/open_power/Host/Boot',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/org/open_power/Host/meson.build b/gen/org/open_power/Host/meson.build
index 7e7e890..1717493 100644
--- a/gen/org/open_power/Host/meson.build
+++ b/gen/org/open_power/Host/meson.build
@@ -1,8 +1,18 @@
 # Generated file; do not modify.
+subdir('Access')
+subdir('Boot')
+
+sdbusplus_current_path = 'org/open_power/Host'
+
 generated_sources += custom_target(
     'org/open_power/Host__cpp'.underscorify(),
-    input: [ '../../../../yaml/org/open_power/Host.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../yaml/org/open_power/Host.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,10 +21,15 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'org/open_power/Host',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
-subdir('Access')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'org/open_power/Host/Access__markdown'.underscorify(),
     input: [ '../../../../yaml/org/open_power/Host/Access.errors.yaml',  ],
     output: [ 'Access.md' ],
@@ -26,10 +41,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'org/open_power/Host/Access',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Boot')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'org/open_power/Host/Boot__markdown'.underscorify(),
     input: [ '../../../../yaml/org/open_power/Host/Boot.errors.yaml',  ],
     output: [ 'Boot.md' ],
@@ -41,5 +58,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'org/open_power/Host/Boot',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/org/open_power/Inventory/Decorator/Asset/meson.build b/gen/org/open_power/Inventory/Decorator/Asset/meson.build
index d06917b..d960cbf 100644
--- a/gen/org/open_power/Inventory/Decorator/Asset/meson.build
+++ b/gen/org/open_power/Inventory/Decorator/Asset/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'org/open_power/Inventory/Decorator/Asset'
+
 generated_sources += custom_target(
     'org/open_power/Inventory/Decorator/Asset__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/org/open_power/Inventory/Decorator/Asset.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/org/open_power/Inventory/Decorator/Asset.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'org/open_power/Inventory/Decorator/Asset',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/org/open_power/Inventory/Decorator/meson.build b/gen/org/open_power/Inventory/Decorator/meson.build
index 5eaeaf5..509c85d 100644
--- a/gen/org/open_power/Inventory/Decorator/meson.build
+++ b/gen/org/open_power/Inventory/Decorator/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('Asset')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'org/open_power/Inventory/Decorator'
+
+generated_markdown += custom_target(
     'org/open_power/Inventory/Decorator/Asset__markdown'.underscorify(),
     input: [ '../../../../../yaml/org/open_power/Inventory/Decorator/Asset.interface.yaml',  ],
     output: [ 'Asset.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'org/open_power/Inventory/Decorator/Asset',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/org/open_power/Logging/PEL/Entry/meson.build b/gen/org/open_power/Logging/PEL/Entry/meson.build
index 843b5ca..b341640 100644
--- a/gen/org/open_power/Logging/PEL/Entry/meson.build
+++ b/gen/org/open_power/Logging/PEL/Entry/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'org/open_power/Logging/PEL/Entry'
+
 generated_sources += custom_target(
     'org/open_power/Logging/PEL/Entry__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/org/open_power/Logging/PEL/Entry.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/org/open_power/Logging/PEL/Entry.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'org/open_power/Logging/PEL/Entry',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/org/open_power/Logging/PEL/meson.build b/gen/org/open_power/Logging/PEL/meson.build
index ea1a60e..f505838 100644
--- a/gen/org/open_power/Logging/PEL/meson.build
+++ b/gen/org/open_power/Logging/PEL/meson.build
@@ -1,8 +1,20 @@
 # Generated file; do not modify.
+subdir('Entry')
+
+sdbusplus_current_path = 'org/open_power/Logging/PEL'
+
 generated_sources += custom_target(
     'org/open_power/Logging/PEL__cpp'.underscorify(),
-    input: [ '../../../../../yaml/org/open_power/Logging/PEL.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/org/open_power/Logging/PEL.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,10 +23,18 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'org/open_power/Logging/PEL',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
-subdir('Entry')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'org/open_power/Logging/PEL/Entry__markdown'.underscorify(),
     input: [ '../../../../../yaml/org/open_power/Logging/PEL/Entry.interface.yaml',  ],
     output: [ 'Entry.md' ],
@@ -26,5 +46,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'org/open_power/Logging/PEL/Entry',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/org/open_power/Logging/meson.build b/gen/org/open_power/Logging/meson.build
index 63f4c55..0c8be45 100644
--- a/gen/org/open_power/Logging/meson.build
+++ b/gen/org/open_power/Logging/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('PEL')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'org/open_power/Logging'
+
+generated_markdown += custom_target(
     'org/open_power/Logging/PEL__markdown'.underscorify(),
     input: [ '../../../../yaml/org/open_power/Logging/PEL.interface.yaml',  ],
     output: [ 'PEL.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'org/open_power/Logging/PEL',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/org/open_power/OCC/Device/meson.build b/gen/org/open_power/OCC/Device/meson.build
index 84af1ab..b9a8d62 100644
--- a/gen/org/open_power/OCC/Device/meson.build
+++ b/gen/org/open_power/OCC/Device/meson.build
@@ -1,8 +1,16 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'org/open_power/OCC/Device'
+
 generated_sources += custom_target(
     'org/open_power/OCC/Device__cpp'.underscorify(),
-    input: [ '../../../../../yaml/org/open_power/OCC/Device.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../../yaml/org/open_power/OCC/Device.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +19,11 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'org/open_power/OCC/Device',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/org/open_power/OCC/PassThrough/meson.build b/gen/org/open_power/OCC/PassThrough/meson.build
index fee9fb3..3d11120 100644
--- a/gen/org/open_power/OCC/PassThrough/meson.build
+++ b/gen/org/open_power/OCC/PassThrough/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'org/open_power/OCC/PassThrough'
+
 generated_sources += custom_target(
     'org/open_power/OCC/PassThrough__cpp'.underscorify(),
-    input: [ '../../../../../yaml/org/open_power/OCC/PassThrough.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/org/open_power/OCC/PassThrough.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'org/open_power/OCC/PassThrough',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/org/open_power/OCC/Status/meson.build b/gen/org/open_power/OCC/Status/meson.build
index bf03294..2aaf9d7 100644
--- a/gen/org/open_power/OCC/Status/meson.build
+++ b/gen/org/open_power/OCC/Status/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'org/open_power/OCC/Status'
+
 generated_sources += custom_target(
     'org/open_power/OCC/Status__cpp'.underscorify(),
-    input: [ '../../../../../yaml/org/open_power/OCC/Status.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/org/open_power/OCC/Status.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'org/open_power/OCC/Status',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/org/open_power/OCC/meson.build b/gen/org/open_power/OCC/meson.build
index 6c00760..62dfb74 100644
--- a/gen/org/open_power/OCC/meson.build
+++ b/gen/org/open_power/OCC/meson.build
@@ -1,6 +1,11 @@
 # Generated file; do not modify.
 subdir('Device')
-generated_others += custom_target(
+subdir('PassThrough')
+subdir('Status')
+
+sdbusplus_current_path = 'org/open_power/OCC'
+
+generated_markdown += custom_target(
     'org/open_power/OCC/Device__markdown'.underscorify(),
     input: [ '../../../../yaml/org/open_power/OCC/Device.errors.yaml',  ],
     output: [ 'Device.md' ],
@@ -12,10 +17,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'org/open_power/OCC/Device',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('PassThrough')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'org/open_power/OCC/PassThrough__markdown'.underscorify(),
     input: [ '../../../../yaml/org/open_power/OCC/PassThrough.interface.yaml',  ],
     output: [ 'PassThrough.md' ],
@@ -27,10 +34,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'org/open_power/OCC/PassThrough',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Status')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'org/open_power/OCC/Status__markdown'.underscorify(),
     input: [ '../../../../yaml/org/open_power/OCC/Status.interface.yaml',  ],
     output: [ 'Status.md' ],
@@ -42,5 +51,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'org/open_power/OCC/Status',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/org/open_power/Proc/FSI/meson.build b/gen/org/open_power/Proc/FSI/meson.build
index 562bdce..59a0f9b 100644
--- a/gen/org/open_power/Proc/FSI/meson.build
+++ b/gen/org/open_power/Proc/FSI/meson.build
@@ -1,8 +1,16 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'org/open_power/Proc/FSI'
+
 generated_sources += custom_target(
     'org/open_power/Proc/FSI__cpp'.underscorify(),
-    input: [ '../../../../../yaml/org/open_power/Proc/FSI.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../../yaml/org/open_power/Proc/FSI.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +19,11 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'org/open_power/Proc/FSI',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/org/open_power/Proc/meson.build b/gen/org/open_power/Proc/meson.build
index 2a4707e..90ad4a3 100644
--- a/gen/org/open_power/Proc/meson.build
+++ b/gen/org/open_power/Proc/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('FSI')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'org/open_power/Proc'
+
+generated_markdown += custom_target(
     'org/open_power/Proc/FSI__markdown'.underscorify(),
     input: [ '../../../../yaml/org/open_power/Proc/FSI.errors.yaml',  ],
     output: [ 'FSI.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'org/open_power/Proc/FSI',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/org/open_power/Sensor/Aggregation/History/Average/meson.build b/gen/org/open_power/Sensor/Aggregation/History/Average/meson.build
index 08c3538..7864250 100644
--- a/gen/org/open_power/Sensor/Aggregation/History/Average/meson.build
+++ b/gen/org/open_power/Sensor/Aggregation/History/Average/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'org/open_power/Sensor/Aggregation/History/Average'
+
 generated_sources += custom_target(
     'org/open_power/Sensor/Aggregation/History/Average__cpp'.underscorify(),
-    input: [ '../../../../../../../yaml/org/open_power/Sensor/Aggregation/History/Average.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../../yaml/org/open_power/Sensor/Aggregation/History/Average.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../../yaml',
         'org/open_power/Sensor/Aggregation/History/Average',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/org/open_power/Sensor/Aggregation/History/Maximum/meson.build b/gen/org/open_power/Sensor/Aggregation/History/Maximum/meson.build
index eab95f6..e34abdb 100644
--- a/gen/org/open_power/Sensor/Aggregation/History/Maximum/meson.build
+++ b/gen/org/open_power/Sensor/Aggregation/History/Maximum/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'org/open_power/Sensor/Aggregation/History/Maximum'
+
 generated_sources += custom_target(
     'org/open_power/Sensor/Aggregation/History/Maximum__cpp'.underscorify(),
-    input: [ '../../../../../../../yaml/org/open_power/Sensor/Aggregation/History/Maximum.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../../yaml/org/open_power/Sensor/Aggregation/History/Maximum.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../../yaml',
         'org/open_power/Sensor/Aggregation/History/Maximum',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/org/open_power/Sensor/Aggregation/History/meson.build b/gen/org/open_power/Sensor/Aggregation/History/meson.build
index 12992a5..4c799a4 100644
--- a/gen/org/open_power/Sensor/Aggregation/History/meson.build
+++ b/gen/org/open_power/Sensor/Aggregation/History/meson.build
@@ -1,6 +1,10 @@
 # Generated file; do not modify.
 subdir('Average')
-generated_others += custom_target(
+subdir('Maximum')
+
+sdbusplus_current_path = 'org/open_power/Sensor/Aggregation/History'
+
+generated_markdown += custom_target(
     'org/open_power/Sensor/Aggregation/History/Average__markdown'.underscorify(),
     input: [ '../../../../../../yaml/org/open_power/Sensor/Aggregation/History/Average.interface.yaml',  ],
     output: [ 'Average.md' ],
@@ -12,10 +16,12 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'org/open_power/Sensor/Aggregation/History/Average',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Maximum')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'org/open_power/Sensor/Aggregation/History/Maximum__markdown'.underscorify(),
     input: [ '../../../../../../yaml/org/open_power/Sensor/Aggregation/History/Maximum.interface.yaml',  ],
     output: [ 'Maximum.md' ],
@@ -27,5 +33,8 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'org/open_power/Sensor/Aggregation/History/Maximum',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/org/open_power/meson.build b/gen/org/open_power/meson.build
index b24f5ea..84bf1e8 100644
--- a/gen/org/open_power/meson.build
+++ b/gen/org/open_power/meson.build
@@ -2,7 +2,15 @@
 subdir('Common')
 subdir('Control')
 subdir('Host')
-generated_others += custom_target(
+subdir('Inventory')
+subdir('Logging')
+subdir('OCC')
+subdir('Proc')
+subdir('Sensor')
+
+sdbusplus_current_path = 'org/open_power'
+
+generated_markdown += custom_target(
     'org/open_power/Host__markdown'.underscorify(),
     input: [ '../../../yaml/org/open_power/Host.errors.yaml',  ],
     output: [ 'Host.md' ],
@@ -14,10 +22,8 @@
         '--directory', meson.current_source_dir() / '../../../yaml',
         'org/open_power/Host',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Inventory')
-subdir('Logging')
-subdir('OCC')
-subdir('Proc')
-subdir('Sensor')
diff --git a/gen/xyz/openbmc_project/Association/Definitions/meson.build b/gen/xyz/openbmc_project/Association/Definitions/meson.build
index d921f05..c68bab2 100644
--- a/gen/xyz/openbmc_project/Association/Definitions/meson.build
+++ b/gen/xyz/openbmc_project/Association/Definitions/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Association/Definitions'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Association/Definitions__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Association/Definitions.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Association/Definitions.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Association/Definitions',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Association/meson.build b/gen/xyz/openbmc_project/Association/meson.build
index 31c8e2d..c049f5a 100644
--- a/gen/xyz/openbmc_project/Association/meson.build
+++ b/gen/xyz/openbmc_project/Association/meson.build
@@ -1,8 +1,20 @@
 # Generated file; do not modify.
+subdir('Definitions')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Association'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Association__cpp'.underscorify(),
-    input: [ '../../../../yaml/xyz/openbmc_project/Association.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../yaml/xyz/openbmc_project/Association.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,10 +23,18 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Association',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
-subdir('Definitions')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Association/Definitions__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Association/Definitions.interface.yaml',  ],
     output: [ 'Definitions.md' ],
@@ -26,5 +46,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Association/Definitions',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Attestation/ComponentIntegrity/meson.build b/gen/xyz/openbmc_project/Attestation/ComponentIntegrity/meson.build
index 6d2696a..23a2fbc 100644
--- a/gen/xyz/openbmc_project/Attestation/ComponentIntegrity/meson.build
+++ b/gen/xyz/openbmc_project/Attestation/ComponentIntegrity/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Attestation/ComponentIntegrity'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Attestation/ComponentIntegrity__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Attestation/ComponentIntegrity.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Attestation/ComponentIntegrity.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Attestation/ComponentIntegrity',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Attestation/IdentityAuthentication/meson.build b/gen/xyz/openbmc_project/Attestation/IdentityAuthentication/meson.build
index 60d1f7c..4e0d4b9 100644
--- a/gen/xyz/openbmc_project/Attestation/IdentityAuthentication/meson.build
+++ b/gen/xyz/openbmc_project/Attestation/IdentityAuthentication/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Attestation/IdentityAuthentication'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Attestation/IdentityAuthentication__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Attestation/IdentityAuthentication.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Attestation/IdentityAuthentication.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Attestation/IdentityAuthentication',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Attestation/MeasurementSet/meson.build b/gen/xyz/openbmc_project/Attestation/MeasurementSet/meson.build
index 532a14e..d37852b 100644
--- a/gen/xyz/openbmc_project/Attestation/MeasurementSet/meson.build
+++ b/gen/xyz/openbmc_project/Attestation/MeasurementSet/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Attestation/MeasurementSet'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Attestation/MeasurementSet__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Attestation/MeasurementSet.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Attestation/MeasurementSet.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Attestation/MeasurementSet',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Attestation/meson.build b/gen/xyz/openbmc_project/Attestation/meson.build
index 86e0952..ad4b061 100644
--- a/gen/xyz/openbmc_project/Attestation/meson.build
+++ b/gen/xyz/openbmc_project/Attestation/meson.build
@@ -1,6 +1,11 @@
 # Generated file; do not modify.
 subdir('ComponentIntegrity')
-generated_others += custom_target(
+subdir('IdentityAuthentication')
+subdir('MeasurementSet')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Attestation'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Attestation/ComponentIntegrity__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Attestation/ComponentIntegrity.interface.yaml',  ],
     output: [ 'ComponentIntegrity.md' ],
@@ -12,10 +17,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Attestation/ComponentIntegrity',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('IdentityAuthentication')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Attestation/IdentityAuthentication__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Attestation/IdentityAuthentication.interface.yaml',  ],
     output: [ 'IdentityAuthentication.md' ],
@@ -27,10 +34,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Attestation/IdentityAuthentication',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('MeasurementSet')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Attestation/MeasurementSet__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Attestation/MeasurementSet.interface.yaml',  ],
     output: [ 'MeasurementSet.md' ],
@@ -42,5 +51,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Attestation/MeasurementSet',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/BIOSConfig/Common/meson.build b/gen/xyz/openbmc_project/BIOSConfig/Common/meson.build
index 864e9fe..169a34f 100644
--- a/gen/xyz/openbmc_project/BIOSConfig/Common/meson.build
+++ b/gen/xyz/openbmc_project/BIOSConfig/Common/meson.build
@@ -1,8 +1,16 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/BIOSConfig/Common'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/BIOSConfig/Common__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/BIOSConfig/Common.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/BIOSConfig/Common.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +19,11 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/BIOSConfig/Common',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/BIOSConfig/Manager/meson.build b/gen/xyz/openbmc_project/BIOSConfig/Manager/meson.build
index bd9eaa1..b289660 100644
--- a/gen/xyz/openbmc_project/BIOSConfig/Manager/meson.build
+++ b/gen/xyz/openbmc_project/BIOSConfig/Manager/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/BIOSConfig/Manager'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/BIOSConfig/Manager__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/BIOSConfig/Manager.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/BIOSConfig/Manager.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/BIOSConfig/Manager',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/BIOSConfig/Password/meson.build b/gen/xyz/openbmc_project/BIOSConfig/Password/meson.build
index 4b3f893..7bf857c 100644
--- a/gen/xyz/openbmc_project/BIOSConfig/Password/meson.build
+++ b/gen/xyz/openbmc_project/BIOSConfig/Password/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/BIOSConfig/Password'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/BIOSConfig/Password__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/BIOSConfig/Password.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/BIOSConfig/Password.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/BIOSConfig/Password',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/BIOSConfig/meson.build b/gen/xyz/openbmc_project/BIOSConfig/meson.build
index e36ab70..13ac0f7 100644
--- a/gen/xyz/openbmc_project/BIOSConfig/meson.build
+++ b/gen/xyz/openbmc_project/BIOSConfig/meson.build
@@ -1,6 +1,11 @@
 # Generated file; do not modify.
 subdir('Common')
-generated_others += custom_target(
+subdir('Manager')
+subdir('Password')
+
+sdbusplus_current_path = 'xyz/openbmc_project/BIOSConfig'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/BIOSConfig/Common__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/BIOSConfig/Common.errors.yaml',  ],
     output: [ 'Common.md' ],
@@ -12,10 +17,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/BIOSConfig/Common',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Manager')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/BIOSConfig/Manager__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/BIOSConfig/Manager.interface.yaml',  ],
     output: [ 'Manager.md' ],
@@ -27,10 +34,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/BIOSConfig/Manager',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Password')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/BIOSConfig/Password__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/BIOSConfig/Password.interface.yaml',  ],
     output: [ 'Password.md' ],
@@ -42,5 +51,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/BIOSConfig/Password',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Certs/Authority/meson.build b/gen/xyz/openbmc_project/Certs/Authority/meson.build
index 578f8ec..24aab6b 100644
--- a/gen/xyz/openbmc_project/Certs/Authority/meson.build
+++ b/gen/xyz/openbmc_project/Certs/Authority/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Certs/Authority'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Certs/Authority__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Certs/Authority.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Certs/Authority.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Certs/Authority',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Certs/CSR/Create/meson.build b/gen/xyz/openbmc_project/Certs/CSR/Create/meson.build
index d4f3842..b7f5eb5 100644
--- a/gen/xyz/openbmc_project/Certs/CSR/Create/meson.build
+++ b/gen/xyz/openbmc_project/Certs/CSR/Create/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Certs/CSR/Create'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Certs/CSR/Create__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Certs/CSR/Create.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Certs/CSR/Create.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Certs/CSR/Create',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Certs/CSR/meson.build b/gen/xyz/openbmc_project/Certs/CSR/meson.build
index 0d2bf9b..2c6a795 100644
--- a/gen/xyz/openbmc_project/Certs/CSR/meson.build
+++ b/gen/xyz/openbmc_project/Certs/CSR/meson.build
@@ -1,8 +1,20 @@
 # Generated file; do not modify.
+subdir('Create')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Certs/CSR'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Certs/CSR__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Certs/CSR.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Certs/CSR.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,10 +23,18 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Certs/CSR',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
-subdir('Create')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Certs/CSR/Create__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Certs/CSR/Create.interface.yaml',  ],
     output: [ 'Create.md' ],
@@ -26,5 +46,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Certs/CSR/Create',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Certs/Certificate/meson.build b/gen/xyz/openbmc_project/Certs/Certificate/meson.build
index e9fb0a1..cd85e76 100644
--- a/gen/xyz/openbmc_project/Certs/Certificate/meson.build
+++ b/gen/xyz/openbmc_project/Certs/Certificate/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Certs/Certificate'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Certs/Certificate__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Certs/Certificate.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Certs/Certificate.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Certs/Certificate',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Certs/Entry/meson.build b/gen/xyz/openbmc_project/Certs/Entry/meson.build
index cdedd74..65baf6e 100644
--- a/gen/xyz/openbmc_project/Certs/Entry/meson.build
+++ b/gen/xyz/openbmc_project/Certs/Entry/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Certs/Entry'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Certs/Entry__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Certs/Entry.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Certs/Entry.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Certs/Entry',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Certs/Install/meson.build b/gen/xyz/openbmc_project/Certs/Install/meson.build
index fc02883..41d464d 100644
--- a/gen/xyz/openbmc_project/Certs/Install/meson.build
+++ b/gen/xyz/openbmc_project/Certs/Install/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Certs/Install'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Certs/Install__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Certs/Install.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Certs/Install.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Certs/Install',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Certs/InstallAll/meson.build b/gen/xyz/openbmc_project/Certs/InstallAll/meson.build
index de7de71..cc6fd74 100644
--- a/gen/xyz/openbmc_project/Certs/InstallAll/meson.build
+++ b/gen/xyz/openbmc_project/Certs/InstallAll/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Certs/InstallAll'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Certs/InstallAll__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Certs/InstallAll.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Certs/InstallAll.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Certs/InstallAll',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Certs/Replace/meson.build b/gen/xyz/openbmc_project/Certs/Replace/meson.build
index 74d4290..5e5c427 100644
--- a/gen/xyz/openbmc_project/Certs/Replace/meson.build
+++ b/gen/xyz/openbmc_project/Certs/Replace/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Certs/Replace'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Certs/Replace__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Certs/Replace.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Certs/Replace.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Certs/Replace',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Certs/ReplaceAll/meson.build b/gen/xyz/openbmc_project/Certs/ReplaceAll/meson.build
index f50f5f9..53726a8 100644
--- a/gen/xyz/openbmc_project/Certs/ReplaceAll/meson.build
+++ b/gen/xyz/openbmc_project/Certs/ReplaceAll/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Certs/ReplaceAll'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Certs/ReplaceAll__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Certs/ReplaceAll.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Certs/ReplaceAll.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Certs/ReplaceAll',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Certs/meson.build b/gen/xyz/openbmc_project/Certs/meson.build
index f6210aa..f877d06 100644
--- a/gen/xyz/openbmc_project/Certs/meson.build
+++ b/gen/xyz/openbmc_project/Certs/meson.build
@@ -1,8 +1,24 @@
 # Generated file; do not modify.
+subdir('Authority')
+subdir('CSR')
+subdir('Certificate')
+subdir('Entry')
+subdir('Install')
+subdir('InstallAll')
+subdir('Replace')
+subdir('ReplaceAll')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Certs'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Certs__cpp'.underscorify(),
-    input: [ '../../../../yaml/xyz/openbmc_project/Certs.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../yaml/xyz/openbmc_project/Certs.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,10 +27,15 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Certs',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
-subdir('Authority')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Certs/Authority__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Certs/Authority.interface.yaml',  ],
     output: [ 'Authority.md' ],
@@ -26,10 +47,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Certs/Authority',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('CSR')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Certs/CSR__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Certs/CSR.interface.yaml',  ],
     output: [ 'CSR.md' ],
@@ -41,10 +64,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Certs/CSR',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Certificate')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Certs/Certificate__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Certs/Certificate.interface.yaml',  ],
     output: [ 'Certificate.md' ],
@@ -56,10 +81,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Certs/Certificate',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Entry')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Certs/Entry__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Certs/Entry.interface.yaml',  ],
     output: [ 'Entry.md' ],
@@ -71,10 +98,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Certs/Entry',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Install')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Certs/Install__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Certs/Install.interface.yaml',  ],
     output: [ 'Install.md' ],
@@ -86,10 +115,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Certs/Install',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('InstallAll')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Certs/InstallAll__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Certs/InstallAll.interface.yaml',  ],
     output: [ 'InstallAll.md' ],
@@ -101,10 +132,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Certs/InstallAll',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Replace')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Certs/Replace__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Certs/Replace.interface.yaml',  ],
     output: [ 'Replace.md' ],
@@ -116,10 +149,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Certs/Replace',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('ReplaceAll')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Certs/ReplaceAll__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Certs/ReplaceAll.interface.yaml',  ],
     output: [ 'ReplaceAll.md' ],
@@ -131,5 +166,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Certs/ReplaceAll',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Channel/ChannelAccess/meson.build b/gen/xyz/openbmc_project/Channel/ChannelAccess/meson.build
index 73c8fc8..5e8fa1b 100644
--- a/gen/xyz/openbmc_project/Channel/ChannelAccess/meson.build
+++ b/gen/xyz/openbmc_project/Channel/ChannelAccess/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Channel/ChannelAccess'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Channel/ChannelAccess__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Channel/ChannelAccess.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Channel/ChannelAccess.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Channel/ChannelAccess',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Channel/meson.build b/gen/xyz/openbmc_project/Channel/meson.build
index 97ec9a1..7a373cb 100644
--- a/gen/xyz/openbmc_project/Channel/meson.build
+++ b/gen/xyz/openbmc_project/Channel/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('ChannelAccess')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'xyz/openbmc_project/Channel'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Channel/ChannelAccess__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Channel/ChannelAccess.interface.yaml',  ],
     output: [ 'ChannelAccess.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Channel/ChannelAccess',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Chassis/Buttons/Button/meson.build b/gen/xyz/openbmc_project/Chassis/Buttons/Button/meson.build
index 0e869e4..7cc9452 100644
--- a/gen/xyz/openbmc_project/Chassis/Buttons/Button/meson.build
+++ b/gen/xyz/openbmc_project/Chassis/Buttons/Button/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Chassis/Buttons/Button'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Chassis/Buttons/Button__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Chassis/Buttons/Button.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Chassis/Buttons/Button.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Chassis/Buttons/Button',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Chassis/Buttons/HostSelector/meson.build b/gen/xyz/openbmc_project/Chassis/Buttons/HostSelector/meson.build
index 62175c5..c24d6da 100644
--- a/gen/xyz/openbmc_project/Chassis/Buttons/HostSelector/meson.build
+++ b/gen/xyz/openbmc_project/Chassis/Buttons/HostSelector/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Chassis/Buttons/HostSelector'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Chassis/Buttons/HostSelector__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Chassis/Buttons/HostSelector.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Chassis/Buttons/HostSelector.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Chassis/Buttons/HostSelector',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Chassis/Buttons/ID/meson.build b/gen/xyz/openbmc_project/Chassis/Buttons/ID/meson.build
index 0239954..a9d122e 100644
--- a/gen/xyz/openbmc_project/Chassis/Buttons/ID/meson.build
+++ b/gen/xyz/openbmc_project/Chassis/Buttons/ID/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Chassis/Buttons/ID'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Chassis/Buttons/ID__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Chassis/Buttons/ID.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Chassis/Buttons/ID.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Chassis/Buttons/ID',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Chassis/Buttons/NMI/meson.build b/gen/xyz/openbmc_project/Chassis/Buttons/NMI/meson.build
index ace0c8e..99ff881 100644
--- a/gen/xyz/openbmc_project/Chassis/Buttons/NMI/meson.build
+++ b/gen/xyz/openbmc_project/Chassis/Buttons/NMI/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Chassis/Buttons/NMI'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Chassis/Buttons/NMI__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Chassis/Buttons/NMI.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Chassis/Buttons/NMI.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Chassis/Buttons/NMI',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Chassis/Buttons/Power/meson.build b/gen/xyz/openbmc_project/Chassis/Buttons/Power/meson.build
index f15ac93..008abcd 100644
--- a/gen/xyz/openbmc_project/Chassis/Buttons/Power/meson.build
+++ b/gen/xyz/openbmc_project/Chassis/Buttons/Power/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Chassis/Buttons/Power'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Chassis/Buttons/Power__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Chassis/Buttons/Power.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Chassis/Buttons/Power.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Chassis/Buttons/Power',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Chassis/Buttons/Reset/meson.build b/gen/xyz/openbmc_project/Chassis/Buttons/Reset/meson.build
index 0c0e511..77a3fe9 100644
--- a/gen/xyz/openbmc_project/Chassis/Buttons/Reset/meson.build
+++ b/gen/xyz/openbmc_project/Chassis/Buttons/Reset/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Chassis/Buttons/Reset'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Chassis/Buttons/Reset__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Chassis/Buttons/Reset.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Chassis/Buttons/Reset.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Chassis/Buttons/Reset',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Chassis/Buttons/meson.build b/gen/xyz/openbmc_project/Chassis/Buttons/meson.build
index 6bbe5da..c2b830a 100644
--- a/gen/xyz/openbmc_project/Chassis/Buttons/meson.build
+++ b/gen/xyz/openbmc_project/Chassis/Buttons/meson.build
@@ -1,6 +1,14 @@
 # Generated file; do not modify.
 subdir('Button')
-generated_others += custom_target(
+subdir('HostSelector')
+subdir('ID')
+subdir('NMI')
+subdir('Power')
+subdir('Reset')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Chassis/Buttons'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Chassis/Buttons/Button__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Chassis/Buttons/Button.interface.yaml',  ],
     output: [ 'Button.md' ],
@@ -12,10 +20,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Chassis/Buttons/Button',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('HostSelector')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Chassis/Buttons/HostSelector__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Chassis/Buttons/HostSelector.interface.yaml',  ],
     output: [ 'HostSelector.md' ],
@@ -27,10 +37,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Chassis/Buttons/HostSelector',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('ID')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Chassis/Buttons/ID__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Chassis/Buttons/ID.interface.yaml',  ],
     output: [ 'ID.md' ],
@@ -42,10 +54,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Chassis/Buttons/ID',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('NMI')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Chassis/Buttons/NMI__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Chassis/Buttons/NMI.interface.yaml',  ],
     output: [ 'NMI.md' ],
@@ -57,10 +71,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Chassis/Buttons/NMI',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Power')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Chassis/Buttons/Power__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Chassis/Buttons/Power.interface.yaml',  ],
     output: [ 'Power.md' ],
@@ -72,10 +88,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Chassis/Buttons/Power',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Reset')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Chassis/Buttons/Reset__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Chassis/Buttons/Reset.interface.yaml',  ],
     output: [ 'Reset.md' ],
@@ -87,5 +105,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Chassis/Buttons/Reset',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Chassis/Common/meson.build b/gen/xyz/openbmc_project/Chassis/Common/meson.build
index 5d51d91..dbe530c 100644
--- a/gen/xyz/openbmc_project/Chassis/Common/meson.build
+++ b/gen/xyz/openbmc_project/Chassis/Common/meson.build
@@ -1,8 +1,16 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Chassis/Common'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Chassis/Common__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Chassis/Common.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Chassis/Common.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +19,11 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Chassis/Common',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Chassis/Control/NMISource/meson.build b/gen/xyz/openbmc_project/Chassis/Control/NMISource/meson.build
index c9431b4..578ecb7 100644
--- a/gen/xyz/openbmc_project/Chassis/Control/NMISource/meson.build
+++ b/gen/xyz/openbmc_project/Chassis/Control/NMISource/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Chassis/Control/NMISource'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Chassis/Control/NMISource__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Chassis/Control/NMISource.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Chassis/Control/NMISource.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Chassis/Control/NMISource',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Chassis/Control/Power/meson.build b/gen/xyz/openbmc_project/Chassis/Control/Power/meson.build
index 99160c0..5db1878 100644
--- a/gen/xyz/openbmc_project/Chassis/Control/Power/meson.build
+++ b/gen/xyz/openbmc_project/Chassis/Control/Power/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Chassis/Control/Power'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Chassis/Control/Power__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Chassis/Control/Power.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Chassis/Control/Power.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Chassis/Control/Power',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Chassis/Control/meson.build b/gen/xyz/openbmc_project/Chassis/Control/meson.build
index 1b4a367..4b8e3df 100644
--- a/gen/xyz/openbmc_project/Chassis/Control/meson.build
+++ b/gen/xyz/openbmc_project/Chassis/Control/meson.build
@@ -1,6 +1,10 @@
 # Generated file; do not modify.
 subdir('NMISource')
-generated_others += custom_target(
+subdir('Power')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Chassis/Control'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Chassis/Control/NMISource__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Chassis/Control/NMISource.interface.yaml',  ],
     output: [ 'NMISource.md' ],
@@ -12,10 +16,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Chassis/Control/NMISource',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Power')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Chassis/Control/Power__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Chassis/Control/Power.interface.yaml',  ],
     output: [ 'Power.md' ],
@@ -27,5 +33,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Chassis/Control/Power',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Chassis/Intrusion/meson.build b/gen/xyz/openbmc_project/Chassis/Intrusion/meson.build
index e0230e7..924eaaa 100644
--- a/gen/xyz/openbmc_project/Chassis/Intrusion/meson.build
+++ b/gen/xyz/openbmc_project/Chassis/Intrusion/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Chassis/Intrusion'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Chassis/Intrusion__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Chassis/Intrusion.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Chassis/Intrusion.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Chassis/Intrusion',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Chassis/meson.build b/gen/xyz/openbmc_project/Chassis/meson.build
index 03fc2f7..5326779 100644
--- a/gen/xyz/openbmc_project/Chassis/meson.build
+++ b/gen/xyz/openbmc_project/Chassis/meson.build
@@ -1,7 +1,12 @@
 # Generated file; do not modify.
 subdir('Buttons')
 subdir('Common')
-generated_others += custom_target(
+subdir('Control')
+subdir('Intrusion')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Chassis'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Chassis/Common__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Chassis/Common.errors.yaml',  ],
     output: [ 'Common.md' ],
@@ -13,11 +18,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Chassis/Common',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Control')
-subdir('Intrusion')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Chassis/Intrusion__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Chassis/Intrusion.interface.yaml',  ],
     output: [ 'Intrusion.md' ],
@@ -29,5 +35,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Chassis/Intrusion',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Collection/DeleteAll/meson.build b/gen/xyz/openbmc_project/Collection/DeleteAll/meson.build
index 3e9e9ac..141b118 100644
--- a/gen/xyz/openbmc_project/Collection/DeleteAll/meson.build
+++ b/gen/xyz/openbmc_project/Collection/DeleteAll/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Collection/DeleteAll'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Collection/DeleteAll__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Collection/DeleteAll.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Collection/DeleteAll.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Collection/DeleteAll',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Collection/meson.build b/gen/xyz/openbmc_project/Collection/meson.build
index 5941842..f837f71 100644
--- a/gen/xyz/openbmc_project/Collection/meson.build
+++ b/gen/xyz/openbmc_project/Collection/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('DeleteAll')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'xyz/openbmc_project/Collection'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Collection/DeleteAll__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Collection/DeleteAll.interface.yaml',  ],
     output: [ 'DeleteAll.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Collection/DeleteAll',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Common/Callout/meson.build b/gen/xyz/openbmc_project/Common/Callout/meson.build
index b89b52a..f92915d 100644
--- a/gen/xyz/openbmc_project/Common/Callout/meson.build
+++ b/gen/xyz/openbmc_project/Common/Callout/meson.build
@@ -1,8 +1,16 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Common/Callout'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Common/Callout__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Common/Callout.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Common/Callout.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +19,11 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Common/Callout',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Common/Device/meson.build b/gen/xyz/openbmc_project/Common/Device/meson.build
index 683f740..9c220f7 100644
--- a/gen/xyz/openbmc_project/Common/Device/meson.build
+++ b/gen/xyz/openbmc_project/Common/Device/meson.build
@@ -1,8 +1,16 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Common/Device'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Common/Device__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Common/Device.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Common/Device.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +19,11 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Common/Device',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Common/FactoryReset/meson.build b/gen/xyz/openbmc_project/Common/FactoryReset/meson.build
index d1ff971..7f97126 100644
--- a/gen/xyz/openbmc_project/Common/FactoryReset/meson.build
+++ b/gen/xyz/openbmc_project/Common/FactoryReset/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Common/FactoryReset'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Common/FactoryReset__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Common/FactoryReset.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Common/FactoryReset.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Common/FactoryReset',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Common/FaultLogType/meson.build b/gen/xyz/openbmc_project/Common/FaultLogType/meson.build
index b2aaa87..c877857 100644
--- a/gen/xyz/openbmc_project/Common/FaultLogType/meson.build
+++ b/gen/xyz/openbmc_project/Common/FaultLogType/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Common/FaultLogType'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Common/FaultLogType__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Common/FaultLogType.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Common/FaultLogType.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Common/FaultLogType',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Common/File/meson.build b/gen/xyz/openbmc_project/Common/File/meson.build
index 9e6894d..f117880 100644
--- a/gen/xyz/openbmc_project/Common/File/meson.build
+++ b/gen/xyz/openbmc_project/Common/File/meson.build
@@ -1,8 +1,16 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Common/File'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Common/File__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Common/File.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Common/File.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +19,11 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Common/File',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Common/FilePath/meson.build b/gen/xyz/openbmc_project/Common/FilePath/meson.build
index bb0cac5..be4f4aa 100644
--- a/gen/xyz/openbmc_project/Common/FilePath/meson.build
+++ b/gen/xyz/openbmc_project/Common/FilePath/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Common/FilePath'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Common/FilePath__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Common/FilePath.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Common/FilePath.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Common/FilePath',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Common/ObjectPath/meson.build b/gen/xyz/openbmc_project/Common/ObjectPath/meson.build
index df04109..da88d82 100644
--- a/gen/xyz/openbmc_project/Common/ObjectPath/meson.build
+++ b/gen/xyz/openbmc_project/Common/ObjectPath/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Common/ObjectPath'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Common/ObjectPath__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Common/ObjectPath.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Common/ObjectPath.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Common/ObjectPath',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Common/OriginatedBy/meson.build b/gen/xyz/openbmc_project/Common/OriginatedBy/meson.build
index a096768..e5011fe 100644
--- a/gen/xyz/openbmc_project/Common/OriginatedBy/meson.build
+++ b/gen/xyz/openbmc_project/Common/OriginatedBy/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Common/OriginatedBy'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Common/OriginatedBy__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Common/OriginatedBy.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Common/OriginatedBy.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Common/OriginatedBy',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Common/Priority/meson.build b/gen/xyz/openbmc_project/Common/Priority/meson.build
index 6c61d6f..e407074 100644
--- a/gen/xyz/openbmc_project/Common/Priority/meson.build
+++ b/gen/xyz/openbmc_project/Common/Priority/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Common/Priority'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Common/Priority__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Common/Priority.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Common/Priority.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Common/Priority',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Common/Progress/meson.build b/gen/xyz/openbmc_project/Common/Progress/meson.build
index 53f7b2d..291cbb8 100644
--- a/gen/xyz/openbmc_project/Common/Progress/meson.build
+++ b/gen/xyz/openbmc_project/Common/Progress/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Common/Progress'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Common/Progress__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Common/Progress.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Common/Progress.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Common/Progress',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Common/TFTP/meson.build b/gen/xyz/openbmc_project/Common/TFTP/meson.build
index fceeb35..d2495d8 100644
--- a/gen/xyz/openbmc_project/Common/TFTP/meson.build
+++ b/gen/xyz/openbmc_project/Common/TFTP/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Common/TFTP'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Common/TFTP__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Common/TFTP.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Common/TFTP.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Common/TFTP',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Common/Threshold/meson.build b/gen/xyz/openbmc_project/Common/Threshold/meson.build
index 0bf3482..f1bea20 100644
--- a/gen/xyz/openbmc_project/Common/Threshold/meson.build
+++ b/gen/xyz/openbmc_project/Common/Threshold/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Common/Threshold'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Common/Threshold__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Common/Threshold.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Common/Threshold.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Common/Threshold',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Common/UUID/meson.build b/gen/xyz/openbmc_project/Common/UUID/meson.build
index 5ad3581..0e9d0dc 100644
--- a/gen/xyz/openbmc_project/Common/UUID/meson.build
+++ b/gen/xyz/openbmc_project/Common/UUID/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Common/UUID'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Common/UUID__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Common/UUID.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Common/UUID.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Common/UUID',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Common/meson.build b/gen/xyz/openbmc_project/Common/meson.build
index 5cadbef..0a2150f 100644
--- a/gen/xyz/openbmc_project/Common/meson.build
+++ b/gen/xyz/openbmc_project/Common/meson.build
@@ -1,8 +1,29 @@
 # Generated file; do not modify.
+subdir('Callout')
+subdir('Device')
+subdir('FactoryReset')
+subdir('FaultLogType')
+subdir('File')
+subdir('FilePath')
+subdir('ObjectPath')
+subdir('OriginatedBy')
+subdir('Priority')
+subdir('Progress')
+subdir('TFTP')
+subdir('Threshold')
+subdir('UUID')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Common'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Common__cpp'.underscorify(),
-    input: [ '../../../../yaml/xyz/openbmc_project/Common.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../yaml/xyz/openbmc_project/Common.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,10 +32,15 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Common',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
-subdir('Callout')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Common/Callout__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Common/Callout.errors.yaml',  ],
     output: [ 'Callout.md' ],
@@ -26,10 +52,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Common/Callout',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Device')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Common/Device__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Common/Device.errors.yaml',  ],
     output: [ 'Device.md' ],
@@ -41,10 +69,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Common/Device',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('FactoryReset')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Common/FactoryReset__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Common/FactoryReset.interface.yaml',  ],
     output: [ 'FactoryReset.md' ],
@@ -56,10 +86,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Common/FactoryReset',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('FaultLogType')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Common/FaultLogType__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Common/FaultLogType.interface.yaml',  ],
     output: [ 'FaultLogType.md' ],
@@ -71,10 +103,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Common/FaultLogType',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('File')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Common/File__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Common/File.errors.yaml',  ],
     output: [ 'File.md' ],
@@ -86,10 +120,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Common/File',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('FilePath')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Common/FilePath__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Common/FilePath.interface.yaml',  ],
     output: [ 'FilePath.md' ],
@@ -101,10 +137,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Common/FilePath',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('ObjectPath')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Common/ObjectPath__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Common/ObjectPath.interface.yaml',  ],
     output: [ 'ObjectPath.md' ],
@@ -116,10 +154,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Common/ObjectPath',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('OriginatedBy')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Common/OriginatedBy__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Common/OriginatedBy.interface.yaml',  ],
     output: [ 'OriginatedBy.md' ],
@@ -131,10 +171,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Common/OriginatedBy',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Priority')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Common/Priority__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Common/Priority.interface.yaml',  ],
     output: [ 'Priority.md' ],
@@ -146,10 +188,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Common/Priority',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Progress')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Common/Progress__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Common/Progress.interface.yaml',  ],
     output: [ 'Progress.md' ],
@@ -161,10 +205,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Common/Progress',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('TFTP')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Common/TFTP__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Common/TFTP.interface.yaml',  ],
     output: [ 'TFTP.md' ],
@@ -176,10 +222,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Common/TFTP',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Threshold')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Common/Threshold__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Common/Threshold.interface.yaml',  ],
     output: [ 'Threshold.md' ],
@@ -191,10 +239,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Common/Threshold',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('UUID')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Common/UUID__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Common/UUID.interface.yaml',  ],
     output: [ 'UUID.md' ],
@@ -206,5 +256,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Common/UUID',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Condition/HostFirmware/meson.build b/gen/xyz/openbmc_project/Condition/HostFirmware/meson.build
index 8f5ba89..d0e437f 100644
--- a/gen/xyz/openbmc_project/Condition/HostFirmware/meson.build
+++ b/gen/xyz/openbmc_project/Condition/HostFirmware/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Condition/HostFirmware'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Condition/HostFirmware__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Condition/HostFirmware.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Condition/HostFirmware.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Condition/HostFirmware',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Condition/meson.build b/gen/xyz/openbmc_project/Condition/meson.build
index 62b1d4b..9091f30 100644
--- a/gen/xyz/openbmc_project/Condition/meson.build
+++ b/gen/xyz/openbmc_project/Condition/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('HostFirmware')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'xyz/openbmc_project/Condition'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Condition/HostFirmware__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Condition/HostFirmware.interface.yaml',  ],
     output: [ 'HostFirmware.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Condition/HostFirmware',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Console/Access/meson.build b/gen/xyz/openbmc_project/Console/Access/meson.build
index 6049682..152a507 100644
--- a/gen/xyz/openbmc_project/Console/Access/meson.build
+++ b/gen/xyz/openbmc_project/Console/Access/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Console/Access'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Console/Access__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Console/Access.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Console/Access.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Console/Access',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Console/UART/meson.build b/gen/xyz/openbmc_project/Console/UART/meson.build
index 2ed7bc9..658faaf 100644
--- a/gen/xyz/openbmc_project/Console/UART/meson.build
+++ b/gen/xyz/openbmc_project/Console/UART/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Console/UART'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Console/UART__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Console/UART.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Console/UART.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Console/UART',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Console/meson.build b/gen/xyz/openbmc_project/Console/meson.build
index 854b5a4..07a616f 100644
--- a/gen/xyz/openbmc_project/Console/meson.build
+++ b/gen/xyz/openbmc_project/Console/meson.build
@@ -1,6 +1,10 @@
 # Generated file; do not modify.
 subdir('Access')
-generated_others += custom_target(
+subdir('UART')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Console'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Console/Access__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Console/Access.interface.yaml',  ],
     output: [ 'Access.md' ],
@@ -12,10 +16,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Console/Access',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('UART')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Console/UART__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Console/UART.interface.yaml',  ],
     output: [ 'UART.md' ],
@@ -27,5 +33,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Console/UART',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Boot/Mode/meson.build b/gen/xyz/openbmc_project/Control/Boot/Mode/meson.build
index bdd539e..eb6fd79 100644
--- a/gen/xyz/openbmc_project/Control/Boot/Mode/meson.build
+++ b/gen/xyz/openbmc_project/Control/Boot/Mode/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Boot/Mode'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/Boot/Mode__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Control/Boot/Mode.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Control/Boot/Mode.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Control/Boot/Mode',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Boot/RebootAttempts/meson.build b/gen/xyz/openbmc_project/Control/Boot/RebootAttempts/meson.build
index c50a645..69bebdc 100644
--- a/gen/xyz/openbmc_project/Control/Boot/RebootAttempts/meson.build
+++ b/gen/xyz/openbmc_project/Control/Boot/RebootAttempts/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Boot/RebootAttempts'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/Boot/RebootAttempts__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Control/Boot/RebootAttempts.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Control/Boot/RebootAttempts.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Control/Boot/RebootAttempts',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Boot/RebootPolicy/meson.build b/gen/xyz/openbmc_project/Control/Boot/RebootPolicy/meson.build
index df4f452..c7c1d9d 100644
--- a/gen/xyz/openbmc_project/Control/Boot/RebootPolicy/meson.build
+++ b/gen/xyz/openbmc_project/Control/Boot/RebootPolicy/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Boot/RebootPolicy'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/Boot/RebootPolicy__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Control/Boot/RebootPolicy.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Control/Boot/RebootPolicy.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Control/Boot/RebootPolicy',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Boot/Source/meson.build b/gen/xyz/openbmc_project/Control/Boot/Source/meson.build
index 8dcaff5..031a7ec 100644
--- a/gen/xyz/openbmc_project/Control/Boot/Source/meson.build
+++ b/gen/xyz/openbmc_project/Control/Boot/Source/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Boot/Source'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/Boot/Source__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Control/Boot/Source.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Control/Boot/Source.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Control/Boot/Source',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Boot/Type/meson.build b/gen/xyz/openbmc_project/Control/Boot/Type/meson.build
index b906bc4..4df6c94 100644
--- a/gen/xyz/openbmc_project/Control/Boot/Type/meson.build
+++ b/gen/xyz/openbmc_project/Control/Boot/Type/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Boot/Type'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/Boot/Type__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Control/Boot/Type.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Control/Boot/Type.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Control/Boot/Type',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Boot/meson.build b/gen/xyz/openbmc_project/Control/Boot/meson.build
index 7ddeb50..bf8ff4c 100644
--- a/gen/xyz/openbmc_project/Control/Boot/meson.build
+++ b/gen/xyz/openbmc_project/Control/Boot/meson.build
@@ -1,6 +1,13 @@
 # Generated file; do not modify.
 subdir('Mode')
-generated_others += custom_target(
+subdir('RebootAttempts')
+subdir('RebootPolicy')
+subdir('Source')
+subdir('Type')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Boot'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/Boot/Mode__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Control/Boot/Mode.interface.yaml',  ],
     output: [ 'Mode.md' ],
@@ -12,10 +19,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/Boot/Mode',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('RebootAttempts')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/Boot/RebootAttempts__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Control/Boot/RebootAttempts.interface.yaml',  ],
     output: [ 'RebootAttempts.md' ],
@@ -27,10 +36,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/Boot/RebootAttempts',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('RebootPolicy')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/Boot/RebootPolicy__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Control/Boot/RebootPolicy.interface.yaml',  ],
     output: [ 'RebootPolicy.md' ],
@@ -42,10 +53,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/Boot/RebootPolicy',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Source')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/Boot/Source__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Control/Boot/Source.interface.yaml',  ],
     output: [ 'Source.md' ],
@@ -57,10 +70,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/Boot/Source',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Type')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/Boot/Type__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Control/Boot/Type.interface.yaml',  ],
     output: [ 'Type.md' ],
@@ -72,5 +87,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/Boot/Type',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/CFMLimit/meson.build b/gen/xyz/openbmc_project/Control/CFMLimit/meson.build
index 5e58a04..17a3f90 100644
--- a/gen/xyz/openbmc_project/Control/CFMLimit/meson.build
+++ b/gen/xyz/openbmc_project/Control/CFMLimit/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/CFMLimit'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/CFMLimit__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Control/CFMLimit.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Control/CFMLimit.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/CFMLimit',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/ChassisCapabilities/meson.build b/gen/xyz/openbmc_project/Control/ChassisCapabilities/meson.build
index b98e9a3..90f18cc 100644
--- a/gen/xyz/openbmc_project/Control/ChassisCapabilities/meson.build
+++ b/gen/xyz/openbmc_project/Control/ChassisCapabilities/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/ChassisCapabilities'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/ChassisCapabilities__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Control/ChassisCapabilities.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Control/ChassisCapabilities.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/ChassisCapabilities',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Device/meson.build b/gen/xyz/openbmc_project/Control/Device/meson.build
index 6adf94b..a347697 100644
--- a/gen/xyz/openbmc_project/Control/Device/meson.build
+++ b/gen/xyz/openbmc_project/Control/Device/meson.build
@@ -1,8 +1,16 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Device'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/Device__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Control/Device.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Control/Device.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +19,11 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/Device',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/FanPwm/meson.build b/gen/xyz/openbmc_project/Control/FanPwm/meson.build
index e8bb01d..6b186fc 100644
--- a/gen/xyz/openbmc_project/Control/FanPwm/meson.build
+++ b/gen/xyz/openbmc_project/Control/FanPwm/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/FanPwm'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/FanPwm__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Control/FanPwm.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Control/FanPwm.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/FanPwm',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/FanRedundancy/meson.build b/gen/xyz/openbmc_project/Control/FanRedundancy/meson.build
index 65d7df1..48f9c99 100644
--- a/gen/xyz/openbmc_project/Control/FanRedundancy/meson.build
+++ b/gen/xyz/openbmc_project/Control/FanRedundancy/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/FanRedundancy'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/FanRedundancy__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Control/FanRedundancy.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Control/FanRedundancy.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/FanRedundancy',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/FanSpeed/meson.build b/gen/xyz/openbmc_project/Control/FanSpeed/meson.build
index 4482ef2..e9de474 100644
--- a/gen/xyz/openbmc_project/Control/FanSpeed/meson.build
+++ b/gen/xyz/openbmc_project/Control/FanSpeed/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/FanSpeed'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/FanSpeed__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Control/FanSpeed.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Control/FanSpeed.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/FanSpeed',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/FieldMode/meson.build b/gen/xyz/openbmc_project/Control/FieldMode/meson.build
index dda58ba..dd69b78 100644
--- a/gen/xyz/openbmc_project/Control/FieldMode/meson.build
+++ b/gen/xyz/openbmc_project/Control/FieldMode/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/FieldMode'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/FieldMode__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Control/FieldMode.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Control/FieldMode.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/FieldMode',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Host/NMI/meson.build b/gen/xyz/openbmc_project/Control/Host/NMI/meson.build
index d85355b..1049e3b 100644
--- a/gen/xyz/openbmc_project/Control/Host/NMI/meson.build
+++ b/gen/xyz/openbmc_project/Control/Host/NMI/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Host/NMI'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/Host/NMI__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Control/Host/NMI.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Control/Host/NMI.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Control/Host/NMI',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Host/TurboAllowed/meson.build b/gen/xyz/openbmc_project/Control/Host/TurboAllowed/meson.build
index 6b239d9..5af2bc7 100644
--- a/gen/xyz/openbmc_project/Control/Host/TurboAllowed/meson.build
+++ b/gen/xyz/openbmc_project/Control/Host/TurboAllowed/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Host/TurboAllowed'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/Host/TurboAllowed__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Control/Host/TurboAllowed.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Control/Host/TurboAllowed.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Control/Host/TurboAllowed',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Host/meson.build b/gen/xyz/openbmc_project/Control/Host/meson.build
index dc496b7..bc871c4 100644
--- a/gen/xyz/openbmc_project/Control/Host/meson.build
+++ b/gen/xyz/openbmc_project/Control/Host/meson.build
@@ -1,8 +1,24 @@
 # Generated file; do not modify.
+subdir('NMI')
+subdir('TurboAllowed')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Host'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/Host__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Control/Host.errors.yaml', '../../../../../yaml/xyz/openbmc_project/Control/Host.interface.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp', 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Control/Host.errors.yaml',
+        '../../../../../yaml/xyz/openbmc_project/Control/Host.interface.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,10 +27,20 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/Host',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
-subdir('NMI')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/Host/NMI__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Control/Host/NMI.interface.yaml',  ],
     output: [ 'NMI.md' ],
@@ -26,10 +52,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/Host/NMI',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('TurboAllowed')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/Host/TurboAllowed__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Control/Host/TurboAllowed.interface.yaml',  ],
     output: [ 'TurboAllowed.md' ],
@@ -41,5 +69,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/Host/TurboAllowed',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/MinimumShipLevel/meson.build b/gen/xyz/openbmc_project/Control/MinimumShipLevel/meson.build
index a33a2d4..a859cad 100644
--- a/gen/xyz/openbmc_project/Control/MinimumShipLevel/meson.build
+++ b/gen/xyz/openbmc_project/Control/MinimumShipLevel/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/MinimumShipLevel'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/MinimumShipLevel__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Control/MinimumShipLevel.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Control/MinimumShipLevel.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/MinimumShipLevel',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Mode/meson.build b/gen/xyz/openbmc_project/Control/Mode/meson.build
index c1cc34f..8daba0e 100644
--- a/gen/xyz/openbmc_project/Control/Mode/meson.build
+++ b/gen/xyz/openbmc_project/Control/Mode/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Mode'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/Mode__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Control/Mode.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Control/Mode.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/Mode',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Power/ACPIPowerState/meson.build b/gen/xyz/openbmc_project/Control/Power/ACPIPowerState/meson.build
index beb3ff4..8dde717 100644
--- a/gen/xyz/openbmc_project/Control/Power/ACPIPowerState/meson.build
+++ b/gen/xyz/openbmc_project/Control/Power/ACPIPowerState/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Power/ACPIPowerState'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/Power/ACPIPowerState__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Control/Power/ACPIPowerState.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Control/Power/ACPIPowerState.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Control/Power/ACPIPowerState',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Power/Cap/meson.build b/gen/xyz/openbmc_project/Control/Power/Cap/meson.build
index bf41b70..e3cee27 100644
--- a/gen/xyz/openbmc_project/Control/Power/Cap/meson.build
+++ b/gen/xyz/openbmc_project/Control/Power/Cap/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Power/Cap'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/Power/Cap__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Control/Power/Cap.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Control/Power/Cap.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Control/Power/Cap',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Power/CapLimits/meson.build b/gen/xyz/openbmc_project/Control/Power/CapLimits/meson.build
index b84a56b..a997ecf 100644
--- a/gen/xyz/openbmc_project/Control/Power/CapLimits/meson.build
+++ b/gen/xyz/openbmc_project/Control/Power/CapLimits/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Power/CapLimits'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/Power/CapLimits__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Control/Power/CapLimits.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Control/Power/CapLimits.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Control/Power/CapLimits',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Power/IdlePowerSaver/meson.build b/gen/xyz/openbmc_project/Control/Power/IdlePowerSaver/meson.build
index 68c7028..ee38bca 100644
--- a/gen/xyz/openbmc_project/Control/Power/IdlePowerSaver/meson.build
+++ b/gen/xyz/openbmc_project/Control/Power/IdlePowerSaver/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Power/IdlePowerSaver'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/Power/IdlePowerSaver__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Control/Power/IdlePowerSaver.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Control/Power/IdlePowerSaver.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Control/Power/IdlePowerSaver',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Power/Mode/meson.build b/gen/xyz/openbmc_project/Control/Power/Mode/meson.build
index d90dd49..9724d45 100644
--- a/gen/xyz/openbmc_project/Control/Power/Mode/meson.build
+++ b/gen/xyz/openbmc_project/Control/Power/Mode/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Power/Mode'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/Power/Mode__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Control/Power/Mode.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Control/Power/Mode.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Control/Power/Mode',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Power/RestorePolicy/meson.build b/gen/xyz/openbmc_project/Control/Power/RestorePolicy/meson.build
index 0259a66..b048942 100644
--- a/gen/xyz/openbmc_project/Control/Power/RestorePolicy/meson.build
+++ b/gen/xyz/openbmc_project/Control/Power/RestorePolicy/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Power/RestorePolicy'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/Power/RestorePolicy__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Control/Power/RestorePolicy.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Control/Power/RestorePolicy.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Control/Power/RestorePolicy',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Power/Throttle/meson.build b/gen/xyz/openbmc_project/Control/Power/Throttle/meson.build
index 132ee44..752bdf8 100644
--- a/gen/xyz/openbmc_project/Control/Power/Throttle/meson.build
+++ b/gen/xyz/openbmc_project/Control/Power/Throttle/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Power/Throttle'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/Power/Throttle__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Control/Power/Throttle.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Control/Power/Throttle.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Control/Power/Throttle',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Power/meson.build b/gen/xyz/openbmc_project/Control/Power/meson.build
index 751b2ee..b625f50 100644
--- a/gen/xyz/openbmc_project/Control/Power/meson.build
+++ b/gen/xyz/openbmc_project/Control/Power/meson.build
@@ -1,6 +1,15 @@
 # Generated file; do not modify.
 subdir('ACPIPowerState')
-generated_others += custom_target(
+subdir('Cap')
+subdir('CapLimits')
+subdir('IdlePowerSaver')
+subdir('Mode')
+subdir('RestorePolicy')
+subdir('Throttle')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Power'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/Power/ACPIPowerState__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Control/Power/ACPIPowerState.interface.yaml',  ],
     output: [ 'ACPIPowerState.md' ],
@@ -12,10 +21,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/Power/ACPIPowerState',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Cap')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/Power/Cap__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Control/Power/Cap.interface.yaml',  ],
     output: [ 'Cap.md' ],
@@ -27,10 +38,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/Power/Cap',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('CapLimits')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/Power/CapLimits__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Control/Power/CapLimits.interface.yaml',  ],
     output: [ 'CapLimits.md' ],
@@ -42,10 +55,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/Power/CapLimits',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('IdlePowerSaver')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/Power/IdlePowerSaver__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Control/Power/IdlePowerSaver.interface.yaml',  ],
     output: [ 'IdlePowerSaver.md' ],
@@ -57,10 +72,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/Power/IdlePowerSaver',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Mode')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/Power/Mode__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Control/Power/Mode.interface.yaml',  ],
     output: [ 'Mode.md' ],
@@ -72,10 +89,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/Power/Mode',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('RestorePolicy')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/Power/RestorePolicy__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Control/Power/RestorePolicy.interface.yaml',  ],
     output: [ 'RestorePolicy.md' ],
@@ -87,10 +106,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/Power/RestorePolicy',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Throttle')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/Power/Throttle__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Control/Power/Throttle.interface.yaml',  ],
     output: [ 'Throttle.md' ],
@@ -102,5 +123,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/Power/Throttle',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/PowerSupplyAttributes/meson.build b/gen/xyz/openbmc_project/Control/PowerSupplyAttributes/meson.build
index 26ad6c4..bde1611 100644
--- a/gen/xyz/openbmc_project/Control/PowerSupplyAttributes/meson.build
+++ b/gen/xyz/openbmc_project/Control/PowerSupplyAttributes/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/PowerSupplyAttributes'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/PowerSupplyAttributes__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Control/PowerSupplyAttributes.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Control/PowerSupplyAttributes.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/PowerSupplyAttributes',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/PowerSupplyRedundancy/meson.build b/gen/xyz/openbmc_project/Control/PowerSupplyRedundancy/meson.build
index 3dfad42..61133c9 100644
--- a/gen/xyz/openbmc_project/Control/PowerSupplyRedundancy/meson.build
+++ b/gen/xyz/openbmc_project/Control/PowerSupplyRedundancy/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/PowerSupplyRedundancy'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/PowerSupplyRedundancy__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Control/PowerSupplyRedundancy.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Control/PowerSupplyRedundancy.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/PowerSupplyRedundancy',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Processor/CurrentOperatingConfig/meson.build b/gen/xyz/openbmc_project/Control/Processor/CurrentOperatingConfig/meson.build
index 4e7646a..738f612 100644
--- a/gen/xyz/openbmc_project/Control/Processor/CurrentOperatingConfig/meson.build
+++ b/gen/xyz/openbmc_project/Control/Processor/CurrentOperatingConfig/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Processor/CurrentOperatingConfig'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/Processor/CurrentOperatingConfig__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Control/Processor/CurrentOperatingConfig.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Control/Processor/CurrentOperatingConfig.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Control/Processor/CurrentOperatingConfig',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Processor/meson.build b/gen/xyz/openbmc_project/Control/Processor/meson.build
index 3fc8073..c0feff7 100644
--- a/gen/xyz/openbmc_project/Control/Processor/meson.build
+++ b/gen/xyz/openbmc_project/Control/Processor/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('CurrentOperatingConfig')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Processor'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/Processor/CurrentOperatingConfig__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Control/Processor/CurrentOperatingConfig.interface.yaml',  ],
     output: [ 'CurrentOperatingConfig.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/Processor/CurrentOperatingConfig',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Security/RestrictionMode/meson.build b/gen/xyz/openbmc_project/Control/Security/RestrictionMode/meson.build
index 7923910..a071cde 100644
--- a/gen/xyz/openbmc_project/Control/Security/RestrictionMode/meson.build
+++ b/gen/xyz/openbmc_project/Control/Security/RestrictionMode/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Security/RestrictionMode'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/Security/RestrictionMode__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Control/Security/RestrictionMode.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Control/Security/RestrictionMode.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Control/Security/RestrictionMode',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Security/SpecialMode/meson.build b/gen/xyz/openbmc_project/Control/Security/SpecialMode/meson.build
index c32b2b5..8ac7492 100644
--- a/gen/xyz/openbmc_project/Control/Security/SpecialMode/meson.build
+++ b/gen/xyz/openbmc_project/Control/Security/SpecialMode/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Security/SpecialMode'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/Security/SpecialMode__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Control/Security/SpecialMode.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Control/Security/SpecialMode.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Control/Security/SpecialMode',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Security/meson.build b/gen/xyz/openbmc_project/Control/Security/meson.build
index 3a40301..cb9545a 100644
--- a/gen/xyz/openbmc_project/Control/Security/meson.build
+++ b/gen/xyz/openbmc_project/Control/Security/meson.build
@@ -1,6 +1,10 @@
 # Generated file; do not modify.
 subdir('RestrictionMode')
-generated_others += custom_target(
+subdir('SpecialMode')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Security'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/Security/RestrictionMode__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Control/Security/RestrictionMode.interface.yaml',  ],
     output: [ 'RestrictionMode.md' ],
@@ -12,10 +16,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/Security/RestrictionMode',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('SpecialMode')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/Security/SpecialMode__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Control/Security/SpecialMode.interface.yaml',  ],
     output: [ 'SpecialMode.md' ],
@@ -27,5 +33,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/Security/SpecialMode',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Service/Attributes/meson.build b/gen/xyz/openbmc_project/Control/Service/Attributes/meson.build
index e9fd56c..9f4e845 100644
--- a/gen/xyz/openbmc_project/Control/Service/Attributes/meson.build
+++ b/gen/xyz/openbmc_project/Control/Service/Attributes/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Service/Attributes'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/Service/Attributes__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Control/Service/Attributes.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Control/Service/Attributes.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Control/Service/Attributes',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Service/SocketAttributes/meson.build b/gen/xyz/openbmc_project/Control/Service/SocketAttributes/meson.build
index feb42ac..c5cb980 100644
--- a/gen/xyz/openbmc_project/Control/Service/SocketAttributes/meson.build
+++ b/gen/xyz/openbmc_project/Control/Service/SocketAttributes/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Service/SocketAttributes'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/Service/SocketAttributes__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Control/Service/SocketAttributes.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Control/Service/SocketAttributes.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Control/Service/SocketAttributes',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/Service/meson.build b/gen/xyz/openbmc_project/Control/Service/meson.build
index 39b3ed6..a5b0e46 100644
--- a/gen/xyz/openbmc_project/Control/Service/meson.build
+++ b/gen/xyz/openbmc_project/Control/Service/meson.build
@@ -1,6 +1,10 @@
 # Generated file; do not modify.
 subdir('Attributes')
-generated_others += custom_target(
+subdir('SocketAttributes')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/Service'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/Service/Attributes__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Control/Service/Attributes.interface.yaml',  ],
     output: [ 'Attributes.md' ],
@@ -12,10 +16,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/Service/Attributes',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('SocketAttributes')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/Service/SocketAttributes__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Control/Service/SocketAttributes.interface.yaml',  ],
     output: [ 'SocketAttributes.md' ],
@@ -27,5 +33,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/Service/SocketAttributes',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/TPM/Policy/meson.build b/gen/xyz/openbmc_project/Control/TPM/Policy/meson.build
index 156d23a..c13d10e 100644
--- a/gen/xyz/openbmc_project/Control/TPM/Policy/meson.build
+++ b/gen/xyz/openbmc_project/Control/TPM/Policy/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/TPM/Policy'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/TPM/Policy__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Control/TPM/Policy.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Control/TPM/Policy.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Control/TPM/Policy',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/TPM/meson.build b/gen/xyz/openbmc_project/Control/TPM/meson.build
index 5522371..327cf1a 100644
--- a/gen/xyz/openbmc_project/Control/TPM/meson.build
+++ b/gen/xyz/openbmc_project/Control/TPM/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('Policy')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/TPM'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/TPM/Policy__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Control/TPM/Policy.interface.yaml',  ],
     output: [ 'Policy.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/TPM/Policy',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/ThermalMode/meson.build b/gen/xyz/openbmc_project/Control/ThermalMode/meson.build
index 3271d89..d36b6ec 100644
--- a/gen/xyz/openbmc_project/Control/ThermalMode/meson.build
+++ b/gen/xyz/openbmc_project/Control/ThermalMode/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/ThermalMode'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/ThermalMode__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Control/ThermalMode.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Control/ThermalMode.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/ThermalMode',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/VoltageRegulatorControl/meson.build b/gen/xyz/openbmc_project/Control/VoltageRegulatorControl/meson.build
index ddeaadb..e08c1dc 100644
--- a/gen/xyz/openbmc_project/Control/VoltageRegulatorControl/meson.build
+++ b/gen/xyz/openbmc_project/Control/VoltageRegulatorControl/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/VoltageRegulatorControl'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/VoltageRegulatorControl__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Control/VoltageRegulatorControl.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Control/VoltageRegulatorControl.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/VoltageRegulatorControl',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/VoltageRegulatorMode/meson.build b/gen/xyz/openbmc_project/Control/VoltageRegulatorMode/meson.build
index a4f3690..1d1b7ff 100644
--- a/gen/xyz/openbmc_project/Control/VoltageRegulatorMode/meson.build
+++ b/gen/xyz/openbmc_project/Control/VoltageRegulatorMode/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control/VoltageRegulatorMode'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Control/VoltageRegulatorMode__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Control/VoltageRegulatorMode.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Control/VoltageRegulatorMode.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Control/VoltageRegulatorMode',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Control/meson.build b/gen/xyz/openbmc_project/Control/meson.build
index 4e94449..9bcd93f 100644
--- a/gen/xyz/openbmc_project/Control/meson.build
+++ b/gen/xyz/openbmc_project/Control/meson.build
@@ -1,7 +1,29 @@
 # Generated file; do not modify.
 subdir('Boot')
 subdir('CFMLimit')
-generated_others += custom_target(
+subdir('ChassisCapabilities')
+subdir('Device')
+subdir('FanPwm')
+subdir('FanRedundancy')
+subdir('FanSpeed')
+subdir('FieldMode')
+subdir('Host')
+subdir('MinimumShipLevel')
+subdir('Mode')
+subdir('Power')
+subdir('PowerSupplyAttributes')
+subdir('PowerSupplyRedundancy')
+subdir('Processor')
+subdir('Security')
+subdir('Service')
+subdir('TPM')
+subdir('ThermalMode')
+subdir('VoltageRegulatorControl')
+subdir('VoltageRegulatorMode')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Control'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/CFMLimit__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Control/CFMLimit.interface.yaml',  ],
     output: [ 'CFMLimit.md' ],
@@ -13,10 +35,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Control/CFMLimit',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('ChassisCapabilities')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/ChassisCapabilities__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Control/ChassisCapabilities.interface.yaml',  ],
     output: [ 'ChassisCapabilities.md' ],
@@ -28,10 +52,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Control/ChassisCapabilities',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Device')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/Device__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Control/Device.errors.yaml',  ],
     output: [ 'Device.md' ],
@@ -43,10 +69,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Control/Device',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('FanPwm')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/FanPwm__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Control/FanPwm.interface.yaml',  ],
     output: [ 'FanPwm.md' ],
@@ -58,10 +86,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Control/FanPwm',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('FanRedundancy')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/FanRedundancy__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Control/FanRedundancy.interface.yaml',  ],
     output: [ 'FanRedundancy.md' ],
@@ -73,10 +103,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Control/FanRedundancy',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('FanSpeed')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/FanSpeed__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Control/FanSpeed.interface.yaml',  ],
     output: [ 'FanSpeed.md' ],
@@ -88,10 +120,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Control/FanSpeed',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('FieldMode')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/FieldMode__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Control/FieldMode.interface.yaml',  ],
     output: [ 'FieldMode.md' ],
@@ -103,10 +137,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Control/FieldMode',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Host')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/Host__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Control/Host.errors.yaml', '../../../../yaml/xyz/openbmc_project/Control/Host.interface.yaml',  ],
     output: [ 'Host.md' ],
@@ -118,10 +154,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Control/Host',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('MinimumShipLevel')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/MinimumShipLevel__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Control/MinimumShipLevel.interface.yaml',  ],
     output: [ 'MinimumShipLevel.md' ],
@@ -133,10 +171,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Control/MinimumShipLevel',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Mode')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/Mode__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Control/Mode.interface.yaml',  ],
     output: [ 'Mode.md' ],
@@ -148,11 +188,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Control/Mode',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Power')
-subdir('PowerSupplyAttributes')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/PowerSupplyAttributes__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Control/PowerSupplyAttributes.interface.yaml',  ],
     output: [ 'PowerSupplyAttributes.md' ],
@@ -164,10 +205,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Control/PowerSupplyAttributes',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('PowerSupplyRedundancy')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/PowerSupplyRedundancy__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Control/PowerSupplyRedundancy.interface.yaml',  ],
     output: [ 'PowerSupplyRedundancy.md' ],
@@ -179,14 +222,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Control/PowerSupplyRedundancy',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Processor')
-subdir('Security')
-subdir('Service')
-subdir('TPM')
-subdir('ThermalMode')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/ThermalMode__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Control/ThermalMode.interface.yaml',  ],
     output: [ 'ThermalMode.md' ],
@@ -198,10 +239,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Control/ThermalMode',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('VoltageRegulatorControl')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/VoltageRegulatorControl__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Control/VoltageRegulatorControl.interface.yaml',  ],
     output: [ 'VoltageRegulatorControl.md' ],
@@ -213,10 +256,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Control/VoltageRegulatorControl',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('VoltageRegulatorMode')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Control/VoltageRegulatorMode__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Control/VoltageRegulatorMode.interface.yaml',  ],
     output: [ 'VoltageRegulatorMode.md' ],
@@ -228,5 +273,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Control/VoltageRegulatorMode',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Debug/Pid/ThermalPower/meson.build b/gen/xyz/openbmc_project/Debug/Pid/ThermalPower/meson.build
index 36b8d0f..af08271 100644
--- a/gen/xyz/openbmc_project/Debug/Pid/ThermalPower/meson.build
+++ b/gen/xyz/openbmc_project/Debug/Pid/ThermalPower/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Debug/Pid/ThermalPower'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Debug/Pid/ThermalPower__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Debug/Pid/ThermalPower.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Debug/Pid/ThermalPower.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Debug/Pid/ThermalPower',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Debug/Pid/Zone/meson.build b/gen/xyz/openbmc_project/Debug/Pid/Zone/meson.build
index 3d00581..2958ed4 100644
--- a/gen/xyz/openbmc_project/Debug/Pid/Zone/meson.build
+++ b/gen/xyz/openbmc_project/Debug/Pid/Zone/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Debug/Pid/Zone'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Debug/Pid/Zone__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Debug/Pid/Zone.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Debug/Pid/Zone.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Debug/Pid/Zone',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Debug/Pid/meson.build b/gen/xyz/openbmc_project/Debug/Pid/meson.build
index 380351f..384f0c3 100644
--- a/gen/xyz/openbmc_project/Debug/Pid/meson.build
+++ b/gen/xyz/openbmc_project/Debug/Pid/meson.build
@@ -1,6 +1,10 @@
 # Generated file; do not modify.
 subdir('ThermalPower')
-generated_others += custom_target(
+subdir('Zone')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Debug/Pid'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Debug/Pid/ThermalPower__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Debug/Pid/ThermalPower.interface.yaml',  ],
     output: [ 'ThermalPower.md' ],
@@ -12,10 +16,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Debug/Pid/ThermalPower',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Zone')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Debug/Pid/Zone__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Debug/Pid/Zone.interface.yaml',  ],
     output: [ 'Zone.md' ],
@@ -27,5 +33,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Debug/Pid/Zone',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Dump/Create/meson.build b/gen/xyz/openbmc_project/Dump/Create/meson.build
index d4fd9f3..c30b93c 100644
--- a/gen/xyz/openbmc_project/Dump/Create/meson.build
+++ b/gen/xyz/openbmc_project/Dump/Create/meson.build
@@ -1,8 +1,22 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Dump/Create'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Dump/Create__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Dump/Create.errors.yaml', '../../../../../yaml/xyz/openbmc_project/Dump/Create.interface.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp', 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Dump/Create.errors.yaml',
+        '../../../../../yaml/xyz/openbmc_project/Dump/Create.interface.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +25,16 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Dump/Create',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Dump/Entry/BMC/meson.build b/gen/xyz/openbmc_project/Dump/Entry/BMC/meson.build
index b58ad6f..0f38d60 100644
--- a/gen/xyz/openbmc_project/Dump/Entry/BMC/meson.build
+++ b/gen/xyz/openbmc_project/Dump/Entry/BMC/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Dump/Entry/BMC'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Dump/Entry/BMC__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Dump/Entry/BMC.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Dump/Entry/BMC.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Dump/Entry/BMC',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Dump/Entry/FaultLog/meson.build b/gen/xyz/openbmc_project/Dump/Entry/FaultLog/meson.build
index 08a8cbf..2dc42f7 100644
--- a/gen/xyz/openbmc_project/Dump/Entry/FaultLog/meson.build
+++ b/gen/xyz/openbmc_project/Dump/Entry/FaultLog/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Dump/Entry/FaultLog'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Dump/Entry/FaultLog__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Dump/Entry/FaultLog.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Dump/Entry/FaultLog.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Dump/Entry/FaultLog',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Dump/Entry/NIC/meson.build b/gen/xyz/openbmc_project/Dump/Entry/NIC/meson.build
index 2843d91..999351e 100644
--- a/gen/xyz/openbmc_project/Dump/Entry/NIC/meson.build
+++ b/gen/xyz/openbmc_project/Dump/Entry/NIC/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Dump/Entry/NIC'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Dump/Entry/NIC__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Dump/Entry/NIC.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Dump/Entry/NIC.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Dump/Entry/NIC',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Dump/Entry/System/meson.build b/gen/xyz/openbmc_project/Dump/Entry/System/meson.build
index 435cb48..b8261bc 100644
--- a/gen/xyz/openbmc_project/Dump/Entry/System/meson.build
+++ b/gen/xyz/openbmc_project/Dump/Entry/System/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Dump/Entry/System'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Dump/Entry/System__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Dump/Entry/System.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Dump/Entry/System.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Dump/Entry/System',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Dump/Entry/meson.build b/gen/xyz/openbmc_project/Dump/Entry/meson.build
index 570e83d..890e456 100644
--- a/gen/xyz/openbmc_project/Dump/Entry/meson.build
+++ b/gen/xyz/openbmc_project/Dump/Entry/meson.build
@@ -1,8 +1,23 @@
 # Generated file; do not modify.
+subdir('BMC')
+subdir('FaultLog')
+subdir('NIC')
+subdir('System')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Dump/Entry'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Dump/Entry__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Dump/Entry.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Dump/Entry.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,10 +26,18 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Dump/Entry',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
-subdir('BMC')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Dump/Entry/BMC__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Dump/Entry/BMC.interface.yaml',  ],
     output: [ 'BMC.md' ],
@@ -26,10 +49,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Dump/Entry/BMC',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('FaultLog')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Dump/Entry/FaultLog__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Dump/Entry/FaultLog.interface.yaml',  ],
     output: [ 'FaultLog.md' ],
@@ -41,10 +66,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Dump/Entry/FaultLog',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('NIC')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Dump/Entry/NIC__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Dump/Entry/NIC.interface.yaml',  ],
     output: [ 'NIC.md' ],
@@ -56,10 +83,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Dump/Entry/NIC',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('System')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Dump/Entry/System__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Dump/Entry/System.interface.yaml',  ],
     output: [ 'System.md' ],
@@ -71,5 +100,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Dump/Entry/System',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Dump/NewDump/meson.build b/gen/xyz/openbmc_project/Dump/NewDump/meson.build
index eba978f..813f43e 100644
--- a/gen/xyz/openbmc_project/Dump/NewDump/meson.build
+++ b/gen/xyz/openbmc_project/Dump/NewDump/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Dump/NewDump'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Dump/NewDump__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Dump/NewDump.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Dump/NewDump.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Dump/NewDump',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Dump/meson.build b/gen/xyz/openbmc_project/Dump/meson.build
index b6fb4aa..cd18961 100644
--- a/gen/xyz/openbmc_project/Dump/meson.build
+++ b/gen/xyz/openbmc_project/Dump/meson.build
@@ -1,6 +1,11 @@
 # Generated file; do not modify.
 subdir('Create')
-generated_others += custom_target(
+subdir('Entry')
+subdir('NewDump')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Dump'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Dump/Create__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Dump/Create.errors.yaml', '../../../../yaml/xyz/openbmc_project/Dump/Create.interface.yaml',  ],
     output: [ 'Create.md' ],
@@ -12,10 +17,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Dump/Create',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Entry')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Dump/Entry__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Dump/Entry.interface.yaml',  ],
     output: [ 'Entry.md' ],
@@ -27,10 +34,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Dump/Entry',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('NewDump')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Dump/NewDump__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Dump/NewDump.interface.yaml',  ],
     output: [ 'NewDump.md' ],
@@ -42,5 +51,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Dump/NewDump',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/HardwareIsolation/Create/meson.build b/gen/xyz/openbmc_project/HardwareIsolation/Create/meson.build
index d5805d8..39202c3 100644
--- a/gen/xyz/openbmc_project/HardwareIsolation/Create/meson.build
+++ b/gen/xyz/openbmc_project/HardwareIsolation/Create/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/HardwareIsolation/Create'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/HardwareIsolation/Create__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/HardwareIsolation/Create.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/HardwareIsolation/Create.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/HardwareIsolation/Create',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/HardwareIsolation/Entry/meson.build b/gen/xyz/openbmc_project/HardwareIsolation/Entry/meson.build
index b4b3f0f..0d21c91 100644
--- a/gen/xyz/openbmc_project/HardwareIsolation/Entry/meson.build
+++ b/gen/xyz/openbmc_project/HardwareIsolation/Entry/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/HardwareIsolation/Entry'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/HardwareIsolation/Entry__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/HardwareIsolation/Entry.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/HardwareIsolation/Entry.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/HardwareIsolation/Entry',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/HardwareIsolation/meson.build b/gen/xyz/openbmc_project/HardwareIsolation/meson.build
index 2265dd9..0863a5c 100644
--- a/gen/xyz/openbmc_project/HardwareIsolation/meson.build
+++ b/gen/xyz/openbmc_project/HardwareIsolation/meson.build
@@ -1,8 +1,18 @@
 # Generated file; do not modify.
+subdir('Create')
+subdir('Entry')
+
+sdbusplus_current_path = 'xyz/openbmc_project/HardwareIsolation'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/HardwareIsolation__cpp'.underscorify(),
-    input: [ '../../../../yaml/xyz/openbmc_project/HardwareIsolation.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../yaml/xyz/openbmc_project/HardwareIsolation.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,10 +21,15 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/HardwareIsolation',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
-subdir('Create')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/HardwareIsolation/Create__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/HardwareIsolation/Create.interface.yaml',  ],
     output: [ 'Create.md' ],
@@ -26,10 +41,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/HardwareIsolation/Create',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Entry')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/HardwareIsolation/Entry__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/HardwareIsolation/Entry.interface.yaml',  ],
     output: [ 'Entry.md' ],
@@ -41,5 +58,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/HardwareIsolation/Entry',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Connector/Embedded/meson.build b/gen/xyz/openbmc_project/Inventory/Connector/Embedded/meson.build
index 9dc749d..a2e3dc2 100644
--- a/gen/xyz/openbmc_project/Inventory/Connector/Embedded/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Connector/Embedded/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Connector/Embedded'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Connector/Embedded__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Connector/Embedded.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Connector/Embedded.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Connector/Embedded',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Connector/Port/meson.build b/gen/xyz/openbmc_project/Inventory/Connector/Port/meson.build
index 0f8ee14..b16c6fb 100644
--- a/gen/xyz/openbmc_project/Inventory/Connector/Port/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Connector/Port/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Connector/Port'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Connector/Port__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Connector/Port.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Connector/Port.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Connector/Port',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Connector/Slot/meson.build b/gen/xyz/openbmc_project/Inventory/Connector/Slot/meson.build
index d580acf..209ba2b 100644
--- a/gen/xyz/openbmc_project/Inventory/Connector/Slot/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Connector/Slot/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Connector/Slot'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Connector/Slot__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Connector/Slot.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Connector/Slot.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Connector/Slot',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Connector/meson.build b/gen/xyz/openbmc_project/Inventory/Connector/meson.build
index afdd161..f686fa8 100644
--- a/gen/xyz/openbmc_project/Inventory/Connector/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Connector/meson.build
@@ -1,6 +1,11 @@
 # Generated file; do not modify.
 subdir('Embedded')
-generated_others += custom_target(
+subdir('Port')
+subdir('Slot')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Connector'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Connector/Embedded__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Connector/Embedded.interface.yaml',  ],
     output: [ 'Embedded.md' ],
@@ -12,10 +17,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Connector/Embedded',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Port')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Connector/Port__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Connector/Port.interface.yaml',  ],
     output: [ 'Port.md' ],
@@ -27,10 +34,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Connector/Port',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Slot')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Connector/Slot__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Connector/Slot.interface.yaml',  ],
     output: [ 'Slot.md' ],
@@ -42,5 +51,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Connector/Slot',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Decorator/Asset/meson.build b/gen/xyz/openbmc_project/Inventory/Decorator/Asset/meson.build
index 8bf8558..e2d73bc 100644
--- a/gen/xyz/openbmc_project/Inventory/Decorator/Asset/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Decorator/Asset/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Decorator/Asset'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/Asset__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/Asset.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/Asset.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/Asset',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Decorator/AssetTag/meson.build b/gen/xyz/openbmc_project/Inventory/Decorator/AssetTag/meson.build
index f6245ac..6744736 100644
--- a/gen/xyz/openbmc_project/Inventory/Decorator/AssetTag/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Decorator/AssetTag/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Decorator/AssetTag'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/AssetTag__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/AssetTag.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/AssetTag.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/AssetTag',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Decorator/CLEI/meson.build b/gen/xyz/openbmc_project/Inventory/Decorator/CLEI/meson.build
index 905e9b8..ab9b4bc 100644
--- a/gen/xyz/openbmc_project/Inventory/Decorator/CLEI/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Decorator/CLEI/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Decorator/CLEI'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/CLEI__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/CLEI.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/CLEI.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/CLEI',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Decorator/Cacheable/meson.build b/gen/xyz/openbmc_project/Inventory/Decorator/Cacheable/meson.build
index fa759a0..314e694 100644
--- a/gen/xyz/openbmc_project/Inventory/Decorator/Cacheable/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Decorator/Cacheable/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Decorator/Cacheable'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/Cacheable__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/Cacheable.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/Cacheable.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/Cacheable',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Decorator/Compatible/meson.build b/gen/xyz/openbmc_project/Inventory/Decorator/Compatible/meson.build
index 97902e6..0d2e1ff 100644
--- a/gen/xyz/openbmc_project/Inventory/Decorator/Compatible/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Decorator/Compatible/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Decorator/Compatible'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/Compatible__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/Compatible.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/Compatible.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/Compatible',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Decorator/CoolingType/meson.build b/gen/xyz/openbmc_project/Inventory/Decorator/CoolingType/meson.build
index c2f0072..bdfce90 100644
--- a/gen/xyz/openbmc_project/Inventory/Decorator/CoolingType/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Decorator/CoolingType/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Decorator/CoolingType'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/CoolingType__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/CoolingType.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/CoolingType.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/CoolingType',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Decorator/Dimension/meson.build b/gen/xyz/openbmc_project/Inventory/Decorator/Dimension/meson.build
index 520276e..f8c6514 100644
--- a/gen/xyz/openbmc_project/Inventory/Decorator/Dimension/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Decorator/Dimension/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Decorator/Dimension'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/Dimension__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/Dimension.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/Dimension.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/Dimension',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Decorator/I2CDevice/meson.build b/gen/xyz/openbmc_project/Inventory/Decorator/I2CDevice/meson.build
index 9f10faf..1948b0b 100644
--- a/gen/xyz/openbmc_project/Inventory/Decorator/I2CDevice/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Decorator/I2CDevice/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Decorator/I2CDevice'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/I2CDevice__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/I2CDevice.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/I2CDevice.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/I2CDevice',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Decorator/LocationCode/meson.build b/gen/xyz/openbmc_project/Inventory/Decorator/LocationCode/meson.build
index bde930b..476f2e1 100644
--- a/gen/xyz/openbmc_project/Inventory/Decorator/LocationCode/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Decorator/LocationCode/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Decorator/LocationCode'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/LocationCode__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/LocationCode.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/LocationCode.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/LocationCode',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Decorator/ManagedHost/meson.build b/gen/xyz/openbmc_project/Inventory/Decorator/ManagedHost/meson.build
index 6ce0158..16bcb9b 100644
--- a/gen/xyz/openbmc_project/Inventory/Decorator/ManagedHost/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Decorator/ManagedHost/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Decorator/ManagedHost'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/ManagedHost__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/ManagedHost.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/ManagedHost.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/ManagedHost',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Decorator/ManufacturerExt/meson.build b/gen/xyz/openbmc_project/Inventory/Decorator/ManufacturerExt/meson.build
index b7888ba..8a97e66 100644
--- a/gen/xyz/openbmc_project/Inventory/Decorator/ManufacturerExt/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Decorator/ManufacturerExt/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Decorator/ManufacturerExt'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/ManufacturerExt__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/ManufacturerExt.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/ManufacturerExt.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/ManufacturerExt',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Decorator/MeetsMinimumShipLevel/meson.build b/gen/xyz/openbmc_project/Inventory/Decorator/MeetsMinimumShipLevel/meson.build
index 87a0f0f..9a30c36 100644
--- a/gen/xyz/openbmc_project/Inventory/Decorator/MeetsMinimumShipLevel/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Decorator/MeetsMinimumShipLevel/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Decorator/MeetsMinimumShipLevel'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/MeetsMinimumShipLevel__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/MeetsMinimumShipLevel.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/MeetsMinimumShipLevel.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/MeetsMinimumShipLevel',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Decorator/Replaceable/meson.build b/gen/xyz/openbmc_project/Inventory/Decorator/Replaceable/meson.build
index 10dfbce..8e90249 100644
--- a/gen/xyz/openbmc_project/Inventory/Decorator/Replaceable/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Decorator/Replaceable/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Decorator/Replaceable'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/Replaceable__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/Replaceable.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/Replaceable.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/Replaceable',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Decorator/Revision/meson.build b/gen/xyz/openbmc_project/Inventory/Decorator/Revision/meson.build
index ca800ee..b228a84 100644
--- a/gen/xyz/openbmc_project/Inventory/Decorator/Revision/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Decorator/Revision/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Decorator/Revision'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/Revision__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/Revision.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/Revision.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/Revision',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Decorator/Slot/meson.build b/gen/xyz/openbmc_project/Inventory/Decorator/Slot/meson.build
index 6d43d62..e0a69a6 100644
--- a/gen/xyz/openbmc_project/Inventory/Decorator/Slot/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Decorator/Slot/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Decorator/Slot'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/Slot__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/Slot.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/Slot.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/Slot',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Decorator/ThermalDirection/meson.build b/gen/xyz/openbmc_project/Inventory/Decorator/ThermalDirection/meson.build
index 9497427..8265959 100644
--- a/gen/xyz/openbmc_project/Inventory/Decorator/ThermalDirection/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Decorator/ThermalDirection/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Decorator/ThermalDirection'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/ThermalDirection__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/ThermalDirection.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/ThermalDirection.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/ThermalDirection',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Decorator/UniqueIdentifier/meson.build b/gen/xyz/openbmc_project/Inventory/Decorator/UniqueIdentifier/meson.build
index 2f05840..a7b65f9 100644
--- a/gen/xyz/openbmc_project/Inventory/Decorator/UniqueIdentifier/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Decorator/UniqueIdentifier/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Decorator/UniqueIdentifier'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/UniqueIdentifier__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/UniqueIdentifier.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/UniqueIdentifier.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/UniqueIdentifier',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Decorator/VendorInformation/meson.build b/gen/xyz/openbmc_project/Inventory/Decorator/VendorInformation/meson.build
index 6a9a172..6fd6f64 100644
--- a/gen/xyz/openbmc_project/Inventory/Decorator/VendorInformation/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Decorator/VendorInformation/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Decorator/VendorInformation'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/VendorInformation__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/VendorInformation.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/VendorInformation.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/VendorInformation',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Decorator/VoltageControl/meson.build b/gen/xyz/openbmc_project/Inventory/Decorator/VoltageControl/meson.build
index 4b1a0aa..06a8e5c 100644
--- a/gen/xyz/openbmc_project/Inventory/Decorator/VoltageControl/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Decorator/VoltageControl/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Decorator/VoltageControl'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/VoltageControl__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/VoltageControl.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/VoltageControl.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/VoltageControl',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Decorator/meson.build b/gen/xyz/openbmc_project/Inventory/Decorator/meson.build
index 2b7a712..c3aef5b 100644
--- a/gen/xyz/openbmc_project/Inventory/Decorator/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Decorator/meson.build
@@ -1,6 +1,27 @@
 # Generated file; do not modify.
 subdir('Asset')
-generated_others += custom_target(
+subdir('AssetTag')
+subdir('CLEI')
+subdir('Cacheable')
+subdir('Compatible')
+subdir('CoolingType')
+subdir('Dimension')
+subdir('I2CDevice')
+subdir('LocationCode')
+subdir('ManagedHost')
+subdir('ManufacturerExt')
+subdir('MeetsMinimumShipLevel')
+subdir('Replaceable')
+subdir('Revision')
+subdir('Slot')
+subdir('ThermalDirection')
+subdir('UniqueIdentifier')
+subdir('VendorInformation')
+subdir('VoltageControl')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Decorator'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/Asset__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/Asset.interface.yaml',  ],
     output: [ 'Asset.md' ],
@@ -12,10 +33,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/Asset',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('AssetTag')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/AssetTag__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/AssetTag.interface.yaml',  ],
     output: [ 'AssetTag.md' ],
@@ -27,10 +50,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/AssetTag',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('CLEI')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/CLEI__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/CLEI.interface.yaml',  ],
     output: [ 'CLEI.md' ],
@@ -42,10 +67,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/CLEI',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Cacheable')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/Cacheable__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/Cacheable.interface.yaml',  ],
     output: [ 'Cacheable.md' ],
@@ -57,10 +84,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/Cacheable',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Compatible')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/Compatible__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/Compatible.interface.yaml',  ],
     output: [ 'Compatible.md' ],
@@ -72,10 +101,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/Compatible',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('CoolingType')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/CoolingType__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/CoolingType.interface.yaml',  ],
     output: [ 'CoolingType.md' ],
@@ -87,10 +118,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/CoolingType',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Dimension')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/Dimension__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/Dimension.interface.yaml',  ],
     output: [ 'Dimension.md' ],
@@ -102,10 +135,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/Dimension',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('I2CDevice')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/I2CDevice__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/I2CDevice.interface.yaml',  ],
     output: [ 'I2CDevice.md' ],
@@ -117,10 +152,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/I2CDevice',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('LocationCode')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/LocationCode__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/LocationCode.interface.yaml',  ],
     output: [ 'LocationCode.md' ],
@@ -132,10 +169,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/LocationCode',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('ManagedHost')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/ManagedHost__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/ManagedHost.interface.yaml',  ],
     output: [ 'ManagedHost.md' ],
@@ -147,10 +186,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/ManagedHost',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('ManufacturerExt')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/ManufacturerExt__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/ManufacturerExt.interface.yaml',  ],
     output: [ 'ManufacturerExt.md' ],
@@ -162,10 +203,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/ManufacturerExt',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('MeetsMinimumShipLevel')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/MeetsMinimumShipLevel__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/MeetsMinimumShipLevel.interface.yaml',  ],
     output: [ 'MeetsMinimumShipLevel.md' ],
@@ -177,10 +220,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/MeetsMinimumShipLevel',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Replaceable')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/Replaceable__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/Replaceable.interface.yaml',  ],
     output: [ 'Replaceable.md' ],
@@ -192,10 +237,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/Replaceable',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Revision')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/Revision__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/Revision.interface.yaml',  ],
     output: [ 'Revision.md' ],
@@ -207,10 +254,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/Revision',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Slot')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/Slot__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/Slot.interface.yaml',  ],
     output: [ 'Slot.md' ],
@@ -222,10 +271,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/Slot',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('ThermalDirection')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/ThermalDirection__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/ThermalDirection.interface.yaml',  ],
     output: [ 'ThermalDirection.md' ],
@@ -237,10 +288,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/ThermalDirection',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('UniqueIdentifier')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/UniqueIdentifier__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/UniqueIdentifier.interface.yaml',  ],
     output: [ 'UniqueIdentifier.md' ],
@@ -252,10 +305,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/UniqueIdentifier',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('VendorInformation')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/VendorInformation__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/VendorInformation.interface.yaml',  ],
     output: [ 'VendorInformation.md' ],
@@ -267,10 +322,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/VendorInformation',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('VoltageControl')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Decorator/VoltageControl__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Decorator/VoltageControl.interface.yaml',  ],
     output: [ 'VoltageControl.md' ],
@@ -282,5 +339,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Decorator/VoltageControl',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/Accelerator/meson.build b/gen/xyz/openbmc_project/Inventory/Item/Accelerator/meson.build
index afb542f..fad6cca 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/Accelerator/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/Accelerator/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/Accelerator'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/Accelerator__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Accelerator.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Accelerator.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Accelerator',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/Battery/meson.build b/gen/xyz/openbmc_project/Inventory/Item/Battery/meson.build
index 1e3302c..c1488c4 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/Battery/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/Battery/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/Battery'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/Battery__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Battery.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Battery.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Battery',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/Bmc/meson.build b/gen/xyz/openbmc_project/Inventory/Item/Bmc/meson.build
index d1fbd43..adc6105 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/Bmc/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/Bmc/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/Bmc'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/Bmc__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Bmc.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Bmc.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Bmc',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/Board/IOBoard/meson.build b/gen/xyz/openbmc_project/Inventory/Item/Board/IOBoard/meson.build
index bc1e497..0e3c90b 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/Board/IOBoard/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/Board/IOBoard/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/Board/IOBoard'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/Board/IOBoard__cpp'.underscorify(),
-    input: [ '../../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Board/IOBoard.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Board/IOBoard.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Board/IOBoard',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/Board/Motherboard/meson.build b/gen/xyz/openbmc_project/Inventory/Item/Board/Motherboard/meson.build
index ac7b5f3..70995e0 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/Board/Motherboard/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/Board/Motherboard/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/Board/Motherboard'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/Board/Motherboard__cpp'.underscorify(),
-    input: [ '../../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Board/Motherboard.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Board/Motherboard.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Board/Motherboard',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/Board/meson.build b/gen/xyz/openbmc_project/Inventory/Item/Board/meson.build
index bf26102..0692de3 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/Board/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/Board/meson.build
@@ -1,8 +1,21 @@
 # Generated file; do not modify.
+subdir('IOBoard')
+subdir('Motherboard')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/Board'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/Board__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Board.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Board.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,10 +24,18 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Board',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
-subdir('IOBoard')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/Board/IOBoard__markdown'.underscorify(),
     input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Board/IOBoard.interface.yaml',  ],
     output: [ 'IOBoard.md' ],
@@ -26,10 +47,12 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Board/IOBoard',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Motherboard')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/Board/Motherboard__markdown'.underscorify(),
     input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Board/Motherboard.interface.yaml',  ],
     output: [ 'Motherboard.md' ],
@@ -41,5 +64,8 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Board/Motherboard',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/Cable/meson.build b/gen/xyz/openbmc_project/Inventory/Item/Cable/meson.build
index fb82895..e1fe09b 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/Cable/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/Cable/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/Cable'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/Cable__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Cable.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Cable.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Cable',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/Chassis/meson.build b/gen/xyz/openbmc_project/Inventory/Item/Chassis/meson.build
index 752d777..16f15a9 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/Chassis/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/Chassis/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/Chassis'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/Chassis__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Chassis.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Chassis.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Chassis',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/Connector/meson.build b/gen/xyz/openbmc_project/Inventory/Item/Connector/meson.build
index 66f7507..821c477 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/Connector/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/Connector/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/Connector'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/Connector__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Connector.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Connector.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Connector',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/Cpu/OperatingConfig/meson.build b/gen/xyz/openbmc_project/Inventory/Item/Cpu/OperatingConfig/meson.build
index 4516423..7c69cc1 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/Cpu/OperatingConfig/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/Cpu/OperatingConfig/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/Cpu/OperatingConfig'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/Cpu/OperatingConfig__cpp'.underscorify(),
-    input: [ '../../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Cpu/OperatingConfig.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Cpu/OperatingConfig.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Cpu/OperatingConfig',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/Cpu/meson.build b/gen/xyz/openbmc_project/Inventory/Item/Cpu/meson.build
index 0fa6066..8e367c9 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/Cpu/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/Cpu/meson.build
@@ -1,8 +1,20 @@
 # Generated file; do not modify.
+subdir('OperatingConfig')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/Cpu'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/Cpu__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Cpu.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Cpu.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,10 +23,18 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Cpu',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
-subdir('OperatingConfig')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/Cpu/OperatingConfig__markdown'.underscorify(),
     input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Cpu/OperatingConfig.interface.yaml',  ],
     output: [ 'OperatingConfig.md' ],
@@ -26,5 +46,8 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Cpu/OperatingConfig',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/CpuCore/meson.build b/gen/xyz/openbmc_project/Inventory/Item/CpuCore/meson.build
index ed462d6..79df093 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/CpuCore/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/CpuCore/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/CpuCore'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/CpuCore__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/CpuCore.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/CpuCore.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/CpuCore',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/Dimm/MemoryLocation/meson.build b/gen/xyz/openbmc_project/Inventory/Item/Dimm/MemoryLocation/meson.build
index fa11fa5..3755b9a 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/Dimm/MemoryLocation/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/Dimm/MemoryLocation/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/Dimm/MemoryLocation'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/Dimm/MemoryLocation__cpp'.underscorify(),
-    input: [ '../../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Dimm/MemoryLocation.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Dimm/MemoryLocation.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Dimm/MemoryLocation',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/Dimm/meson.build b/gen/xyz/openbmc_project/Inventory/Item/Dimm/meson.build
index eee51c7..d9253d1 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/Dimm/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/Dimm/meson.build
@@ -1,8 +1,20 @@
 # Generated file; do not modify.
+subdir('MemoryLocation')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/Dimm'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/Dimm__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Dimm.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Dimm.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,10 +23,18 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Dimm',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
-subdir('MemoryLocation')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/Dimm/MemoryLocation__markdown'.underscorify(),
     input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Dimm/MemoryLocation.interface.yaml',  ],
     output: [ 'MemoryLocation.md' ],
@@ -26,5 +46,8 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Dimm/MemoryLocation',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/DiskBackplane/meson.build b/gen/xyz/openbmc_project/Inventory/Item/DiskBackplane/meson.build
index 6fbec6a..25caea7 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/DiskBackplane/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/DiskBackplane/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/DiskBackplane'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/DiskBackplane__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/DiskBackplane.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/DiskBackplane.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/DiskBackplane',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/Drive/meson.build b/gen/xyz/openbmc_project/Inventory/Item/Drive/meson.build
index 97306d2..5dbe99c 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/Drive/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/Drive/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/Drive'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/Drive__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Drive.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Drive.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Drive',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/Ethernet/meson.build b/gen/xyz/openbmc_project/Inventory/Item/Ethernet/meson.build
index 377c3a0..687bbf2 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/Ethernet/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/Ethernet/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/Ethernet'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/Ethernet__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Ethernet.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Ethernet.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Ethernet',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/FabricAdapter/meson.build b/gen/xyz/openbmc_project/Inventory/Item/FabricAdapter/meson.build
index b4bd616..1c97260 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/FabricAdapter/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/FabricAdapter/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/FabricAdapter'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/FabricAdapter__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/FabricAdapter.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/FabricAdapter.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/FabricAdapter',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/Fan/meson.build b/gen/xyz/openbmc_project/Inventory/Item/Fan/meson.build
index fb25897..10e6653 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/Fan/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/Fan/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/Fan'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/Fan__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Fan.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Fan.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Fan',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/Global/meson.build b/gen/xyz/openbmc_project/Inventory/Item/Global/meson.build
index b4fe0fe..8649cbd 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/Global/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/Global/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/Global'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/Global__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Global.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Global.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Global',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/NetworkInterface/meson.build b/gen/xyz/openbmc_project/Inventory/Item/NetworkInterface/meson.build
index 058cc68..8a0f521 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/NetworkInterface/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/NetworkInterface/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/NetworkInterface'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/NetworkInterface__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/NetworkInterface.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/NetworkInterface.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/NetworkInterface',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/PCIeDevice/meson.build b/gen/xyz/openbmc_project/Inventory/Item/PCIeDevice/meson.build
index 1daf876..95fb78a 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/PCIeDevice/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/PCIeDevice/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/PCIeDevice'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/PCIeDevice__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/PCIeDevice.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/PCIeDevice.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/PCIeDevice',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/PCIeSlot/meson.build b/gen/xyz/openbmc_project/Inventory/Item/PCIeSlot/meson.build
index a0b2247..31bf55e 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/PCIeSlot/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/PCIeSlot/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/PCIeSlot'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/PCIeSlot__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/PCIeSlot.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/PCIeSlot.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/PCIeSlot',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/PCIeSwitch/meson.build b/gen/xyz/openbmc_project/Inventory/Item/PCIeSwitch/meson.build
index 1c76048..0e247e6 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/PCIeSwitch/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/PCIeSwitch/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/PCIeSwitch'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/PCIeSwitch__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/PCIeSwitch.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/PCIeSwitch.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/PCIeSwitch',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/Panel/meson.build b/gen/xyz/openbmc_project/Inventory/Item/Panel/meson.build
index b5e9cd5..9ad63c7 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/Panel/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/Panel/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/Panel'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/Panel__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Panel.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Panel.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Panel',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/PersistentMemory/Partition/meson.build b/gen/xyz/openbmc_project/Inventory/Item/PersistentMemory/Partition/meson.build
index a53e471..d4d2994 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/PersistentMemory/Partition/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/PersistentMemory/Partition/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/PersistentMemory/Partition'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/PersistentMemory/Partition__cpp'.underscorify(),
-    input: [ '../../../../../../../yaml/xyz/openbmc_project/Inventory/Item/PersistentMemory/Partition.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../../yaml/xyz/openbmc_project/Inventory/Item/PersistentMemory/Partition.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/PersistentMemory/Partition',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/PersistentMemory/PowerManagementPolicy/meson.build b/gen/xyz/openbmc_project/Inventory/Item/PersistentMemory/PowerManagementPolicy/meson.build
index 21f6dc2..b520193 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/PersistentMemory/PowerManagementPolicy/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/PersistentMemory/PowerManagementPolicy/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/PersistentMemory/PowerManagementPolicy'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/PersistentMemory/PowerManagementPolicy__cpp'.underscorify(),
-    input: [ '../../../../../../../yaml/xyz/openbmc_project/Inventory/Item/PersistentMemory/PowerManagementPolicy.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../../yaml/xyz/openbmc_project/Inventory/Item/PersistentMemory/PowerManagementPolicy.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/PersistentMemory/PowerManagementPolicy',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/PersistentMemory/SecurityCapabilities/meson.build b/gen/xyz/openbmc_project/Inventory/Item/PersistentMemory/SecurityCapabilities/meson.build
index 5f0dc48..40ce796 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/PersistentMemory/SecurityCapabilities/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/PersistentMemory/SecurityCapabilities/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/PersistentMemory/SecurityCapabilities'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/PersistentMemory/SecurityCapabilities__cpp'.underscorify(),
-    input: [ '../../../../../../../yaml/xyz/openbmc_project/Inventory/Item/PersistentMemory/SecurityCapabilities.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../../yaml/xyz/openbmc_project/Inventory/Item/PersistentMemory/SecurityCapabilities.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/PersistentMemory/SecurityCapabilities',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/PersistentMemory/meson.build b/gen/xyz/openbmc_project/Inventory/Item/PersistentMemory/meson.build
index 05dd356..e6ae059 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/PersistentMemory/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/PersistentMemory/meson.build
@@ -1,8 +1,22 @@
 # Generated file; do not modify.
+subdir('Partition')
+subdir('PowerManagementPolicy')
+subdir('SecurityCapabilities')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/PersistentMemory'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/PersistentMemory__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/PersistentMemory.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/PersistentMemory.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,10 +25,18 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/PersistentMemory',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
-subdir('Partition')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/PersistentMemory/Partition__markdown'.underscorify(),
     input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/PersistentMemory/Partition.interface.yaml',  ],
     output: [ 'Partition.md' ],
@@ -26,10 +48,12 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/PersistentMemory/Partition',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('PowerManagementPolicy')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/PersistentMemory/PowerManagementPolicy__markdown'.underscorify(),
     input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/PersistentMemory/PowerManagementPolicy.interface.yaml',  ],
     output: [ 'PowerManagementPolicy.md' ],
@@ -41,10 +65,12 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/PersistentMemory/PowerManagementPolicy',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('SecurityCapabilities')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/PersistentMemory/SecurityCapabilities__markdown'.underscorify(),
     input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/PersistentMemory/SecurityCapabilities.interface.yaml',  ],
     output: [ 'SecurityCapabilities.md' ],
@@ -56,5 +82,8 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/PersistentMemory/SecurityCapabilities',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/PowerSupply/meson.build b/gen/xyz/openbmc_project/Inventory/Item/PowerSupply/meson.build
index b8311e1..b55b355 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/PowerSupply/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/PowerSupply/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/PowerSupply'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/PowerSupply__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/PowerSupply.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/PowerSupply.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/PowerSupply',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/Rotor/meson.build b/gen/xyz/openbmc_project/Inventory/Item/Rotor/meson.build
index 8c3584c..e3e1ad4 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/Rotor/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/Rotor/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/Rotor'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/Rotor__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Rotor.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Rotor.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Rotor',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/Storage/meson.build b/gen/xyz/openbmc_project/Inventory/Item/Storage/meson.build
index ce696ac..aba3b9c 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/Storage/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/Storage/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/Storage'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/Storage__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Storage.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Storage.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Storage',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/StorageController/meson.build b/gen/xyz/openbmc_project/Inventory/Item/StorageController/meson.build
index d3d31c9..12aa9bf 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/StorageController/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/StorageController/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/StorageController'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/StorageController__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/StorageController.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/StorageController.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/StorageController',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/System/meson.build b/gen/xyz/openbmc_project/Inventory/Item/System/meson.build
index ab1d865..44b9b40 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/System/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/System/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/System'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/System__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/System.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/System.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/System',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/Tpm/meson.build b/gen/xyz/openbmc_project/Inventory/Item/Tpm/meson.build
index 7a1cd18..cb4c9fb 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/Tpm/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/Tpm/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/Tpm'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/Tpm__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Tpm.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Tpm.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Tpm',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/TrustedComponent/meson.build b/gen/xyz/openbmc_project/Inventory/Item/TrustedComponent/meson.build
index a8da8a6..715ee47 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/TrustedComponent/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/TrustedComponent/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/TrustedComponent'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/TrustedComponent__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/TrustedComponent.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/TrustedComponent.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/TrustedComponent',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/Volume/meson.build b/gen/xyz/openbmc_project/Inventory/Item/Volume/meson.build
index a221001..bed7d3b 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/Volume/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/Volume/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/Volume'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/Volume__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Volume.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Volume.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Volume',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/Vrm/meson.build b/gen/xyz/openbmc_project/Inventory/Item/Vrm/meson.build
index 59e32ea..920cedc 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/Vrm/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/Vrm/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item/Vrm'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item/Vrm__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Vrm.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Inventory/Item/Vrm.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Vrm',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Item/meson.build b/gen/xyz/openbmc_project/Inventory/Item/meson.build
index e78966b..ed479db 100644
--- a/gen/xyz/openbmc_project/Inventory/Item/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Item/meson.build
@@ -1,8 +1,50 @@
 # Generated file; do not modify.
+subdir('Accelerator')
+subdir('Battery')
+subdir('Bmc')
+subdir('Board')
+subdir('Cable')
+subdir('Chassis')
+subdir('Connector')
+subdir('Cpu')
+subdir('CpuCore')
+subdir('Dimm')
+subdir('DiskBackplane')
+subdir('Drive')
+subdir('Ethernet')
+subdir('FabricAdapter')
+subdir('Fan')
+subdir('Global')
+subdir('NetworkInterface')
+subdir('PCIeDevice')
+subdir('PCIeSlot')
+subdir('PCIeSwitch')
+subdir('Panel')
+subdir('PersistentMemory')
+subdir('PowerSupply')
+subdir('Rotor')
+subdir('Storage')
+subdir('StorageController')
+subdir('System')
+subdir('Tpm')
+subdir('TrustedComponent')
+subdir('Volume')
+subdir('Vrm')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Item'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Item__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Inventory/Item.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,10 +53,18 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
-subdir('Accelerator')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/Accelerator__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/Accelerator.interface.yaml',  ],
     output: [ 'Accelerator.md' ],
@@ -26,10 +76,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Accelerator',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Battery')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/Battery__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/Battery.interface.yaml',  ],
     output: [ 'Battery.md' ],
@@ -41,10 +93,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Battery',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Bmc')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/Bmc__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/Bmc.interface.yaml',  ],
     output: [ 'Bmc.md' ],
@@ -56,10 +110,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Bmc',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Board')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/Board__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/Board.interface.yaml',  ],
     output: [ 'Board.md' ],
@@ -71,10 +127,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Board',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Cable')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/Cable__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/Cable.interface.yaml',  ],
     output: [ 'Cable.md' ],
@@ -86,10 +144,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Cable',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Chassis')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/Chassis__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/Chassis.interface.yaml',  ],
     output: [ 'Chassis.md' ],
@@ -101,10 +161,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Chassis',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Connector')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/Connector__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/Connector.interface.yaml',  ],
     output: [ 'Connector.md' ],
@@ -116,10 +178,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Connector',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Cpu')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/Cpu__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/Cpu.interface.yaml',  ],
     output: [ 'Cpu.md' ],
@@ -131,10 +195,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Cpu',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('CpuCore')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/CpuCore__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/CpuCore.interface.yaml',  ],
     output: [ 'CpuCore.md' ],
@@ -146,10 +212,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/CpuCore',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Dimm')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/Dimm__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/Dimm.interface.yaml',  ],
     output: [ 'Dimm.md' ],
@@ -161,10 +229,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Dimm',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('DiskBackplane')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/DiskBackplane__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/DiskBackplane.interface.yaml',  ],
     output: [ 'DiskBackplane.md' ],
@@ -176,10 +246,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/DiskBackplane',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Drive')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/Drive__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/Drive.interface.yaml',  ],
     output: [ 'Drive.md' ],
@@ -191,10 +263,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Drive',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Ethernet')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/Ethernet__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/Ethernet.interface.yaml',  ],
     output: [ 'Ethernet.md' ],
@@ -206,10 +280,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Ethernet',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('FabricAdapter')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/FabricAdapter__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/FabricAdapter.interface.yaml',  ],
     output: [ 'FabricAdapter.md' ],
@@ -221,10 +297,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/FabricAdapter',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Fan')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/Fan__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/Fan.interface.yaml',  ],
     output: [ 'Fan.md' ],
@@ -236,10 +314,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Fan',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Global')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/Global__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/Global.interface.yaml',  ],
     output: [ 'Global.md' ],
@@ -251,10 +331,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Global',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('NetworkInterface')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/NetworkInterface__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/NetworkInterface.interface.yaml',  ],
     output: [ 'NetworkInterface.md' ],
@@ -266,10 +348,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/NetworkInterface',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('PCIeDevice')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/PCIeDevice__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/PCIeDevice.interface.yaml',  ],
     output: [ 'PCIeDevice.md' ],
@@ -281,10 +365,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/PCIeDevice',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('PCIeSlot')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/PCIeSlot__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/PCIeSlot.interface.yaml',  ],
     output: [ 'PCIeSlot.md' ],
@@ -296,10 +382,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/PCIeSlot',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('PCIeSwitch')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/PCIeSwitch__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/PCIeSwitch.interface.yaml',  ],
     output: [ 'PCIeSwitch.md' ],
@@ -311,10 +399,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/PCIeSwitch',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Panel')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/Panel__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/Panel.interface.yaml',  ],
     output: [ 'Panel.md' ],
@@ -326,10 +416,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Panel',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('PersistentMemory')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/PersistentMemory__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/PersistentMemory.interface.yaml',  ],
     output: [ 'PersistentMemory.md' ],
@@ -341,10 +433,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/PersistentMemory',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('PowerSupply')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/PowerSupply__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/PowerSupply.interface.yaml',  ],
     output: [ 'PowerSupply.md' ],
@@ -356,10 +450,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/PowerSupply',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Rotor')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/Rotor__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/Rotor.interface.yaml',  ],
     output: [ 'Rotor.md' ],
@@ -371,10 +467,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Rotor',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Storage')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/Storage__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/Storage.interface.yaml',  ],
     output: [ 'Storage.md' ],
@@ -386,10 +484,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Storage',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('StorageController')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/StorageController__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/StorageController.interface.yaml',  ],
     output: [ 'StorageController.md' ],
@@ -401,10 +501,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/StorageController',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('System')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/System__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/System.interface.yaml',  ],
     output: [ 'System.md' ],
@@ -416,10 +518,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/System',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Tpm')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/Tpm__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/Tpm.interface.yaml',  ],
     output: [ 'Tpm.md' ],
@@ -431,10 +535,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Tpm',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('TrustedComponent')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/TrustedComponent__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/TrustedComponent.interface.yaml',  ],
     output: [ 'TrustedComponent.md' ],
@@ -446,10 +552,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/TrustedComponent',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Volume')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/Volume__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/Volume.interface.yaml',  ],
     output: [ 'Volume.md' ],
@@ -461,10 +569,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Volume',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Vrm')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item/Vrm__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Item/Vrm.interface.yaml',  ],
     output: [ 'Vrm.md' ],
@@ -476,5 +586,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Item/Vrm',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Manager/meson.build b/gen/xyz/openbmc_project/Inventory/Manager/meson.build
index 7840dca..629ca68 100644
--- a/gen/xyz/openbmc_project/Inventory/Manager/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Manager/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Manager'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Manager__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Inventory/Manager.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Inventory/Manager.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Inventory/Manager',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Source/PLDM/Entity/meson.build b/gen/xyz/openbmc_project/Inventory/Source/PLDM/Entity/meson.build
index fbc67cd..5f62427 100644
--- a/gen/xyz/openbmc_project/Inventory/Source/PLDM/Entity/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Source/PLDM/Entity/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Source/PLDM/Entity'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Source/PLDM/Entity__cpp'.underscorify(),
-    input: [ '../../../../../../../yaml/xyz/openbmc_project/Inventory/Source/PLDM/Entity.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../../yaml/xyz/openbmc_project/Inventory/Source/PLDM/Entity.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Source/PLDM/Entity',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Source/PLDM/FRU/meson.build b/gen/xyz/openbmc_project/Inventory/Source/PLDM/FRU/meson.build
index 9d4fa40..2d1baab 100644
--- a/gen/xyz/openbmc_project/Inventory/Source/PLDM/FRU/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Source/PLDM/FRU/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Source/PLDM/FRU'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory/Source/PLDM/FRU__cpp'.underscorify(),
-    input: [ '../../../../../../../yaml/xyz/openbmc_project/Inventory/Source/PLDM/FRU.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../../yaml/xyz/openbmc_project/Inventory/Source/PLDM/FRU.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Source/PLDM/FRU',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/Source/PLDM/meson.build b/gen/xyz/openbmc_project/Inventory/Source/PLDM/meson.build
index 14c8d79..702c17a 100644
--- a/gen/xyz/openbmc_project/Inventory/Source/PLDM/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/Source/PLDM/meson.build
@@ -1,6 +1,10 @@
 # Generated file; do not modify.
 subdir('Entity')
-generated_others += custom_target(
+subdir('FRU')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory/Source/PLDM'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Source/PLDM/Entity__markdown'.underscorify(),
     input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Source/PLDM/Entity.interface.yaml',  ],
     output: [ 'Entity.md' ],
@@ -12,10 +16,12 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Source/PLDM/Entity',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('FRU')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Source/PLDM/FRU__markdown'.underscorify(),
     input: [ '../../../../../../yaml/xyz/openbmc_project/Inventory/Source/PLDM/FRU.interface.yaml',  ],
     output: [ 'FRU.md' ],
@@ -27,5 +33,8 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Inventory/Source/PLDM/FRU',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Inventory/meson.build b/gen/xyz/openbmc_project/Inventory/meson.build
index 777d847..5ba4b78 100644
--- a/gen/xyz/openbmc_project/Inventory/meson.build
+++ b/gen/xyz/openbmc_project/Inventory/meson.build
@@ -1,8 +1,21 @@
 # Generated file; do not modify.
+subdir('Connector')
+subdir('Decorator')
+subdir('Item')
+subdir('Manager')
+subdir('Source')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Inventory'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Inventory__cpp'.underscorify(),
-    input: [ '../../../../yaml/xyz/openbmc_project/Inventory.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../yaml/xyz/openbmc_project/Inventory.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,12 +24,15 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Inventory',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
-subdir('Connector')
-subdir('Decorator')
-subdir('Item')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Item__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Inventory/Item.interface.yaml',  ],
     output: [ 'Item.md' ],
@@ -28,10 +44,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Inventory/Item',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Manager')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory/Manager__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Inventory/Manager.interface.yaml',  ],
     output: [ 'Manager.md' ],
@@ -43,6 +61,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Inventory/Manager',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Source')
diff --git a/gen/xyz/openbmc_project/Ipmi/SOL/meson.build b/gen/xyz/openbmc_project/Ipmi/SOL/meson.build
index 7af83ac..f12a872 100644
--- a/gen/xyz/openbmc_project/Ipmi/SOL/meson.build
+++ b/gen/xyz/openbmc_project/Ipmi/SOL/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Ipmi/SOL'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Ipmi/SOL__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Ipmi/SOL.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Ipmi/SOL.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Ipmi/SOL',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Ipmi/SessionInfo/meson.build b/gen/xyz/openbmc_project/Ipmi/SessionInfo/meson.build
index 2824408..637d46d 100644
--- a/gen/xyz/openbmc_project/Ipmi/SessionInfo/meson.build
+++ b/gen/xyz/openbmc_project/Ipmi/SessionInfo/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Ipmi/SessionInfo'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Ipmi/SessionInfo__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Ipmi/SessionInfo.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Ipmi/SessionInfo.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Ipmi/SessionInfo',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Ipmi/meson.build b/gen/xyz/openbmc_project/Ipmi/meson.build
index dc92556..f3169ee 100644
--- a/gen/xyz/openbmc_project/Ipmi/meson.build
+++ b/gen/xyz/openbmc_project/Ipmi/meson.build
@@ -1,6 +1,10 @@
 # Generated file; do not modify.
 subdir('SOL')
-generated_others += custom_target(
+subdir('SessionInfo')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Ipmi'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Ipmi/SOL__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Ipmi/SOL.interface.yaml',  ],
     output: [ 'SOL.md' ],
@@ -12,10 +16,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Ipmi/SOL',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('SessionInfo')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Ipmi/SessionInfo__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Ipmi/SessionInfo.interface.yaml',  ],
     output: [ 'SessionInfo.md' ],
@@ -27,5 +33,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Ipmi/SessionInfo',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Led/Group/meson.build b/gen/xyz/openbmc_project/Led/Group/meson.build
index 61ffdcd..c4e3542 100644
--- a/gen/xyz/openbmc_project/Led/Group/meson.build
+++ b/gen/xyz/openbmc_project/Led/Group/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Led/Group'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Led/Group__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Led/Group.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Led/Group.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Led/Group',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Led/Physical/meson.build b/gen/xyz/openbmc_project/Led/Physical/meson.build
index 29adb3a..af36b75 100644
--- a/gen/xyz/openbmc_project/Led/Physical/meson.build
+++ b/gen/xyz/openbmc_project/Led/Physical/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Led/Physical'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Led/Physical__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Led/Physical.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Led/Physical.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Led/Physical',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Led/meson.build b/gen/xyz/openbmc_project/Led/meson.build
index 6752c40..7d44931 100644
--- a/gen/xyz/openbmc_project/Led/meson.build
+++ b/gen/xyz/openbmc_project/Led/meson.build
@@ -1,6 +1,10 @@
 # Generated file; do not modify.
 subdir('Group')
-generated_others += custom_target(
+subdir('Physical')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Led'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Led/Group__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Led/Group.interface.yaml',  ],
     output: [ 'Group.md' ],
@@ -12,10 +16,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Led/Group',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Physical')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Led/Physical__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Led/Physical.interface.yaml',  ],
     output: [ 'Physical.md' ],
@@ -27,5 +33,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Led/Physical',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Logging/Create/meson.build b/gen/xyz/openbmc_project/Logging/Create/meson.build
index 387dc38..f0f3c3a 100644
--- a/gen/xyz/openbmc_project/Logging/Create/meson.build
+++ b/gen/xyz/openbmc_project/Logging/Create/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Logging/Create'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Logging/Create__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Logging/Create.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Logging/Create.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Logging/Create',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Logging/Entry/meson.build b/gen/xyz/openbmc_project/Logging/Entry/meson.build
index 4bda0d8..6a83f14 100644
--- a/gen/xyz/openbmc_project/Logging/Entry/meson.build
+++ b/gen/xyz/openbmc_project/Logging/Entry/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Logging/Entry'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Logging/Entry__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Logging/Entry.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Logging/Entry.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Logging/Entry',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Logging/ErrorBlocksTransition/meson.build b/gen/xyz/openbmc_project/Logging/ErrorBlocksTransition/meson.build
index a4384f7..6a91f5b 100644
--- a/gen/xyz/openbmc_project/Logging/ErrorBlocksTransition/meson.build
+++ b/gen/xyz/openbmc_project/Logging/ErrorBlocksTransition/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Logging/ErrorBlocksTransition'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Logging/ErrorBlocksTransition__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Logging/ErrorBlocksTransition.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Logging/ErrorBlocksTransition.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Logging/ErrorBlocksTransition',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Logging/Event/meson.build b/gen/xyz/openbmc_project/Logging/Event/meson.build
index 684029d..3914a8e 100644
--- a/gen/xyz/openbmc_project/Logging/Event/meson.build
+++ b/gen/xyz/openbmc_project/Logging/Event/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Logging/Event'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Logging/Event__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Logging/Event.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Logging/Event.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Logging/Event',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Logging/IPMI/meson.build b/gen/xyz/openbmc_project/Logging/IPMI/meson.build
index e3bfd63..117046c 100644
--- a/gen/xyz/openbmc_project/Logging/IPMI/meson.build
+++ b/gen/xyz/openbmc_project/Logging/IPMI/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Logging/IPMI'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Logging/IPMI__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Logging/IPMI.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Logging/IPMI.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Logging/IPMI',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Logging/SEL/meson.build b/gen/xyz/openbmc_project/Logging/SEL/meson.build
index e9dc8c6..e8a0bb5 100644
--- a/gen/xyz/openbmc_project/Logging/SEL/meson.build
+++ b/gen/xyz/openbmc_project/Logging/SEL/meson.build
@@ -1,8 +1,16 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Logging/SEL'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Logging/SEL__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Logging/SEL.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Logging/SEL.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +19,11 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Logging/SEL',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Logging/Settings/meson.build b/gen/xyz/openbmc_project/Logging/Settings/meson.build
index 1fba589..da4aefc 100644
--- a/gen/xyz/openbmc_project/Logging/Settings/meson.build
+++ b/gen/xyz/openbmc_project/Logging/Settings/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Logging/Settings'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Logging/Settings__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Logging/Settings.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Logging/Settings.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Logging/Settings',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Logging/Syslog/Destination/Mail/Create/meson.build b/gen/xyz/openbmc_project/Logging/Syslog/Destination/Mail/Create/meson.build
index 7594e6c..863950c 100644
--- a/gen/xyz/openbmc_project/Logging/Syslog/Destination/Mail/Create/meson.build
+++ b/gen/xyz/openbmc_project/Logging/Syslog/Destination/Mail/Create/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Logging/Syslog/Destination/Mail/Create'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Logging/Syslog/Destination/Mail/Create__cpp'.underscorify(),
-    input: [ '../../../../../../../../yaml/xyz/openbmc_project/Logging/Syslog/Destination/Mail/Create.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../../../yaml/xyz/openbmc_project/Logging/Syslog/Destination/Mail/Create.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../../../yaml',
         'xyz/openbmc_project/Logging/Syslog/Destination/Mail/Create',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Logging/Syslog/Destination/Mail/Entry/meson.build b/gen/xyz/openbmc_project/Logging/Syslog/Destination/Mail/Entry/meson.build
index 3d468a2..fe87f87 100644
--- a/gen/xyz/openbmc_project/Logging/Syslog/Destination/Mail/Entry/meson.build
+++ b/gen/xyz/openbmc_project/Logging/Syslog/Destination/Mail/Entry/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Logging/Syslog/Destination/Mail/Entry'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Logging/Syslog/Destination/Mail/Entry__cpp'.underscorify(),
-    input: [ '../../../../../../../../yaml/xyz/openbmc_project/Logging/Syslog/Destination/Mail/Entry.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../../../yaml/xyz/openbmc_project/Logging/Syslog/Destination/Mail/Entry.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../../../yaml',
         'xyz/openbmc_project/Logging/Syslog/Destination/Mail/Entry',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Logging/Syslog/Destination/Mail/meson.build b/gen/xyz/openbmc_project/Logging/Syslog/Destination/Mail/meson.build
index c10a80b..77ed2f3 100644
--- a/gen/xyz/openbmc_project/Logging/Syslog/Destination/Mail/meson.build
+++ b/gen/xyz/openbmc_project/Logging/Syslog/Destination/Mail/meson.build
@@ -1,8 +1,21 @@
 # Generated file; do not modify.
+subdir('Create')
+subdir('Entry')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Logging/Syslog/Destination/Mail'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Logging/Syslog/Destination/Mail__cpp'.underscorify(),
-    input: [ '../../../../../../../yaml/xyz/openbmc_project/Logging/Syslog/Destination/Mail.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../../yaml/xyz/openbmc_project/Logging/Syslog/Destination/Mail.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,10 +24,18 @@
         '--directory', meson.current_source_dir() / '../../../../../../../yaml',
         'xyz/openbmc_project/Logging/Syslog/Destination/Mail',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
-subdir('Create')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Logging/Syslog/Destination/Mail/Create__markdown'.underscorify(),
     input: [ '../../../../../../../yaml/xyz/openbmc_project/Logging/Syslog/Destination/Mail/Create.interface.yaml',  ],
     output: [ 'Create.md' ],
@@ -26,10 +47,12 @@
         '--directory', meson.current_source_dir() / '../../../../../../../yaml',
         'xyz/openbmc_project/Logging/Syslog/Destination/Mail/Create',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Entry')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Logging/Syslog/Destination/Mail/Entry__markdown'.underscorify(),
     input: [ '../../../../../../../yaml/xyz/openbmc_project/Logging/Syslog/Destination/Mail/Entry.interface.yaml',  ],
     output: [ 'Entry.md' ],
@@ -41,5 +64,8 @@
         '--directory', meson.current_source_dir() / '../../../../../../../yaml',
         'xyz/openbmc_project/Logging/Syslog/Destination/Mail/Entry',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Logging/Syslog/Destination/meson.build b/gen/xyz/openbmc_project/Logging/Syslog/Destination/meson.build
index a777078..3a1f32a 100644
--- a/gen/xyz/openbmc_project/Logging/Syslog/Destination/meson.build
+++ b/gen/xyz/openbmc_project/Logging/Syslog/Destination/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('Mail')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'xyz/openbmc_project/Logging/Syslog/Destination'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Logging/Syslog/Destination/Mail__markdown'.underscorify(),
     input: [ '../../../../../../yaml/xyz/openbmc_project/Logging/Syslog/Destination/Mail.interface.yaml',  ],
     output: [ 'Mail.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Logging/Syslog/Destination/Mail',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Logging/meson.build b/gen/xyz/openbmc_project/Logging/meson.build
index 39baab1..69ff763 100644
--- a/gen/xyz/openbmc_project/Logging/meson.build
+++ b/gen/xyz/openbmc_project/Logging/meson.build
@@ -1,8 +1,24 @@
 # Generated file; do not modify.
+subdir('Create')
+subdir('Entry')
+subdir('ErrorBlocksTransition')
+subdir('Event')
+subdir('IPMI')
+subdir('SEL')
+subdir('Settings')
+subdir('Syslog')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Logging'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Logging__cpp'.underscorify(),
-    input: [ '../../../../yaml/xyz/openbmc_project/Logging.events.yaml',  ],
-    output: [ 'event.cpp', 'event.hpp',  ],
+    input: [
+        '../../../../yaml/xyz/openbmc_project/Logging.events.yaml',
+    ],
+    output: [
+        'event.cpp',
+        'event.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,10 +27,15 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Logging',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
-subdir('Create')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Logging/Create__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Logging/Create.interface.yaml',  ],
     output: [ 'Create.md' ],
@@ -26,10 +47,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Logging/Create',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Entry')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Logging/Entry__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Logging/Entry.interface.yaml',  ],
     output: [ 'Entry.md' ],
@@ -41,10 +64,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Logging/Entry',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('ErrorBlocksTransition')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Logging/ErrorBlocksTransition__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Logging/ErrorBlocksTransition.interface.yaml',  ],
     output: [ 'ErrorBlocksTransition.md' ],
@@ -56,10 +81,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Logging/ErrorBlocksTransition',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Event')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Logging/Event__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Logging/Event.interface.yaml',  ],
     output: [ 'Event.md' ],
@@ -71,10 +98,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Logging/Event',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('IPMI')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Logging/IPMI__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Logging/IPMI.interface.yaml',  ],
     output: [ 'IPMI.md' ],
@@ -86,10 +115,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Logging/IPMI',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('SEL')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Logging/SEL__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Logging/SEL.errors.yaml',  ],
     output: [ 'SEL.md' ],
@@ -101,10 +132,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Logging/SEL',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Settings')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Logging/Settings__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Logging/Settings.interface.yaml',  ],
     output: [ 'Settings.md' ],
@@ -116,6 +149,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Logging/Settings',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Syslog')
diff --git a/gen/xyz/openbmc_project/MCTP/Endpoint/meson.build b/gen/xyz/openbmc_project/MCTP/Endpoint/meson.build
index 9036630..64800c2 100644
--- a/gen/xyz/openbmc_project/MCTP/Endpoint/meson.build
+++ b/gen/xyz/openbmc_project/MCTP/Endpoint/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/MCTP/Endpoint'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/MCTP/Endpoint__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/MCTP/Endpoint.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/MCTP/Endpoint.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/MCTP/Endpoint',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/MCTP/meson.build b/gen/xyz/openbmc_project/MCTP/meson.build
index fc9ca6c..7f83597 100644
--- a/gen/xyz/openbmc_project/MCTP/meson.build
+++ b/gen/xyz/openbmc_project/MCTP/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('Endpoint')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'xyz/openbmc_project/MCTP'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/MCTP/Endpoint__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/MCTP/Endpoint.interface.yaml',  ],
     output: [ 'Endpoint.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/MCTP/Endpoint',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Memory/MemoryECC/meson.build b/gen/xyz/openbmc_project/Memory/MemoryECC/meson.build
index e51a8eb..f0935b9 100644
--- a/gen/xyz/openbmc_project/Memory/MemoryECC/meson.build
+++ b/gen/xyz/openbmc_project/Memory/MemoryECC/meson.build
@@ -1,8 +1,22 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Memory/MemoryECC'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Memory/MemoryECC__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Memory/MemoryECC.errors.yaml', '../../../../../yaml/xyz/openbmc_project/Memory/MemoryECC.interface.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp', 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Memory/MemoryECC.errors.yaml',
+        '../../../../../yaml/xyz/openbmc_project/Memory/MemoryECC.interface.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +25,16 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Memory/MemoryECC',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Memory/meson.build b/gen/xyz/openbmc_project/Memory/meson.build
index a8e5d8d..df5d962 100644
--- a/gen/xyz/openbmc_project/Memory/meson.build
+++ b/gen/xyz/openbmc_project/Memory/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('MemoryECC')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'xyz/openbmc_project/Memory'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Memory/MemoryECC__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Memory/MemoryECC.errors.yaml', '../../../../yaml/xyz/openbmc_project/Memory/MemoryECC.interface.yaml',  ],
     output: [ 'MemoryECC.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Memory/MemoryECC',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Metric/Reset/meson.build b/gen/xyz/openbmc_project/Metric/Reset/meson.build
index 09fee53..ff6ad61 100644
--- a/gen/xyz/openbmc_project/Metric/Reset/meson.build
+++ b/gen/xyz/openbmc_project/Metric/Reset/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Metric/Reset'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Metric/Reset__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Metric/Reset.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Metric/Reset.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Metric/Reset',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Metric/Value/meson.build b/gen/xyz/openbmc_project/Metric/Value/meson.build
index 0bbd00d..aa67121 100644
--- a/gen/xyz/openbmc_project/Metric/Value/meson.build
+++ b/gen/xyz/openbmc_project/Metric/Value/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Metric/Value'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Metric/Value__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Metric/Value.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Metric/Value.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Metric/Value',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Metric/meson.build b/gen/xyz/openbmc_project/Metric/meson.build
index 69099b9..ecc7362 100644
--- a/gen/xyz/openbmc_project/Metric/meson.build
+++ b/gen/xyz/openbmc_project/Metric/meson.build
@@ -1,6 +1,10 @@
 # Generated file; do not modify.
 subdir('Reset')
-generated_others += custom_target(
+subdir('Value')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Metric'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Metric/Reset__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Metric/Reset.interface.yaml',  ],
     output: [ 'Reset.md' ],
@@ -12,10 +16,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Metric/Reset',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Value')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Metric/Value__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Metric/Value.interface.yaml',  ],
     output: [ 'Value.md' ],
@@ -27,5 +33,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Metric/Value',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Network/Client/Create/meson.build b/gen/xyz/openbmc_project/Network/Client/Create/meson.build
index b1fbcd8..0d93667 100644
--- a/gen/xyz/openbmc_project/Network/Client/Create/meson.build
+++ b/gen/xyz/openbmc_project/Network/Client/Create/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Network/Client/Create'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Network/Client/Create__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Network/Client/Create.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Network/Client/Create.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Network/Client/Create',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Network/Client/meson.build b/gen/xyz/openbmc_project/Network/Client/meson.build
index 372fe1a..1de7157 100644
--- a/gen/xyz/openbmc_project/Network/Client/meson.build
+++ b/gen/xyz/openbmc_project/Network/Client/meson.build
@@ -1,8 +1,20 @@
 # Generated file; do not modify.
+subdir('Create')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Network/Client'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Network/Client__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Network/Client.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Network/Client.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,10 +23,18 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Network/Client',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
-subdir('Create')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Network/Client/Create__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Network/Client/Create.interface.yaml',  ],
     output: [ 'Create.md' ],
@@ -26,5 +46,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Network/Client/Create',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Network/DHCPConfiguration/meson.build b/gen/xyz/openbmc_project/Network/DHCPConfiguration/meson.build
index 07e269c..60bc74e 100644
--- a/gen/xyz/openbmc_project/Network/DHCPConfiguration/meson.build
+++ b/gen/xyz/openbmc_project/Network/DHCPConfiguration/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Network/DHCPConfiguration'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Network/DHCPConfiguration__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Network/DHCPConfiguration.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Network/DHCPConfiguration.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Network/DHCPConfiguration',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Network/EthernetInterface/meson.build b/gen/xyz/openbmc_project/Network/EthernetInterface/meson.build
index 1b9a8d7..c01c225 100644
--- a/gen/xyz/openbmc_project/Network/EthernetInterface/meson.build
+++ b/gen/xyz/openbmc_project/Network/EthernetInterface/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Network/EthernetInterface'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Network/EthernetInterface__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Network/EthernetInterface.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Network/EthernetInterface.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Network/EthernetInterface',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Network/Experimental/Bond/meson.build b/gen/xyz/openbmc_project/Network/Experimental/Bond/meson.build
index 55803e8..62e306a 100644
--- a/gen/xyz/openbmc_project/Network/Experimental/Bond/meson.build
+++ b/gen/xyz/openbmc_project/Network/Experimental/Bond/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Network/Experimental/Bond'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Network/Experimental/Bond__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Network/Experimental/Bond.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Network/Experimental/Bond.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Network/Experimental/Bond',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Network/Experimental/Tunnel/meson.build b/gen/xyz/openbmc_project/Network/Experimental/Tunnel/meson.build
index 5453995..2ac3d00 100644
--- a/gen/xyz/openbmc_project/Network/Experimental/Tunnel/meson.build
+++ b/gen/xyz/openbmc_project/Network/Experimental/Tunnel/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Network/Experimental/Tunnel'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Network/Experimental/Tunnel__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Network/Experimental/Tunnel.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Network/Experimental/Tunnel.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Network/Experimental/Tunnel',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Network/Experimental/meson.build b/gen/xyz/openbmc_project/Network/Experimental/meson.build
index 1404a9b..3453f47 100644
--- a/gen/xyz/openbmc_project/Network/Experimental/meson.build
+++ b/gen/xyz/openbmc_project/Network/Experimental/meson.build
@@ -1,6 +1,10 @@
 # Generated file; do not modify.
 subdir('Bond')
-generated_others += custom_target(
+subdir('Tunnel')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Network/Experimental'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Network/Experimental/Bond__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Network/Experimental/Bond.interface.yaml',  ],
     output: [ 'Bond.md' ],
@@ -12,10 +16,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Network/Experimental/Bond',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Tunnel')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Network/Experimental/Tunnel__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Network/Experimental/Tunnel.interface.yaml',  ],
     output: [ 'Tunnel.md' ],
@@ -27,5 +33,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Network/Experimental/Tunnel',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Network/IP/meson.build b/gen/xyz/openbmc_project/Network/IP/meson.build
index 78750d2..82f2477 100644
--- a/gen/xyz/openbmc_project/Network/IP/meson.build
+++ b/gen/xyz/openbmc_project/Network/IP/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Network/IP'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Network/IP__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Network/IP.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Network/IP.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Network/IP',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Network/MACAddress/meson.build b/gen/xyz/openbmc_project/Network/MACAddress/meson.build
index 3b64363..2c0a8c0 100644
--- a/gen/xyz/openbmc_project/Network/MACAddress/meson.build
+++ b/gen/xyz/openbmc_project/Network/MACAddress/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Network/MACAddress'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Network/MACAddress__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Network/MACAddress.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Network/MACAddress.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Network/MACAddress',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Network/Neighbor/meson.build b/gen/xyz/openbmc_project/Network/Neighbor/meson.build
index 15b7efb..9b20020 100644
--- a/gen/xyz/openbmc_project/Network/Neighbor/meson.build
+++ b/gen/xyz/openbmc_project/Network/Neighbor/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Network/Neighbor'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Network/Neighbor__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Network/Neighbor.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Network/Neighbor.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Network/Neighbor',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Network/StaticGateway/Create/meson.build b/gen/xyz/openbmc_project/Network/StaticGateway/Create/meson.build
index 43fcaf8..49b4d97 100644
--- a/gen/xyz/openbmc_project/Network/StaticGateway/Create/meson.build
+++ b/gen/xyz/openbmc_project/Network/StaticGateway/Create/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Network/StaticGateway/Create'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Network/StaticGateway/Create__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Network/StaticGateway/Create.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Network/StaticGateway/Create.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Network/StaticGateway/Create',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Network/StaticGateway/meson.build b/gen/xyz/openbmc_project/Network/StaticGateway/meson.build
index 8ef36a0..21c6b37 100644
--- a/gen/xyz/openbmc_project/Network/StaticGateway/meson.build
+++ b/gen/xyz/openbmc_project/Network/StaticGateway/meson.build
@@ -1,8 +1,20 @@
 # Generated file; do not modify.
+subdir('Create')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Network/StaticGateway'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Network/StaticGateway__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Network/StaticGateway.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Network/StaticGateway.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,10 +23,18 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Network/StaticGateway',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
-subdir('Create')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Network/StaticGateway/Create__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Network/StaticGateway/Create.interface.yaml',  ],
     output: [ 'Create.md' ],
@@ -26,5 +46,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Network/StaticGateway/Create',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Network/SystemConfiguration/meson.build b/gen/xyz/openbmc_project/Network/SystemConfiguration/meson.build
index 47c3fc1..afe1fb9 100644
--- a/gen/xyz/openbmc_project/Network/SystemConfiguration/meson.build
+++ b/gen/xyz/openbmc_project/Network/SystemConfiguration/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Network/SystemConfiguration'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Network/SystemConfiguration__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Network/SystemConfiguration.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Network/SystemConfiguration.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Network/SystemConfiguration',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Network/VLAN/meson.build b/gen/xyz/openbmc_project/Network/VLAN/meson.build
index 119b6b4..3d5c355 100644
--- a/gen/xyz/openbmc_project/Network/VLAN/meson.build
+++ b/gen/xyz/openbmc_project/Network/VLAN/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Network/VLAN'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Network/VLAN__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Network/VLAN.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Network/VLAN.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Network/VLAN',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Network/meson.build b/gen/xyz/openbmc_project/Network/meson.build
index c6c9944..a5acd13 100644
--- a/gen/xyz/openbmc_project/Network/meson.build
+++ b/gen/xyz/openbmc_project/Network/meson.build
@@ -1,6 +1,18 @@
 # Generated file; do not modify.
 subdir('Client')
-generated_others += custom_target(
+subdir('DHCPConfiguration')
+subdir('EthernetInterface')
+subdir('Experimental')
+subdir('IP')
+subdir('MACAddress')
+subdir('Neighbor')
+subdir('StaticGateway')
+subdir('SystemConfiguration')
+subdir('VLAN')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Network'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Network/Client__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Network/Client.interface.yaml',  ],
     output: [ 'Client.md' ],
@@ -12,10 +24,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Network/Client',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('DHCPConfiguration')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Network/DHCPConfiguration__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Network/DHCPConfiguration.interface.yaml',  ],
     output: [ 'DHCPConfiguration.md' ],
@@ -27,10 +41,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Network/DHCPConfiguration',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('EthernetInterface')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Network/EthernetInterface__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Network/EthernetInterface.interface.yaml',  ],
     output: [ 'EthernetInterface.md' ],
@@ -42,11 +58,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Network/EthernetInterface',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Experimental')
-subdir('IP')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Network/IP__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Network/IP.interface.yaml',  ],
     output: [ 'IP.md' ],
@@ -58,10 +75,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Network/IP',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('MACAddress')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Network/MACAddress__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Network/MACAddress.interface.yaml',  ],
     output: [ 'MACAddress.md' ],
@@ -73,10 +92,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Network/MACAddress',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Neighbor')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Network/Neighbor__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Network/Neighbor.interface.yaml',  ],
     output: [ 'Neighbor.md' ],
@@ -88,10 +109,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Network/Neighbor',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('StaticGateway')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Network/StaticGateway__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Network/StaticGateway.interface.yaml',  ],
     output: [ 'StaticGateway.md' ],
@@ -103,10 +126,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Network/StaticGateway',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('SystemConfiguration')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Network/SystemConfiguration__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Network/SystemConfiguration.interface.yaml',  ],
     output: [ 'SystemConfiguration.md' ],
@@ -118,10 +143,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Network/SystemConfiguration',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('VLAN')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Network/VLAN__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Network/VLAN.interface.yaml',  ],
     output: [ 'VLAN.md' ],
@@ -133,5 +160,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Network/VLAN',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Nvme/Status/meson.build b/gen/xyz/openbmc_project/Nvme/Status/meson.build
index 9cf44d5..1f14ac8 100644
--- a/gen/xyz/openbmc_project/Nvme/Status/meson.build
+++ b/gen/xyz/openbmc_project/Nvme/Status/meson.build
@@ -1,8 +1,22 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Nvme/Status'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Nvme/Status__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Nvme/Status.errors.yaml', '../../../../../yaml/xyz/openbmc_project/Nvme/Status.interface.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp', 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Nvme/Status.errors.yaml',
+        '../../../../../yaml/xyz/openbmc_project/Nvme/Status.interface.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +25,16 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Nvme/Status',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Nvme/meson.build b/gen/xyz/openbmc_project/Nvme/meson.build
index db8f0b2..4a3664a 100644
--- a/gen/xyz/openbmc_project/Nvme/meson.build
+++ b/gen/xyz/openbmc_project/Nvme/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('Status')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'xyz/openbmc_project/Nvme'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Nvme/Status__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Nvme/Status.errors.yaml', '../../../../yaml/xyz/openbmc_project/Nvme/Status.interface.yaml',  ],
     output: [ 'Status.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Nvme/Status',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Object/Delete/meson.build b/gen/xyz/openbmc_project/Object/Delete/meson.build
index ae08ba9..af01f66 100644
--- a/gen/xyz/openbmc_project/Object/Delete/meson.build
+++ b/gen/xyz/openbmc_project/Object/Delete/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Object/Delete'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Object/Delete__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Object/Delete.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Object/Delete.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Object/Delete',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Object/Enable/meson.build b/gen/xyz/openbmc_project/Object/Enable/meson.build
index bb9aa48..1ed3b20 100644
--- a/gen/xyz/openbmc_project/Object/Enable/meson.build
+++ b/gen/xyz/openbmc_project/Object/Enable/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Object/Enable'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Object/Enable__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Object/Enable.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Object/Enable.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Object/Enable',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Object/meson.build b/gen/xyz/openbmc_project/Object/meson.build
index 0bf2fbc..d4db733 100644
--- a/gen/xyz/openbmc_project/Object/meson.build
+++ b/gen/xyz/openbmc_project/Object/meson.build
@@ -1,6 +1,10 @@
 # Generated file; do not modify.
 subdir('Delete')
-generated_others += custom_target(
+subdir('Enable')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Object'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Object/Delete__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Object/Delete.interface.yaml',  ],
     output: [ 'Delete.md' ],
@@ -12,10 +16,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Object/Delete',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Enable')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Object/Enable__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Object/Enable.interface.yaml',  ],
     output: [ 'Enable.md' ],
@@ -27,5 +33,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Object/Enable',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/ObjectMapper/meson.build b/gen/xyz/openbmc_project/ObjectMapper/meson.build
index 3d4e9d7..cd0710c 100644
--- a/gen/xyz/openbmc_project/ObjectMapper/meson.build
+++ b/gen/xyz/openbmc_project/ObjectMapper/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/ObjectMapper'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/ObjectMapper__cpp'.underscorify(),
-    input: [ '../../../../yaml/xyz/openbmc_project/ObjectMapper.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../yaml/xyz/openbmc_project/ObjectMapper.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/ObjectMapper',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/PFR/Attributes/meson.build b/gen/xyz/openbmc_project/PFR/Attributes/meson.build
index 930b915..d47804a 100644
--- a/gen/xyz/openbmc_project/PFR/Attributes/meson.build
+++ b/gen/xyz/openbmc_project/PFR/Attributes/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/PFR/Attributes'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/PFR/Attributes__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/PFR/Attributes.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/PFR/Attributes.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/PFR/Attributes',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/PFR/meson.build b/gen/xyz/openbmc_project/PFR/meson.build
index df67e4a..e59c1f4 100644
--- a/gen/xyz/openbmc_project/PFR/meson.build
+++ b/gen/xyz/openbmc_project/PFR/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('Attributes')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'xyz/openbmc_project/PFR'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/PFR/Attributes__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/PFR/Attributes.interface.yaml',  ],
     output: [ 'Attributes.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/PFR/Attributes',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/PLDM/Event/meson.build b/gen/xyz/openbmc_project/PLDM/Event/meson.build
index b3f396e..78a53f8 100644
--- a/gen/xyz/openbmc_project/PLDM/Event/meson.build
+++ b/gen/xyz/openbmc_project/PLDM/Event/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/PLDM/Event'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/PLDM/Event__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/PLDM/Event.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/PLDM/Event.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/PLDM/Event',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/PLDM/PDR/meson.build b/gen/xyz/openbmc_project/PLDM/PDR/meson.build
index 9dcb187..1a74816 100644
--- a/gen/xyz/openbmc_project/PLDM/PDR/meson.build
+++ b/gen/xyz/openbmc_project/PLDM/PDR/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/PLDM/PDR'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/PLDM/PDR__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/PLDM/PDR.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/PLDM/PDR.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/PLDM/PDR',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/PLDM/Provider/Certs/Authority/CSR/meson.build b/gen/xyz/openbmc_project/PLDM/Provider/Certs/Authority/CSR/meson.build
index d3e5fc0..08569d1 100644
--- a/gen/xyz/openbmc_project/PLDM/Provider/Certs/Authority/CSR/meson.build
+++ b/gen/xyz/openbmc_project/PLDM/Provider/Certs/Authority/CSR/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/PLDM/Provider/Certs/Authority/CSR'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/PLDM/Provider/Certs/Authority/CSR__cpp'.underscorify(),
-    input: [ '../../../../../../../../yaml/xyz/openbmc_project/PLDM/Provider/Certs/Authority/CSR.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../../../yaml/xyz/openbmc_project/PLDM/Provider/Certs/Authority/CSR.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../../../yaml',
         'xyz/openbmc_project/PLDM/Provider/Certs/Authority/CSR',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/PLDM/Provider/Certs/Authority/meson.build b/gen/xyz/openbmc_project/PLDM/Provider/Certs/Authority/meson.build
index 9747e8b..28d2c65 100644
--- a/gen/xyz/openbmc_project/PLDM/Provider/Certs/Authority/meson.build
+++ b/gen/xyz/openbmc_project/PLDM/Provider/Certs/Authority/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('CSR')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'xyz/openbmc_project/PLDM/Provider/Certs/Authority'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/PLDM/Provider/Certs/Authority/CSR__markdown'.underscorify(),
     input: [ '../../../../../../../yaml/xyz/openbmc_project/PLDM/Provider/Certs/Authority/CSR.interface.yaml',  ],
     output: [ 'CSR.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../../../../yaml',
         'xyz/openbmc_project/PLDM/Provider/Certs/Authority/CSR',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/PLDM/Requester/meson.build b/gen/xyz/openbmc_project/PLDM/Requester/meson.build
index 6d80921..ebec7d7 100644
--- a/gen/xyz/openbmc_project/PLDM/Requester/meson.build
+++ b/gen/xyz/openbmc_project/PLDM/Requester/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/PLDM/Requester'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/PLDM/Requester__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/PLDM/Requester.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/PLDM/Requester.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/PLDM/Requester',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/PLDM/meson.build b/gen/xyz/openbmc_project/PLDM/meson.build
index b0140d5..7180dc5 100644
--- a/gen/xyz/openbmc_project/PLDM/meson.build
+++ b/gen/xyz/openbmc_project/PLDM/meson.build
@@ -1,6 +1,12 @@
 # Generated file; do not modify.
 subdir('Event')
-generated_others += custom_target(
+subdir('PDR')
+subdir('Provider')
+subdir('Requester')
+
+sdbusplus_current_path = 'xyz/openbmc_project/PLDM'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/PLDM/Event__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/PLDM/Event.interface.yaml',  ],
     output: [ 'Event.md' ],
@@ -12,10 +18,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/PLDM/Event',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('PDR')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/PLDM/PDR__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/PLDM/PDR.interface.yaml',  ],
     output: [ 'PDR.md' ],
@@ -27,11 +35,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/PLDM/PDR',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Provider')
-subdir('Requester')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/PLDM/Requester__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/PLDM/Requester.interface.yaml',  ],
     output: [ 'Requester.md' ],
@@ -43,5 +52,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/PLDM/Requester',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/ScheduledTime/meson.build b/gen/xyz/openbmc_project/ScheduledTime/meson.build
index 26a606e..8833ce7 100644
--- a/gen/xyz/openbmc_project/ScheduledTime/meson.build
+++ b/gen/xyz/openbmc_project/ScheduledTime/meson.build
@@ -1,8 +1,16 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/ScheduledTime'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/ScheduledTime__cpp'.underscorify(),
-    input: [ '../../../../yaml/xyz/openbmc_project/ScheduledTime.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../yaml/xyz/openbmc_project/ScheduledTime.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +19,11 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/ScheduledTime',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Sensor/Accuracy/meson.build b/gen/xyz/openbmc_project/Sensor/Accuracy/meson.build
index 4c7c5df..1d77613 100644
--- a/gen/xyz/openbmc_project/Sensor/Accuracy/meson.build
+++ b/gen/xyz/openbmc_project/Sensor/Accuracy/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Sensor/Accuracy'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Sensor/Accuracy__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Sensor/Accuracy.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Sensor/Accuracy.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Sensor/Accuracy',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Sensor/Device/meson.build b/gen/xyz/openbmc_project/Sensor/Device/meson.build
index 8f182d6..3f97720 100644
--- a/gen/xyz/openbmc_project/Sensor/Device/meson.build
+++ b/gen/xyz/openbmc_project/Sensor/Device/meson.build
@@ -1,8 +1,16 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Sensor/Device'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Sensor/Device__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Sensor/Device.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Sensor/Device.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +19,11 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Sensor/Device',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Sensor/Threshold/Critical/meson.build b/gen/xyz/openbmc_project/Sensor/Threshold/Critical/meson.build
index 95254df..b5443e9 100644
--- a/gen/xyz/openbmc_project/Sensor/Threshold/Critical/meson.build
+++ b/gen/xyz/openbmc_project/Sensor/Threshold/Critical/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Sensor/Threshold/Critical'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Sensor/Threshold/Critical__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Sensor/Threshold/Critical.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Sensor/Threshold/Critical.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Sensor/Threshold/Critical',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Sensor/Threshold/HardShutdown/meson.build b/gen/xyz/openbmc_project/Sensor/Threshold/HardShutdown/meson.build
index cce0b65..86c1713 100644
--- a/gen/xyz/openbmc_project/Sensor/Threshold/HardShutdown/meson.build
+++ b/gen/xyz/openbmc_project/Sensor/Threshold/HardShutdown/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Sensor/Threshold/HardShutdown'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Sensor/Threshold/HardShutdown__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Sensor/Threshold/HardShutdown.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Sensor/Threshold/HardShutdown.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Sensor/Threshold/HardShutdown',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Sensor/Threshold/PerformanceLoss/meson.build b/gen/xyz/openbmc_project/Sensor/Threshold/PerformanceLoss/meson.build
index 9df4081..f37357e 100644
--- a/gen/xyz/openbmc_project/Sensor/Threshold/PerformanceLoss/meson.build
+++ b/gen/xyz/openbmc_project/Sensor/Threshold/PerformanceLoss/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Sensor/Threshold/PerformanceLoss'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Sensor/Threshold/PerformanceLoss__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Sensor/Threshold/PerformanceLoss.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Sensor/Threshold/PerformanceLoss.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Sensor/Threshold/PerformanceLoss',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Sensor/Threshold/SoftShutdown/meson.build b/gen/xyz/openbmc_project/Sensor/Threshold/SoftShutdown/meson.build
index 037985e..a0b82d8 100644
--- a/gen/xyz/openbmc_project/Sensor/Threshold/SoftShutdown/meson.build
+++ b/gen/xyz/openbmc_project/Sensor/Threshold/SoftShutdown/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Sensor/Threshold/SoftShutdown'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Sensor/Threshold/SoftShutdown__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Sensor/Threshold/SoftShutdown.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Sensor/Threshold/SoftShutdown.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Sensor/Threshold/SoftShutdown',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Sensor/Threshold/Warning/meson.build b/gen/xyz/openbmc_project/Sensor/Threshold/Warning/meson.build
index 8be40e8..f1acf48 100644
--- a/gen/xyz/openbmc_project/Sensor/Threshold/Warning/meson.build
+++ b/gen/xyz/openbmc_project/Sensor/Threshold/Warning/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Sensor/Threshold/Warning'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Sensor/Threshold/Warning__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/Sensor/Threshold/Warning.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/Sensor/Threshold/Warning.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/Sensor/Threshold/Warning',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Sensor/Threshold/meson.build b/gen/xyz/openbmc_project/Sensor/Threshold/meson.build
index 5001111..ac6859e 100644
--- a/gen/xyz/openbmc_project/Sensor/Threshold/meson.build
+++ b/gen/xyz/openbmc_project/Sensor/Threshold/meson.build
@@ -1,8 +1,24 @@
 # Generated file; do not modify.
+subdir('Critical')
+subdir('HardShutdown')
+subdir('PerformanceLoss')
+subdir('SoftShutdown')
+subdir('Warning')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Sensor/Threshold'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Sensor/Threshold__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Sensor/Threshold.errors.yaml', '../../../../../yaml/xyz/openbmc_project/Sensor/Threshold.events.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp', 'event.cpp', 'event.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Sensor/Threshold.errors.yaml',
+        '../../../../../yaml/xyz/openbmc_project/Sensor/Threshold.events.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+        'event.cpp',
+        'event.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,10 +27,17 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Sensor/Threshold',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
-subdir('Critical')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Sensor/Threshold/Critical__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Sensor/Threshold/Critical.interface.yaml',  ],
     output: [ 'Critical.md' ],
@@ -26,10 +49,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Sensor/Threshold/Critical',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('HardShutdown')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Sensor/Threshold/HardShutdown__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Sensor/Threshold/HardShutdown.interface.yaml',  ],
     output: [ 'HardShutdown.md' ],
@@ -41,10 +66,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Sensor/Threshold/HardShutdown',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('PerformanceLoss')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Sensor/Threshold/PerformanceLoss__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Sensor/Threshold/PerformanceLoss.interface.yaml',  ],
     output: [ 'PerformanceLoss.md' ],
@@ -56,10 +83,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Sensor/Threshold/PerformanceLoss',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('SoftShutdown')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Sensor/Threshold/SoftShutdown__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Sensor/Threshold/SoftShutdown.interface.yaml',  ],
     output: [ 'SoftShutdown.md' ],
@@ -71,10 +100,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Sensor/Threshold/SoftShutdown',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Warning')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Sensor/Threshold/Warning__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/Sensor/Threshold/Warning.interface.yaml',  ],
     output: [ 'Warning.md' ],
@@ -86,5 +117,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Sensor/Threshold/Warning',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Sensor/Value/meson.build b/gen/xyz/openbmc_project/Sensor/Value/meson.build
index e9c47d8..46ce069 100644
--- a/gen/xyz/openbmc_project/Sensor/Value/meson.build
+++ b/gen/xyz/openbmc_project/Sensor/Value/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Sensor/Value'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Sensor/Value__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Sensor/Value.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Sensor/Value.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Sensor/Value',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Sensor/ValueMutability/meson.build b/gen/xyz/openbmc_project/Sensor/ValueMutability/meson.build
index 9910efa..9b95f57 100644
--- a/gen/xyz/openbmc_project/Sensor/ValueMutability/meson.build
+++ b/gen/xyz/openbmc_project/Sensor/ValueMutability/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Sensor/ValueMutability'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Sensor/ValueMutability__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Sensor/ValueMutability.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Sensor/ValueMutability.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Sensor/ValueMutability',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Sensor/meson.build b/gen/xyz/openbmc_project/Sensor/meson.build
index f2b948e..d9fe313 100644
--- a/gen/xyz/openbmc_project/Sensor/meson.build
+++ b/gen/xyz/openbmc_project/Sensor/meson.build
@@ -1,6 +1,13 @@
 # Generated file; do not modify.
 subdir('Accuracy')
-generated_others += custom_target(
+subdir('Device')
+subdir('Threshold')
+subdir('Value')
+subdir('ValueMutability')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Sensor'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Sensor/Accuracy__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Sensor/Accuracy.interface.yaml',  ],
     output: [ 'Accuracy.md' ],
@@ -12,10 +19,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Sensor/Accuracy',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Device')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Sensor/Device__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Sensor/Device.errors.yaml',  ],
     output: [ 'Device.md' ],
@@ -27,10 +36,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Sensor/Device',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Threshold')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Sensor/Threshold__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Sensor/Threshold.errors.yaml', '../../../../yaml/xyz/openbmc_project/Sensor/Threshold.events.yaml',  ],
     output: [ 'Threshold.md' ],
@@ -42,10 +53,29 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Sensor/Threshold',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Value')
-generated_others += custom_target(
+generated_registry += custom_target(
+    'xyz/openbmc_project/Sensor/Threshold__registry'.underscorify(),
+    input: [ '../../../../yaml/xyz/openbmc_project/Sensor/Threshold.events.yaml',  ],
+    output: [ 'Threshold.json' ],
+    depend_files: sdbusplusplus_depfiles,
+    command: [
+        sdbuspp_gen_meson_prog, '--command', 'registry',
+        '--output', meson.current_build_dir(),
+        '--tool', sdbusplusplus_prog,
+        '--directory', meson.current_source_dir() / '../../../../yaml',
+        'xyz/openbmc_project/Sensor/Threshold',
+    ],
+    install: should_generate_registry,
+    install_dir: [inst_registry_dir / sdbusplus_current_path],
+    build_by_default: should_generate_registry,
+)
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Sensor/Value__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Sensor/Value.interface.yaml',  ],
     output: [ 'Value.md' ],
@@ -57,10 +87,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Sensor/Value',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('ValueMutability')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Sensor/ValueMutability__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Sensor/ValueMutability.interface.yaml',  ],
     output: [ 'ValueMutability.md' ],
@@ -72,5 +104,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Sensor/ValueMutability',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Smbios/MDR_V2/meson.build b/gen/xyz/openbmc_project/Smbios/MDR_V2/meson.build
index 18351b4..534e71a 100644
--- a/gen/xyz/openbmc_project/Smbios/MDR_V2/meson.build
+++ b/gen/xyz/openbmc_project/Smbios/MDR_V2/meson.build
@@ -1,8 +1,22 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Smbios/MDR_V2'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Smbios/MDR_V2__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Smbios/MDR_V2.errors.yaml', '../../../../../yaml/xyz/openbmc_project/Smbios/MDR_V2.interface.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp', 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Smbios/MDR_V2.errors.yaml',
+        '../../../../../yaml/xyz/openbmc_project/Smbios/MDR_V2.interface.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +25,16 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Smbios/MDR_V2',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Smbios/meson.build b/gen/xyz/openbmc_project/Smbios/meson.build
index 2dc0186..5f32c24 100644
--- a/gen/xyz/openbmc_project/Smbios/meson.build
+++ b/gen/xyz/openbmc_project/Smbios/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('MDR_V2')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'xyz/openbmc_project/Smbios'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Smbios/MDR_V2__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Smbios/MDR_V2.errors.yaml', '../../../../yaml/xyz/openbmc_project/Smbios/MDR_V2.interface.yaml',  ],
     output: [ 'MDR_V2.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Smbios/MDR_V2',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Software/Activation/meson.build b/gen/xyz/openbmc_project/Software/Activation/meson.build
index c9e804b..705a6f5 100644
--- a/gen/xyz/openbmc_project/Software/Activation/meson.build
+++ b/gen/xyz/openbmc_project/Software/Activation/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Software/Activation'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Software/Activation__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Software/Activation.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Software/Activation.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Software/Activation',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Software/ActivationBlocksTransition/meson.build b/gen/xyz/openbmc_project/Software/ActivationBlocksTransition/meson.build
index 5cedd32..0a1c25d 100644
--- a/gen/xyz/openbmc_project/Software/ActivationBlocksTransition/meson.build
+++ b/gen/xyz/openbmc_project/Software/ActivationBlocksTransition/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Software/ActivationBlocksTransition'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Software/ActivationBlocksTransition__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Software/ActivationBlocksTransition.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Software/ActivationBlocksTransition.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Software/ActivationBlocksTransition',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Software/ActivationProgress/meson.build b/gen/xyz/openbmc_project/Software/ActivationProgress/meson.build
index df11aa7..07bce99 100644
--- a/gen/xyz/openbmc_project/Software/ActivationProgress/meson.build
+++ b/gen/xyz/openbmc_project/Software/ActivationProgress/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Software/ActivationProgress'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Software/ActivationProgress__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Software/ActivationProgress.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Software/ActivationProgress.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Software/ActivationProgress',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Software/ApplyOptions/meson.build b/gen/xyz/openbmc_project/Software/ApplyOptions/meson.build
index c124c2f..858e350 100644
--- a/gen/xyz/openbmc_project/Software/ApplyOptions/meson.build
+++ b/gen/xyz/openbmc_project/Software/ApplyOptions/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Software/ApplyOptions'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Software/ApplyOptions__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Software/ApplyOptions.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Software/ApplyOptions.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Software/ApplyOptions',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Software/ApplyTime/meson.build b/gen/xyz/openbmc_project/Software/ApplyTime/meson.build
index 05eb6b5..edd879b 100644
--- a/gen/xyz/openbmc_project/Software/ApplyTime/meson.build
+++ b/gen/xyz/openbmc_project/Software/ApplyTime/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Software/ApplyTime'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Software/ApplyTime__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Software/ApplyTime.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Software/ApplyTime.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Software/ApplyTime',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Software/ExtendedVersion/meson.build b/gen/xyz/openbmc_project/Software/ExtendedVersion/meson.build
index f77eb13..43adca5 100644
--- a/gen/xyz/openbmc_project/Software/ExtendedVersion/meson.build
+++ b/gen/xyz/openbmc_project/Software/ExtendedVersion/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Software/ExtendedVersion'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Software/ExtendedVersion__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Software/ExtendedVersion.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Software/ExtendedVersion.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Software/ExtendedVersion',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Software/Image/meson.build b/gen/xyz/openbmc_project/Software/Image/meson.build
index f492938..63213ed 100644
--- a/gen/xyz/openbmc_project/Software/Image/meson.build
+++ b/gen/xyz/openbmc_project/Software/Image/meson.build
@@ -1,8 +1,16 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Software/Image'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Software/Image__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Software/Image.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Software/Image.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +19,11 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Software/Image',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Software/MinimumVersion/meson.build b/gen/xyz/openbmc_project/Software/MinimumVersion/meson.build
index d7aee92..1ecf17f 100644
--- a/gen/xyz/openbmc_project/Software/MinimumVersion/meson.build
+++ b/gen/xyz/openbmc_project/Software/MinimumVersion/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Software/MinimumVersion'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Software/MinimumVersion__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Software/MinimumVersion.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Software/MinimumVersion.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Software/MinimumVersion',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Software/RedundancyPriority/meson.build b/gen/xyz/openbmc_project/Software/RedundancyPriority/meson.build
index d2f86be..d4ddeb1 100644
--- a/gen/xyz/openbmc_project/Software/RedundancyPriority/meson.build
+++ b/gen/xyz/openbmc_project/Software/RedundancyPriority/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Software/RedundancyPriority'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Software/RedundancyPriority__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Software/RedundancyPriority.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Software/RedundancyPriority.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Software/RedundancyPriority',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Software/RequestedRedundancyPriority/meson.build b/gen/xyz/openbmc_project/Software/RequestedRedundancyPriority/meson.build
index a1edd0b..fcff0e3 100644
--- a/gen/xyz/openbmc_project/Software/RequestedRedundancyPriority/meson.build
+++ b/gen/xyz/openbmc_project/Software/RequestedRedundancyPriority/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Software/RequestedRedundancyPriority'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Software/RequestedRedundancyPriority__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Software/RequestedRedundancyPriority.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Software/RequestedRedundancyPriority.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Software/RequestedRedundancyPriority',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Software/Settings/meson.build b/gen/xyz/openbmc_project/Software/Settings/meson.build
index 0cf5dcc..4207344 100644
--- a/gen/xyz/openbmc_project/Software/Settings/meson.build
+++ b/gen/xyz/openbmc_project/Software/Settings/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Software/Settings'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Software/Settings__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Software/Settings.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Software/Settings.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Software/Settings',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Software/Update/meson.build b/gen/xyz/openbmc_project/Software/Update/meson.build
index d34410c..76c022d 100644
--- a/gen/xyz/openbmc_project/Software/Update/meson.build
+++ b/gen/xyz/openbmc_project/Software/Update/meson.build
@@ -1,8 +1,22 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Software/Update'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Software/Update__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Software/Update.errors.yaml', '../../../../../yaml/xyz/openbmc_project/Software/Update.interface.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp', 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Software/Update.errors.yaml',
+        '../../../../../yaml/xyz/openbmc_project/Software/Update.interface.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +25,16 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Software/Update',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Software/Version/meson.build b/gen/xyz/openbmc_project/Software/Version/meson.build
index 373950c..c160f67 100644
--- a/gen/xyz/openbmc_project/Software/Version/meson.build
+++ b/gen/xyz/openbmc_project/Software/Version/meson.build
@@ -1,8 +1,22 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Software/Version'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Software/Version__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Software/Version.errors.yaml', '../../../../../yaml/xyz/openbmc_project/Software/Version.interface.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp', 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Software/Version.errors.yaml',
+        '../../../../../yaml/xyz/openbmc_project/Software/Version.interface.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +25,16 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Software/Version',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Software/meson.build b/gen/xyz/openbmc_project/Software/meson.build
index d4bde59..da32eb6 100644
--- a/gen/xyz/openbmc_project/Software/meson.build
+++ b/gen/xyz/openbmc_project/Software/meson.build
@@ -1,6 +1,21 @@
 # Generated file; do not modify.
 subdir('Activation')
-generated_others += custom_target(
+subdir('ActivationBlocksTransition')
+subdir('ActivationProgress')
+subdir('ApplyOptions')
+subdir('ApplyTime')
+subdir('ExtendedVersion')
+subdir('Image')
+subdir('MinimumVersion')
+subdir('RedundancyPriority')
+subdir('RequestedRedundancyPriority')
+subdir('Settings')
+subdir('Update')
+subdir('Version')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Software'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Software/Activation__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Software/Activation.interface.yaml',  ],
     output: [ 'Activation.md' ],
@@ -12,10 +27,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Software/Activation',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('ActivationBlocksTransition')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Software/ActivationBlocksTransition__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Software/ActivationBlocksTransition.interface.yaml',  ],
     output: [ 'ActivationBlocksTransition.md' ],
@@ -27,10 +44,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Software/ActivationBlocksTransition',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('ActivationProgress')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Software/ActivationProgress__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Software/ActivationProgress.interface.yaml',  ],
     output: [ 'ActivationProgress.md' ],
@@ -42,10 +61,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Software/ActivationProgress',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('ApplyOptions')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Software/ApplyOptions__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Software/ApplyOptions.interface.yaml',  ],
     output: [ 'ApplyOptions.md' ],
@@ -57,10 +78,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Software/ApplyOptions',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('ApplyTime')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Software/ApplyTime__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Software/ApplyTime.interface.yaml',  ],
     output: [ 'ApplyTime.md' ],
@@ -72,10 +95,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Software/ApplyTime',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('ExtendedVersion')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Software/ExtendedVersion__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Software/ExtendedVersion.interface.yaml',  ],
     output: [ 'ExtendedVersion.md' ],
@@ -87,10 +112,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Software/ExtendedVersion',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Image')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Software/Image__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Software/Image.errors.yaml',  ],
     output: [ 'Image.md' ],
@@ -102,10 +129,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Software/Image',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('MinimumVersion')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Software/MinimumVersion__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Software/MinimumVersion.interface.yaml',  ],
     output: [ 'MinimumVersion.md' ],
@@ -117,10 +146,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Software/MinimumVersion',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('RedundancyPriority')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Software/RedundancyPriority__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Software/RedundancyPriority.interface.yaml',  ],
     output: [ 'RedundancyPriority.md' ],
@@ -132,10 +163,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Software/RedundancyPriority',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('RequestedRedundancyPriority')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Software/RequestedRedundancyPriority__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Software/RequestedRedundancyPriority.interface.yaml',  ],
     output: [ 'RequestedRedundancyPriority.md' ],
@@ -147,10 +180,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Software/RequestedRedundancyPriority',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Settings')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Software/Settings__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Software/Settings.interface.yaml',  ],
     output: [ 'Settings.md' ],
@@ -162,10 +197,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Software/Settings',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Update')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Software/Update__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Software/Update.errors.yaml', '../../../../yaml/xyz/openbmc_project/Software/Update.interface.yaml',  ],
     output: [ 'Update.md' ],
@@ -177,10 +214,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Software/Update',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Version')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Software/Version__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Software/Version.errors.yaml', '../../../../yaml/xyz/openbmc_project/Software/Version.interface.yaml',  ],
     output: [ 'Version.md' ],
@@ -192,5 +231,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Software/Version',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/State/BMC/meson.build b/gen/xyz/openbmc_project/State/BMC/meson.build
index a802206..34dc906 100644
--- a/gen/xyz/openbmc_project/State/BMC/meson.build
+++ b/gen/xyz/openbmc_project/State/BMC/meson.build
@@ -1,8 +1,22 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/BMC'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/State/BMC__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/State/BMC.errors.yaml', '../../../../../yaml/xyz/openbmc_project/State/BMC.interface.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp', 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/State/BMC.errors.yaml',
+        '../../../../../yaml/xyz/openbmc_project/State/BMC.interface.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +25,16 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/State/BMC',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/State/BMCRedundancy/meson.build b/gen/xyz/openbmc_project/State/BMCRedundancy/meson.build
index f99775d..0fdc456 100644
--- a/gen/xyz/openbmc_project/State/BMCRedundancy/meson.build
+++ b/gen/xyz/openbmc_project/State/BMCRedundancy/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/BMCRedundancy'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/State/BMCRedundancy__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/State/BMCRedundancy.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/State/BMCRedundancy.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/State/BMCRedundancy',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/State/Boot/PostCode/meson.build b/gen/xyz/openbmc_project/State/Boot/PostCode/meson.build
index c08f87f..3b65883 100644
--- a/gen/xyz/openbmc_project/State/Boot/PostCode/meson.build
+++ b/gen/xyz/openbmc_project/State/Boot/PostCode/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/Boot/PostCode'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/State/Boot/PostCode__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/State/Boot/PostCode.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/State/Boot/PostCode.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/State/Boot/PostCode',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/State/Boot/Progress/meson.build b/gen/xyz/openbmc_project/State/Boot/Progress/meson.build
index 704acc5..944c02b 100644
--- a/gen/xyz/openbmc_project/State/Boot/Progress/meson.build
+++ b/gen/xyz/openbmc_project/State/Boot/Progress/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/Boot/Progress'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/State/Boot/Progress__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/State/Boot/Progress.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/State/Boot/Progress.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/State/Boot/Progress',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/State/Boot/Raw/meson.build b/gen/xyz/openbmc_project/State/Boot/Raw/meson.build
index 99c96bc..56d2f5e 100644
--- a/gen/xyz/openbmc_project/State/Boot/Raw/meson.build
+++ b/gen/xyz/openbmc_project/State/Boot/Raw/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/Boot/Raw'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/State/Boot/Raw__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/State/Boot/Raw.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/State/Boot/Raw.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/State/Boot/Raw',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/State/Boot/meson.build b/gen/xyz/openbmc_project/State/Boot/meson.build
index c825821..1e2b82b 100644
--- a/gen/xyz/openbmc_project/State/Boot/meson.build
+++ b/gen/xyz/openbmc_project/State/Boot/meson.build
@@ -1,6 +1,11 @@
 # Generated file; do not modify.
 subdir('PostCode')
-generated_others += custom_target(
+subdir('Progress')
+subdir('Raw')
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/Boot'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/State/Boot/PostCode__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/State/Boot/PostCode.interface.yaml',  ],
     output: [ 'PostCode.md' ],
@@ -12,10 +17,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/State/Boot/PostCode',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Progress')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/State/Boot/Progress__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/State/Boot/Progress.interface.yaml',  ],
     output: [ 'Progress.md' ],
@@ -27,10 +34,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/State/Boot/Progress',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Raw')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/State/Boot/Raw__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/State/Boot/Raw.interface.yaml',  ],
     output: [ 'Raw.md' ],
@@ -42,5 +51,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/State/Boot/Raw',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/State/Cable/meson.build b/gen/xyz/openbmc_project/State/Cable/meson.build
index fb697db..f0552b7 100644
--- a/gen/xyz/openbmc_project/State/Cable/meson.build
+++ b/gen/xyz/openbmc_project/State/Cable/meson.build
@@ -1,8 +1,16 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/Cable'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/State/Cable__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/State/Cable.events.yaml',  ],
-    output: [ 'event.cpp', 'event.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/State/Cable.events.yaml',
+    ],
+    output: [
+        'event.cpp',
+        'event.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +19,11 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/State/Cable',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/State/Chassis/meson.build b/gen/xyz/openbmc_project/State/Chassis/meson.build
index 69b9141..aedbf0c 100644
--- a/gen/xyz/openbmc_project/State/Chassis/meson.build
+++ b/gen/xyz/openbmc_project/State/Chassis/meson.build
@@ -1,8 +1,22 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/Chassis'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/State/Chassis__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/State/Chassis.errors.yaml', '../../../../../yaml/xyz/openbmc_project/State/Chassis.interface.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp', 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/State/Chassis.errors.yaml',
+        '../../../../../yaml/xyz/openbmc_project/State/Chassis.interface.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +25,16 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/State/Chassis',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/State/Decorator/Availability/meson.build b/gen/xyz/openbmc_project/State/Decorator/Availability/meson.build
index e015db9..134fd93 100644
--- a/gen/xyz/openbmc_project/State/Decorator/Availability/meson.build
+++ b/gen/xyz/openbmc_project/State/Decorator/Availability/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/Decorator/Availability'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/State/Decorator/Availability__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/State/Decorator/Availability.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/State/Decorator/Availability.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/State/Decorator/Availability',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/State/Decorator/OperationalStatus/meson.build b/gen/xyz/openbmc_project/State/Decorator/OperationalStatus/meson.build
index 3a777f6..a8fc9de 100644
--- a/gen/xyz/openbmc_project/State/Decorator/OperationalStatus/meson.build
+++ b/gen/xyz/openbmc_project/State/Decorator/OperationalStatus/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/Decorator/OperationalStatus'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/State/Decorator/OperationalStatus__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/State/Decorator/OperationalStatus.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/State/Decorator/OperationalStatus.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/State/Decorator/OperationalStatus',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/State/Decorator/PowerState/meson.build b/gen/xyz/openbmc_project/State/Decorator/PowerState/meson.build
index d0510a9..b78e648 100644
--- a/gen/xyz/openbmc_project/State/Decorator/PowerState/meson.build
+++ b/gen/xyz/openbmc_project/State/Decorator/PowerState/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/Decorator/PowerState'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/State/Decorator/PowerState__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/State/Decorator/PowerState.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/State/Decorator/PowerState.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/State/Decorator/PowerState',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/State/Decorator/PowerSystemInputs/meson.build b/gen/xyz/openbmc_project/State/Decorator/PowerSystemInputs/meson.build
index efc1508..4a9b283 100644
--- a/gen/xyz/openbmc_project/State/Decorator/PowerSystemInputs/meson.build
+++ b/gen/xyz/openbmc_project/State/Decorator/PowerSystemInputs/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/Decorator/PowerSystemInputs'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/State/Decorator/PowerSystemInputs__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/State/Decorator/PowerSystemInputs.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/State/Decorator/PowerSystemInputs.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/State/Decorator/PowerSystemInputs',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/State/Decorator/meson.build b/gen/xyz/openbmc_project/State/Decorator/meson.build
index 10603d7..cbe0541 100644
--- a/gen/xyz/openbmc_project/State/Decorator/meson.build
+++ b/gen/xyz/openbmc_project/State/Decorator/meson.build
@@ -1,6 +1,12 @@
 # Generated file; do not modify.
 subdir('Availability')
-generated_others += custom_target(
+subdir('OperationalStatus')
+subdir('PowerState')
+subdir('PowerSystemInputs')
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/Decorator'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/State/Decorator/Availability__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/State/Decorator/Availability.interface.yaml',  ],
     output: [ 'Availability.md' ],
@@ -12,10 +18,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/State/Decorator/Availability',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('OperationalStatus')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/State/Decorator/OperationalStatus__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/State/Decorator/OperationalStatus.interface.yaml',  ],
     output: [ 'OperationalStatus.md' ],
@@ -27,10 +35,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/State/Decorator/OperationalStatus',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('PowerState')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/State/Decorator/PowerState__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/State/Decorator/PowerState.interface.yaml',  ],
     output: [ 'PowerState.md' ],
@@ -42,10 +52,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/State/Decorator/PowerState',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('PowerSystemInputs')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/State/Decorator/PowerSystemInputs__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/State/Decorator/PowerSystemInputs.interface.yaml',  ],
     output: [ 'PowerSystemInputs.md' ],
@@ -57,5 +69,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/State/Decorator/PowerSystemInputs',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/State/Drive/meson.build b/gen/xyz/openbmc_project/State/Drive/meson.build
index 1050819..f0c59a0 100644
--- a/gen/xyz/openbmc_project/State/Drive/meson.build
+++ b/gen/xyz/openbmc_project/State/Drive/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/Drive'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/State/Drive__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/State/Drive.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/State/Drive.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/State/Drive',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/State/Host/meson.build b/gen/xyz/openbmc_project/State/Host/meson.build
index bd3cde0..ed6a6b3 100644
--- a/gen/xyz/openbmc_project/State/Host/meson.build
+++ b/gen/xyz/openbmc_project/State/Host/meson.build
@@ -1,8 +1,22 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/Host'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/State/Host__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/State/Host.errors.yaml', '../../../../../yaml/xyz/openbmc_project/State/Host.interface.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp', 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/State/Host.errors.yaml',
+        '../../../../../yaml/xyz/openbmc_project/State/Host.interface.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +25,16 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/State/Host',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/State/Leak/Detector/meson.build b/gen/xyz/openbmc_project/State/Leak/Detector/meson.build
index 1eccd0c..852e91d 100644
--- a/gen/xyz/openbmc_project/State/Leak/Detector/meson.build
+++ b/gen/xyz/openbmc_project/State/Leak/Detector/meson.build
@@ -1,8 +1,22 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/Leak/Detector'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/State/Leak/Detector__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/State/Leak/Detector.events.yaml', '../../../../../../yaml/xyz/openbmc_project/State/Leak/Detector.interface.yaml',  ],
-    output: [ 'event.cpp', 'event.hpp', 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/State/Leak/Detector.events.yaml',
+        '../../../../../../yaml/xyz/openbmc_project/State/Leak/Detector.interface.yaml',
+    ],
+    output: [
+        'event.cpp',
+        'event.hpp',
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +25,16 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/State/Leak/Detector',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/State/Leak/meson.build b/gen/xyz/openbmc_project/State/Leak/meson.build
index ff45579..b9faeb8 100644
--- a/gen/xyz/openbmc_project/State/Leak/meson.build
+++ b/gen/xyz/openbmc_project/State/Leak/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('Detector')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/Leak'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/State/Leak/Detector__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/State/Leak/Detector.events.yaml', '../../../../../yaml/xyz/openbmc_project/State/Leak/Detector.interface.yaml',  ],
     output: [ 'Detector.md' ],
@@ -12,5 +15,25 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/State/Leak/Detector',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
+)
+
+generated_registry += custom_target(
+    'xyz/openbmc_project/State/Leak/Detector__registry'.underscorify(),
+    input: [ '../../../../../yaml/xyz/openbmc_project/State/Leak/Detector.events.yaml',  ],
+    output: [ 'Detector.json' ],
+    depend_files: sdbusplusplus_depfiles,
+    command: [
+        sdbuspp_gen_meson_prog, '--command', 'registry',
+        '--output', meson.current_build_dir(),
+        '--tool', sdbusplusplus_prog,
+        '--directory', meson.current_source_dir() / '../../../../../yaml',
+        'xyz/openbmc_project/State/Leak/Detector',
+    ],
+    install: should_generate_registry,
+    install_dir: [inst_registry_dir / sdbusplus_current_path],
+    build_by_default: should_generate_registry,
 )
 
diff --git a/gen/xyz/openbmc_project/State/OperatingSystem/Status/meson.build b/gen/xyz/openbmc_project/State/OperatingSystem/Status/meson.build
index e40a7d7..1a08371 100644
--- a/gen/xyz/openbmc_project/State/OperatingSystem/Status/meson.build
+++ b/gen/xyz/openbmc_project/State/OperatingSystem/Status/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/OperatingSystem/Status'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/State/OperatingSystem/Status__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/State/OperatingSystem/Status.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/State/OperatingSystem/Status.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/State/OperatingSystem/Status',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/State/OperatingSystem/meson.build b/gen/xyz/openbmc_project/State/OperatingSystem/meson.build
index f7bb788..6281f48 100644
--- a/gen/xyz/openbmc_project/State/OperatingSystem/meson.build
+++ b/gen/xyz/openbmc_project/State/OperatingSystem/meson.build
@@ -1,6 +1,9 @@
 # Generated file; do not modify.
 subdir('Status')
-generated_others += custom_target(
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/OperatingSystem'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/State/OperatingSystem/Status__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/State/OperatingSystem/Status.interface.yaml',  ],
     output: [ 'Status.md' ],
@@ -12,5 +15,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/State/OperatingSystem/Status',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/State/PowerOnHours/meson.build b/gen/xyz/openbmc_project/State/PowerOnHours/meson.build
index a0f8444..25ee07c 100644
--- a/gen/xyz/openbmc_project/State/PowerOnHours/meson.build
+++ b/gen/xyz/openbmc_project/State/PowerOnHours/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/PowerOnHours'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/State/PowerOnHours__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/State/PowerOnHours.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/State/PowerOnHours.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/State/PowerOnHours',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/State/ScheduledHostTransition/meson.build b/gen/xyz/openbmc_project/State/ScheduledHostTransition/meson.build
index 9e25e33..931318e 100644
--- a/gen/xyz/openbmc_project/State/ScheduledHostTransition/meson.build
+++ b/gen/xyz/openbmc_project/State/ScheduledHostTransition/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/ScheduledHostTransition'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/State/ScheduledHostTransition__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/State/ScheduledHostTransition.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/State/ScheduledHostTransition.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/State/ScheduledHostTransition',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/State/Shutdown/Inventory/meson.build b/gen/xyz/openbmc_project/State/Shutdown/Inventory/meson.build
index 65dfedb..9010530 100644
--- a/gen/xyz/openbmc_project/State/Shutdown/Inventory/meson.build
+++ b/gen/xyz/openbmc_project/State/Shutdown/Inventory/meson.build
@@ -1,8 +1,16 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/Shutdown/Inventory'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/State/Shutdown/Inventory__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/State/Shutdown/Inventory.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/State/Shutdown/Inventory.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +19,11 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/State/Shutdown/Inventory',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/State/Shutdown/Power/meson.build b/gen/xyz/openbmc_project/State/Shutdown/Power/meson.build
index d0a6dfe..5812a7a 100644
--- a/gen/xyz/openbmc_project/State/Shutdown/Power/meson.build
+++ b/gen/xyz/openbmc_project/State/Shutdown/Power/meson.build
@@ -1,8 +1,16 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/Shutdown/Power'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/State/Shutdown/Power__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/State/Shutdown/Power.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/State/Shutdown/Power.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +19,11 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/State/Shutdown/Power',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/State/Shutdown/ThermalEvent/meson.build b/gen/xyz/openbmc_project/State/Shutdown/ThermalEvent/meson.build
index c7f0897..487cab0 100644
--- a/gen/xyz/openbmc_project/State/Shutdown/ThermalEvent/meson.build
+++ b/gen/xyz/openbmc_project/State/Shutdown/ThermalEvent/meson.build
@@ -1,8 +1,16 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/Shutdown/ThermalEvent'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/State/Shutdown/ThermalEvent__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/State/Shutdown/ThermalEvent.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/State/Shutdown/ThermalEvent.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +19,11 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/State/Shutdown/ThermalEvent',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/State/Shutdown/meson.build b/gen/xyz/openbmc_project/State/Shutdown/meson.build
index 8c63dc3..64602cb 100644
--- a/gen/xyz/openbmc_project/State/Shutdown/meson.build
+++ b/gen/xyz/openbmc_project/State/Shutdown/meson.build
@@ -1,6 +1,11 @@
 # Generated file; do not modify.
 subdir('Inventory')
-generated_others += custom_target(
+subdir('Power')
+subdir('ThermalEvent')
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/Shutdown'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/State/Shutdown/Inventory__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/State/Shutdown/Inventory.errors.yaml',  ],
     output: [ 'Inventory.md' ],
@@ -12,10 +17,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/State/Shutdown/Inventory',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Power')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/State/Shutdown/Power__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/State/Shutdown/Power.errors.yaml',  ],
     output: [ 'Power.md' ],
@@ -27,10 +34,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/State/Shutdown/Power',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('ThermalEvent')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/State/Shutdown/ThermalEvent__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/State/Shutdown/ThermalEvent.errors.yaml',  ],
     output: [ 'ThermalEvent.md' ],
@@ -42,5 +51,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/State/Shutdown/ThermalEvent',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/State/SystemdTarget/meson.build b/gen/xyz/openbmc_project/State/SystemdTarget/meson.build
index ad4018e..88fab84 100644
--- a/gen/xyz/openbmc_project/State/SystemdTarget/meson.build
+++ b/gen/xyz/openbmc_project/State/SystemdTarget/meson.build
@@ -1,8 +1,16 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/SystemdTarget'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/State/SystemdTarget__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/State/SystemdTarget.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/State/SystemdTarget.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +19,11 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/State/SystemdTarget',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/State/Watchdog/meson.build b/gen/xyz/openbmc_project/State/Watchdog/meson.build
index 4259d12..cea522f 100644
--- a/gen/xyz/openbmc_project/State/Watchdog/meson.build
+++ b/gen/xyz/openbmc_project/State/Watchdog/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/State/Watchdog'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/State/Watchdog__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/State/Watchdog.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/State/Watchdog.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/State/Watchdog',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/State/meson.build b/gen/xyz/openbmc_project/State/meson.build
index 3115b3c..247f9c4 100644
--- a/gen/xyz/openbmc_project/State/meson.build
+++ b/gen/xyz/openbmc_project/State/meson.build
@@ -1,6 +1,23 @@
 # Generated file; do not modify.
 subdir('BMC')
-generated_others += custom_target(
+subdir('BMCRedundancy')
+subdir('Boot')
+subdir('Cable')
+subdir('Chassis')
+subdir('Decorator')
+subdir('Drive')
+subdir('Host')
+subdir('Leak')
+subdir('OperatingSystem')
+subdir('PowerOnHours')
+subdir('ScheduledHostTransition')
+subdir('Shutdown')
+subdir('SystemdTarget')
+subdir('Watchdog')
+
+sdbusplus_current_path = 'xyz/openbmc_project/State'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/State/BMC__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/State/BMC.errors.yaml', '../../../../yaml/xyz/openbmc_project/State/BMC.interface.yaml',  ],
     output: [ 'BMC.md' ],
@@ -12,10 +29,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/State/BMC',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('BMCRedundancy')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/State/BMCRedundancy__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/State/BMCRedundancy.interface.yaml',  ],
     output: [ 'BMCRedundancy.md' ],
@@ -27,11 +46,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/State/BMCRedundancy',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Boot')
-subdir('Cable')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/State/Cable__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/State/Cable.events.yaml',  ],
     output: [ 'Cable.md' ],
@@ -43,10 +63,29 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/State/Cable',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Chassis')
-generated_others += custom_target(
+generated_registry += custom_target(
+    'xyz/openbmc_project/State/Cable__registry'.underscorify(),
+    input: [ '../../../../yaml/xyz/openbmc_project/State/Cable.events.yaml',  ],
+    output: [ 'Cable.json' ],
+    depend_files: sdbusplusplus_depfiles,
+    command: [
+        sdbuspp_gen_meson_prog, '--command', 'registry',
+        '--output', meson.current_build_dir(),
+        '--tool', sdbusplusplus_prog,
+        '--directory', meson.current_source_dir() / '../../../../yaml',
+        'xyz/openbmc_project/State/Cable',
+    ],
+    install: should_generate_registry,
+    install_dir: [inst_registry_dir / sdbusplus_current_path],
+    build_by_default: should_generate_registry,
+)
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/State/Chassis__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/State/Chassis.errors.yaml', '../../../../yaml/xyz/openbmc_project/State/Chassis.interface.yaml',  ],
     output: [ 'Chassis.md' ],
@@ -58,11 +97,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/State/Chassis',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Decorator')
-subdir('Drive')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/State/Drive__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/State/Drive.interface.yaml',  ],
     output: [ 'Drive.md' ],
@@ -74,10 +114,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/State/Drive',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Host')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/State/Host__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/State/Host.errors.yaml', '../../../../yaml/xyz/openbmc_project/State/Host.interface.yaml',  ],
     output: [ 'Host.md' ],
@@ -89,12 +131,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/State/Host',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Leak')
-subdir('OperatingSystem')
-subdir('PowerOnHours')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/State/PowerOnHours__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/State/PowerOnHours.interface.yaml',  ],
     output: [ 'PowerOnHours.md' ],
@@ -106,10 +148,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/State/PowerOnHours',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('ScheduledHostTransition')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/State/ScheduledHostTransition__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/State/ScheduledHostTransition.interface.yaml',  ],
     output: [ 'ScheduledHostTransition.md' ],
@@ -121,11 +165,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/State/ScheduledHostTransition',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Shutdown')
-subdir('SystemdTarget')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/State/SystemdTarget__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/State/SystemdTarget.errors.yaml',  ],
     output: [ 'SystemdTarget.md' ],
@@ -137,10 +182,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/State/SystemdTarget',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Watchdog')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/State/Watchdog__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/State/Watchdog.interface.yaml',  ],
     output: [ 'Watchdog.md' ],
@@ -152,5 +199,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/State/Watchdog',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Telemetry/Report/meson.build b/gen/xyz/openbmc_project/Telemetry/Report/meson.build
index e1521a1..768cb54 100644
--- a/gen/xyz/openbmc_project/Telemetry/Report/meson.build
+++ b/gen/xyz/openbmc_project/Telemetry/Report/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Telemetry/Report'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Telemetry/Report__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Telemetry/Report.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Telemetry/Report.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Telemetry/Report',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Telemetry/ReportManager/meson.build b/gen/xyz/openbmc_project/Telemetry/ReportManager/meson.build
index 4797788..1c607eb 100644
--- a/gen/xyz/openbmc_project/Telemetry/ReportManager/meson.build
+++ b/gen/xyz/openbmc_project/Telemetry/ReportManager/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Telemetry/ReportManager'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Telemetry/ReportManager__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Telemetry/ReportManager.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Telemetry/ReportManager.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Telemetry/ReportManager',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Telemetry/Trigger/meson.build b/gen/xyz/openbmc_project/Telemetry/Trigger/meson.build
index 9acece1..a3c60e0 100644
--- a/gen/xyz/openbmc_project/Telemetry/Trigger/meson.build
+++ b/gen/xyz/openbmc_project/Telemetry/Trigger/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Telemetry/Trigger'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Telemetry/Trigger__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Telemetry/Trigger.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Telemetry/Trigger.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Telemetry/Trigger',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Telemetry/TriggerManager/meson.build b/gen/xyz/openbmc_project/Telemetry/TriggerManager/meson.build
index 69ab235..9d3cc13 100644
--- a/gen/xyz/openbmc_project/Telemetry/TriggerManager/meson.build
+++ b/gen/xyz/openbmc_project/Telemetry/TriggerManager/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Telemetry/TriggerManager'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Telemetry/TriggerManager__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Telemetry/TriggerManager.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Telemetry/TriggerManager.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Telemetry/TriggerManager',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Telemetry/meson.build b/gen/xyz/openbmc_project/Telemetry/meson.build
index aa3c93b..8881f8a 100644
--- a/gen/xyz/openbmc_project/Telemetry/meson.build
+++ b/gen/xyz/openbmc_project/Telemetry/meson.build
@@ -1,6 +1,12 @@
 # Generated file; do not modify.
 subdir('Report')
-generated_others += custom_target(
+subdir('ReportManager')
+subdir('Trigger')
+subdir('TriggerManager')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Telemetry'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Telemetry/Report__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Telemetry/Report.interface.yaml',  ],
     output: [ 'Report.md' ],
@@ -12,10 +18,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Telemetry/Report',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('ReportManager')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Telemetry/ReportManager__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Telemetry/ReportManager.interface.yaml',  ],
     output: [ 'ReportManager.md' ],
@@ -27,10 +35,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Telemetry/ReportManager',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Trigger')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Telemetry/Trigger__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Telemetry/Trigger.interface.yaml',  ],
     output: [ 'Trigger.md' ],
@@ -42,10 +52,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Telemetry/Trigger',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('TriggerManager')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Telemetry/TriggerManager__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Telemetry/TriggerManager.interface.yaml',  ],
     output: [ 'TriggerManager.md' ],
@@ -57,5 +69,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Telemetry/TriggerManager',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/Time/EpochTime/meson.build b/gen/xyz/openbmc_project/Time/EpochTime/meson.build
index b89777b..977ec67 100644
--- a/gen/xyz/openbmc_project/Time/EpochTime/meson.build
+++ b/gen/xyz/openbmc_project/Time/EpochTime/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Time/EpochTime'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Time/EpochTime__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Time/EpochTime.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Time/EpochTime.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Time/EpochTime',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Time/Synchronization/meson.build b/gen/xyz/openbmc_project/Time/Synchronization/meson.build
index c1608cf..40cb9d1 100644
--- a/gen/xyz/openbmc_project/Time/Synchronization/meson.build
+++ b/gen/xyz/openbmc_project/Time/Synchronization/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/Time/Synchronization'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Time/Synchronization__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/Time/Synchronization.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/Time/Synchronization.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/Time/Synchronization',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/Time/meson.build b/gen/xyz/openbmc_project/Time/meson.build
index 3936983..d574cff 100644
--- a/gen/xyz/openbmc_project/Time/meson.build
+++ b/gen/xyz/openbmc_project/Time/meson.build
@@ -1,8 +1,18 @@
 # Generated file; do not modify.
+subdir('EpochTime')
+subdir('Synchronization')
+
+sdbusplus_current_path = 'xyz/openbmc_project/Time'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/Time__cpp'.underscorify(),
-    input: [ '../../../../yaml/xyz/openbmc_project/Time.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../yaml/xyz/openbmc_project/Time.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,10 +21,15 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Time',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
-subdir('EpochTime')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Time/EpochTime__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Time/EpochTime.interface.yaml',  ],
     output: [ 'EpochTime.md' ],
@@ -26,10 +41,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Time/EpochTime',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Synchronization')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Time/Synchronization__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/Time/Synchronization.interface.yaml',  ],
     output: [ 'Synchronization.md' ],
@@ -41,5 +58,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/Time/Synchronization',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/User/AccountPolicy/meson.build b/gen/xyz/openbmc_project/User/AccountPolicy/meson.build
index ec2ca11..b08320c 100644
--- a/gen/xyz/openbmc_project/User/AccountPolicy/meson.build
+++ b/gen/xyz/openbmc_project/User/AccountPolicy/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/User/AccountPolicy'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/User/AccountPolicy__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/User/AccountPolicy.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/User/AccountPolicy.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/User/AccountPolicy',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/User/Attributes/meson.build b/gen/xyz/openbmc_project/User/Attributes/meson.build
index de43e71..080d965 100644
--- a/gen/xyz/openbmc_project/User/Attributes/meson.build
+++ b/gen/xyz/openbmc_project/User/Attributes/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/User/Attributes'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/User/Attributes__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/User/Attributes.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/User/Attributes.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/User/Attributes',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/User/Common/meson.build b/gen/xyz/openbmc_project/User/Common/meson.build
index 703f40b..432e246 100644
--- a/gen/xyz/openbmc_project/User/Common/meson.build
+++ b/gen/xyz/openbmc_project/User/Common/meson.build
@@ -1,8 +1,16 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/User/Common'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/User/Common__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/User/Common.errors.yaml',  ],
-    output: [ 'error.cpp', 'error.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/User/Common.errors.yaml',
+    ],
+    output: [
+        'error.cpp',
+        'error.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +19,11 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/User/Common',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/User/Ldap/Config/meson.build b/gen/xyz/openbmc_project/User/Ldap/Config/meson.build
index 602e577..123c0e0 100644
--- a/gen/xyz/openbmc_project/User/Ldap/Config/meson.build
+++ b/gen/xyz/openbmc_project/User/Ldap/Config/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/User/Ldap/Config'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/User/Ldap/Config__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/User/Ldap/Config.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/User/Ldap/Config.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/User/Ldap/Config',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/User/Ldap/Create/meson.build b/gen/xyz/openbmc_project/User/Ldap/Create/meson.build
index 0d7594d..8abffc6 100644
--- a/gen/xyz/openbmc_project/User/Ldap/Create/meson.build
+++ b/gen/xyz/openbmc_project/User/Ldap/Create/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/User/Ldap/Create'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/User/Ldap/Create__cpp'.underscorify(),
-    input: [ '../../../../../../yaml/xyz/openbmc_project/User/Ldap/Create.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../../yaml/xyz/openbmc_project/User/Ldap/Create.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../../yaml',
         'xyz/openbmc_project/User/Ldap/Create',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/User/Ldap/meson.build b/gen/xyz/openbmc_project/User/Ldap/meson.build
index b45ac4f..749c80f 100644
--- a/gen/xyz/openbmc_project/User/Ldap/meson.build
+++ b/gen/xyz/openbmc_project/User/Ldap/meson.build
@@ -1,6 +1,10 @@
 # Generated file; do not modify.
 subdir('Config')
-generated_others += custom_target(
+subdir('Create')
+
+sdbusplus_current_path = 'xyz/openbmc_project/User/Ldap'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/User/Ldap/Config__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/User/Ldap/Config.interface.yaml',  ],
     output: [ 'Config.md' ],
@@ -12,10 +16,12 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/User/Ldap/Config',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Create')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/User/Ldap/Create__markdown'.underscorify(),
     input: [ '../../../../../yaml/xyz/openbmc_project/User/Ldap/Create.interface.yaml',  ],
     output: [ 'Create.md' ],
@@ -27,5 +33,8 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/User/Ldap/Create',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/User/Manager/meson.build b/gen/xyz/openbmc_project/User/Manager/meson.build
index 01b05bc..75e1069 100644
--- a/gen/xyz/openbmc_project/User/Manager/meson.build
+++ b/gen/xyz/openbmc_project/User/Manager/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/User/Manager'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/User/Manager__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/User/Manager.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/User/Manager.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/User/Manager',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/User/MultiFactorAuthConfiguration/meson.build b/gen/xyz/openbmc_project/User/MultiFactorAuthConfiguration/meson.build
index e4e66c9..88bae9e 100644
--- a/gen/xyz/openbmc_project/User/MultiFactorAuthConfiguration/meson.build
+++ b/gen/xyz/openbmc_project/User/MultiFactorAuthConfiguration/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/User/MultiFactorAuthConfiguration'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/User/MultiFactorAuthConfiguration__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/User/MultiFactorAuthConfiguration.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/User/MultiFactorAuthConfiguration.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/User/MultiFactorAuthConfiguration',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/User/PrivilegeMapper/meson.build b/gen/xyz/openbmc_project/User/PrivilegeMapper/meson.build
index 14d17ca..a6d4832 100644
--- a/gen/xyz/openbmc_project/User/PrivilegeMapper/meson.build
+++ b/gen/xyz/openbmc_project/User/PrivilegeMapper/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/User/PrivilegeMapper'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/User/PrivilegeMapper__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/User/PrivilegeMapper.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/User/PrivilegeMapper.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/User/PrivilegeMapper',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/User/PrivilegeMapperEntry/meson.build b/gen/xyz/openbmc_project/User/PrivilegeMapperEntry/meson.build
index aaa9fd0..3126fbe 100644
--- a/gen/xyz/openbmc_project/User/PrivilegeMapperEntry/meson.build
+++ b/gen/xyz/openbmc_project/User/PrivilegeMapperEntry/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/User/PrivilegeMapperEntry'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/User/PrivilegeMapperEntry__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/User/PrivilegeMapperEntry.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/User/PrivilegeMapperEntry.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/User/PrivilegeMapperEntry',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/User/TOTPAuthenticator/meson.build b/gen/xyz/openbmc_project/User/TOTPAuthenticator/meson.build
index 1d8e229..31cd1f3 100644
--- a/gen/xyz/openbmc_project/User/TOTPAuthenticator/meson.build
+++ b/gen/xyz/openbmc_project/User/TOTPAuthenticator/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/User/TOTPAuthenticator'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/User/TOTPAuthenticator__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/User/TOTPAuthenticator.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/User/TOTPAuthenticator.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/User/TOTPAuthenticator',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/User/meson.build b/gen/xyz/openbmc_project/User/meson.build
index 378518f..3b290d6 100644
--- a/gen/xyz/openbmc_project/User/meson.build
+++ b/gen/xyz/openbmc_project/User/meson.build
@@ -1,6 +1,17 @@
 # Generated file; do not modify.
 subdir('AccountPolicy')
-generated_others += custom_target(
+subdir('Attributes')
+subdir('Common')
+subdir('Ldap')
+subdir('Manager')
+subdir('MultiFactorAuthConfiguration')
+subdir('PrivilegeMapper')
+subdir('PrivilegeMapperEntry')
+subdir('TOTPAuthenticator')
+
+sdbusplus_current_path = 'xyz/openbmc_project/User'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/User/AccountPolicy__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/User/AccountPolicy.interface.yaml',  ],
     output: [ 'AccountPolicy.md' ],
@@ -12,10 +23,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/User/AccountPolicy',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Attributes')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/User/Attributes__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/User/Attributes.interface.yaml',  ],
     output: [ 'Attributes.md' ],
@@ -27,10 +40,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/User/Attributes',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Common')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/User/Common__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/User/Common.errors.yaml',  ],
     output: [ 'Common.md' ],
@@ -42,11 +57,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/User/Common',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Ldap')
-subdir('Manager')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/User/Manager__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/User/Manager.interface.yaml',  ],
     output: [ 'Manager.md' ],
@@ -58,10 +74,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/User/Manager',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('MultiFactorAuthConfiguration')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/User/MultiFactorAuthConfiguration__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/User/MultiFactorAuthConfiguration.interface.yaml',  ],
     output: [ 'MultiFactorAuthConfiguration.md' ],
@@ -73,10 +91,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/User/MultiFactorAuthConfiguration',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('PrivilegeMapper')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/User/PrivilegeMapper__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/User/PrivilegeMapper.interface.yaml',  ],
     output: [ 'PrivilegeMapper.md' ],
@@ -88,10 +108,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/User/PrivilegeMapper',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('PrivilegeMapperEntry')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/User/PrivilegeMapperEntry__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/User/PrivilegeMapperEntry.interface.yaml',  ],
     output: [ 'PrivilegeMapperEntry.md' ],
@@ -103,10 +125,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/User/PrivilegeMapperEntry',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('TOTPAuthenticator')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/User/TOTPAuthenticator__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/User/TOTPAuthenticator.interface.yaml',  ],
     output: [ 'TOTPAuthenticator.md' ],
@@ -118,5 +142,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/User/TOTPAuthenticator',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/VirtualMedia/Legacy/meson.build b/gen/xyz/openbmc_project/VirtualMedia/Legacy/meson.build
index 5c8b97e..3430cda 100644
--- a/gen/xyz/openbmc_project/VirtualMedia/Legacy/meson.build
+++ b/gen/xyz/openbmc_project/VirtualMedia/Legacy/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/VirtualMedia/Legacy'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/VirtualMedia/Legacy__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/VirtualMedia/Legacy.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/VirtualMedia/Legacy.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/VirtualMedia/Legacy',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/VirtualMedia/MountPoint/meson.build b/gen/xyz/openbmc_project/VirtualMedia/MountPoint/meson.build
index 8c6006c..8bbce97 100644
--- a/gen/xyz/openbmc_project/VirtualMedia/MountPoint/meson.build
+++ b/gen/xyz/openbmc_project/VirtualMedia/MountPoint/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/VirtualMedia/MountPoint'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/VirtualMedia/MountPoint__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/VirtualMedia/MountPoint.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/VirtualMedia/MountPoint.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/VirtualMedia/MountPoint',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/VirtualMedia/Process/meson.build b/gen/xyz/openbmc_project/VirtualMedia/Process/meson.build
index 105d876..63231bd 100644
--- a/gen/xyz/openbmc_project/VirtualMedia/Process/meson.build
+++ b/gen/xyz/openbmc_project/VirtualMedia/Process/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/VirtualMedia/Process'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/VirtualMedia/Process__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/VirtualMedia/Process.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/VirtualMedia/Process.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/VirtualMedia/Process',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/VirtualMedia/Proxy/meson.build b/gen/xyz/openbmc_project/VirtualMedia/Proxy/meson.build
index 2d33947..bd635b0 100644
--- a/gen/xyz/openbmc_project/VirtualMedia/Proxy/meson.build
+++ b/gen/xyz/openbmc_project/VirtualMedia/Proxy/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/VirtualMedia/Proxy'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/VirtualMedia/Proxy__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/VirtualMedia/Proxy.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/VirtualMedia/Proxy.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/VirtualMedia/Proxy',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/VirtualMedia/Stats/meson.build b/gen/xyz/openbmc_project/VirtualMedia/Stats/meson.build
index 3758e41..d2d2d6f 100644
--- a/gen/xyz/openbmc_project/VirtualMedia/Stats/meson.build
+++ b/gen/xyz/openbmc_project/VirtualMedia/Stats/meson.build
@@ -1,8 +1,19 @@
 # Generated file; do not modify.
+
+sdbusplus_current_path = 'xyz/openbmc_project/VirtualMedia/Stats'
+
 generated_sources += custom_target(
     'xyz/openbmc_project/VirtualMedia/Stats__cpp'.underscorify(),
-    input: [ '../../../../../yaml/xyz/openbmc_project/VirtualMedia/Stats.interface.yaml',  ],
-    output: [ 'common.hpp', 'server.cpp', 'server.hpp', 'aserver.hpp', 'client.hpp',  ],
+    input: [
+        '../../../../../yaml/xyz/openbmc_project/VirtualMedia/Stats.interface.yaml',
+    ],
+    output: [
+        'common.hpp',
+        'server.hpp',
+        'server.cpp',
+        'aserver.hpp',
+        'client.hpp',
+    ],
     depend_files: sdbusplusplus_depfiles,
     command: [
         sdbuspp_gen_meson_prog, '--command', 'cpp',
@@ -11,5 +22,14 @@
         '--directory', meson.current_source_dir() / '../../../../../yaml',
         'xyz/openbmc_project/VirtualMedia/Stats',
     ],
+    install: should_generate_cpp,
+    install_dir: [
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+        false,
+        get_option('includedir') / sdbusplus_current_path,
+        get_option('includedir') / sdbusplus_current_path,
+    ],
+    build_by_default: should_generate_cpp,
 )
 
diff --git a/gen/xyz/openbmc_project/VirtualMedia/meson.build b/gen/xyz/openbmc_project/VirtualMedia/meson.build
index 5f17cb9..be8a014 100644
--- a/gen/xyz/openbmc_project/VirtualMedia/meson.build
+++ b/gen/xyz/openbmc_project/VirtualMedia/meson.build
@@ -1,6 +1,13 @@
 # Generated file; do not modify.
 subdir('Legacy')
-generated_others += custom_target(
+subdir('MountPoint')
+subdir('Process')
+subdir('Proxy')
+subdir('Stats')
+
+sdbusplus_current_path = 'xyz/openbmc_project/VirtualMedia'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/VirtualMedia/Legacy__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/VirtualMedia/Legacy.interface.yaml',  ],
     output: [ 'Legacy.md' ],
@@ -12,10 +19,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/VirtualMedia/Legacy',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('MountPoint')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/VirtualMedia/MountPoint__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/VirtualMedia/MountPoint.interface.yaml',  ],
     output: [ 'MountPoint.md' ],
@@ -27,10 +36,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/VirtualMedia/MountPoint',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Process')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/VirtualMedia/Process__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/VirtualMedia/Process.interface.yaml',  ],
     output: [ 'Process.md' ],
@@ -42,10 +53,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/VirtualMedia/Process',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Proxy')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/VirtualMedia/Proxy__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/VirtualMedia/Proxy.interface.yaml',  ],
     output: [ 'Proxy.md' ],
@@ -57,10 +70,12 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/VirtualMedia/Proxy',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Stats')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/VirtualMedia/Stats__markdown'.underscorify(),
     input: [ '../../../../yaml/xyz/openbmc_project/VirtualMedia/Stats.interface.yaml',  ],
     output: [ 'Stats.md' ],
@@ -72,5 +87,8 @@
         '--directory', meson.current_source_dir() / '../../../../yaml',
         'xyz/openbmc_project/VirtualMedia/Stats',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
diff --git a/gen/xyz/openbmc_project/meson.build b/gen/xyz/openbmc_project/meson.build
index 4bdf294..094d425 100644
--- a/gen/xyz/openbmc_project/meson.build
+++ b/gen/xyz/openbmc_project/meson.build
@@ -1,6 +1,44 @@
 # Generated file; do not modify.
 subdir('Association')
-generated_others += custom_target(
+subdir('Attestation')
+subdir('BIOSConfig')
+subdir('Certs')
+subdir('Channel')
+subdir('Chassis')
+subdir('Collection')
+subdir('Common')
+subdir('Condition')
+subdir('Console')
+subdir('Control')
+subdir('Debug')
+subdir('Dump')
+subdir('HardwareIsolation')
+subdir('Inventory')
+subdir('Ipmi')
+subdir('Led')
+subdir('Logging')
+subdir('MCTP')
+subdir('Memory')
+subdir('Metric')
+subdir('Network')
+subdir('Nvme')
+subdir('Object')
+subdir('ObjectMapper')
+subdir('PFR')
+subdir('PLDM')
+subdir('ScheduledTime')
+subdir('Sensor')
+subdir('Smbios')
+subdir('Software')
+subdir('State')
+subdir('Telemetry')
+subdir('Time')
+subdir('User')
+subdir('VirtualMedia')
+
+sdbusplus_current_path = 'xyz/openbmc_project'
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/Association__markdown'.underscorify(),
     input: [ '../../../yaml/xyz/openbmc_project/Association.interface.yaml',  ],
     output: [ 'Association.md' ],
@@ -12,12 +50,12 @@
         '--directory', meson.current_source_dir() / '../../../yaml',
         'xyz/openbmc_project/Association',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Attestation')
-subdir('BIOSConfig')
-subdir('Certs')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Certs__markdown'.underscorify(),
     input: [ '../../../yaml/xyz/openbmc_project/Certs.errors.yaml',  ],
     output: [ 'Certs.md' ],
@@ -29,13 +67,12 @@
         '--directory', meson.current_source_dir() / '../../../yaml',
         'xyz/openbmc_project/Certs',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Channel')
-subdir('Chassis')
-subdir('Collection')
-subdir('Common')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Common__markdown'.underscorify(),
     input: [ '../../../yaml/xyz/openbmc_project/Common.errors.yaml',  ],
     output: [ 'Common.md' ],
@@ -47,15 +84,12 @@
         '--directory', meson.current_source_dir() / '../../../yaml',
         'xyz/openbmc_project/Common',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Condition')
-subdir('Console')
-subdir('Control')
-subdir('Debug')
-subdir('Dump')
-subdir('HardwareIsolation')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/HardwareIsolation__markdown'.underscorify(),
     input: [ '../../../yaml/xyz/openbmc_project/HardwareIsolation.errors.yaml',  ],
     output: [ 'HardwareIsolation.md' ],
@@ -67,10 +101,12 @@
         '--directory', meson.current_source_dir() / '../../../yaml',
         'xyz/openbmc_project/HardwareIsolation',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Inventory')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Inventory__markdown'.underscorify(),
     input: [ '../../../yaml/xyz/openbmc_project/Inventory.errors.yaml',  ],
     output: [ 'Inventory.md' ],
@@ -82,12 +118,12 @@
         '--directory', meson.current_source_dir() / '../../../yaml',
         'xyz/openbmc_project/Inventory',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Ipmi')
-subdir('Led')
-subdir('Logging')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Logging__markdown'.underscorify(),
     input: [ '../../../yaml/xyz/openbmc_project/Logging.events.yaml',  ],
     output: [ 'Logging.md' ],
@@ -99,16 +135,29 @@
         '--directory', meson.current_source_dir() / '../../../yaml',
         'xyz/openbmc_project/Logging',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('MCTP')
-subdir('Memory')
-subdir('Metric')
-subdir('Network')
-subdir('Nvme')
-subdir('Object')
-subdir('ObjectMapper')
-generated_others += custom_target(
+generated_registry += custom_target(
+    'xyz/openbmc_project/Logging__registry'.underscorify(),
+    input: [ '../../../yaml/xyz/openbmc_project/Logging.events.yaml',  ],
+    output: [ 'Logging.json' ],
+    depend_files: sdbusplusplus_depfiles,
+    command: [
+        sdbuspp_gen_meson_prog, '--command', 'registry',
+        '--output', meson.current_build_dir(),
+        '--tool', sdbusplusplus_prog,
+        '--directory', meson.current_source_dir() / '../../../yaml',
+        'xyz/openbmc_project/Logging',
+    ],
+    install: should_generate_registry,
+    install_dir: [inst_registry_dir / sdbusplus_current_path],
+    build_by_default: should_generate_registry,
+)
+
+generated_markdown += custom_target(
     'xyz/openbmc_project/ObjectMapper__markdown'.underscorify(),
     input: [ '../../../yaml/xyz/openbmc_project/ObjectMapper.interface.yaml',  ],
     output: [ 'ObjectMapper.md' ],
@@ -120,12 +169,12 @@
         '--directory', meson.current_source_dir() / '../../../yaml',
         'xyz/openbmc_project/ObjectMapper',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('PFR')
-subdir('PLDM')
-subdir('ScheduledTime')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/ScheduledTime__markdown'.underscorify(),
     input: [ '../../../yaml/xyz/openbmc_project/ScheduledTime.errors.yaml',  ],
     output: [ 'ScheduledTime.md' ],
@@ -137,15 +186,12 @@
         '--directory', meson.current_source_dir() / '../../../yaml',
         'xyz/openbmc_project/ScheduledTime',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('Sensor')
-subdir('Smbios')
-subdir('Software')
-subdir('State')
-subdir('Telemetry')
-subdir('Time')
-generated_others += custom_target(
+generated_markdown += custom_target(
     'xyz/openbmc_project/Time__markdown'.underscorify(),
     input: [ '../../../yaml/xyz/openbmc_project/Time.errors.yaml',  ],
     output: [ 'Time.md' ],
@@ -157,7 +203,8 @@
         '--directory', meson.current_source_dir() / '../../../yaml',
         'xyz/openbmc_project/Time',
     ],
+    install: should_generate_markdown,
+    install_dir: [inst_markdown_dir / sdbusplus_current_path],
+    build_by_default: should_generate_markdown,
 )
 
-subdir('User')
-subdir('VirtualMedia')