meson: Provide sdbusplus env for gen* custom targets

Currently local meson build fails with the following errors:
"""
[345/756] Generating generated.cpp with a custom command
FAILED: generated.cpp
...
   import sdbusplus.property
ModuleNotFoundError: No module named 'sdbusplus'

[346/756] Generating gen_serialization.hpp with a custom command
FAILED: gen_serialization.hpp
...
   import sdbusplus.property
ModuleNotFoundError: No module named 'sdbusplus'
"""
This is happening because 'pimgen.py' script used in gen* custom
targets refers to python modules from the external 'sdbusplus' project.
Therefore in case of a local build it is necessary to provide search
path to the relevant sdbusplus subproject folder. Fix this with the
help of 'PYTHONPATH' environment variable.

Tested:
Local meson build no longer fails with the 'ModuleNotFoundError's.

Change-Id: Ic65c30cacc516a083dfa44a4b5736e2efbacf617
Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
diff --git a/meson.build b/meson.build
index 1e4516b..9d76519 100644
--- a/meson.build
+++ b/meson.build
@@ -41,7 +41,7 @@
     cereal_dep = cereal_proj.dependency('cereal')
 endif
 
-sdbusplus_dep = dependency('sdbusplus')
+sdbusplus_dep = dependency('sdbusplus', required : false)
 phosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces')
 phosphor_logging_dep = dependency('phosphor-logging')
 
@@ -63,6 +63,13 @@
     ifacesdir = phosphor_dbus_interfaces_dep.get_variable('yamldir')
 endif
 
+sdbusplus_python_env = {}
+if not sdbusplus_dep.found()
+    sdbusplus_proj = subproject('sdbusplus')
+    sdbusplus_dep = sdbusplus_proj.get_variable('sdbusplus_dep')
+    sdbusplus_python_env = {'PYTHONPATH': meson.current_source_dir() / 'subprojects' / 'sdbusplus' / 'tools'}
+endif
+
 generated_cpp = custom_target(
     'generated.cpp',
     command : [
@@ -74,6 +81,7 @@
         '-b', conf_data.get_unquoted('BUSNAME'),
         'generate-cpp'
     ],
+    env: sdbusplus_python_env,
     output : 'generated.cpp')
 
 gen_serialization_hpp = custom_target(
@@ -87,6 +95,7 @@
         '-b', conf_data.get_unquoted('BUSNAME'),
         'generate-serialization'
     ],
+    env: sdbusplus_python_env,
     output : 'gen_serialization.hpp')
 
 sources += [