Update meson and subprojects

Few changes related to meson:
- GTest and boost were updated.
- Boost is now built locally in case it is not installed on system.
- Minor meson.build refactor.

Testing done:
- local build is working fine, when subprojects are not installed on the
  system,
- local build is working fine, when subprojects are installed on the
  system,
- yocto build is working fine.

Signed-off-by: Szymon Dompke <szymon.dompke@intel.com>
Change-Id: Ib62092946d6ffafb1884d1ba3eab97bed243dd12
diff --git a/meson.build b/meson.build
index 993f100..5e4fa20 100644
--- a/meson.build
+++ b/meson.build
@@ -5,9 +5,6 @@
     default_options: [
         'buildtype=debugoptimized',
         'cpp_std=c++20',
-        # TODO: Without RTTI telemetry does not build using Boost 1.74.0
-        # https://github.com/chriskohlhoff/asio/issues/533
-        #'cpp_rtti=false',
         'warning_level=3',
         'werror=true',
         'b_lto=true',
@@ -15,40 +12,31 @@
     license: 'Apache-2.0',
 )
 
-summary({'Fast build with link-time optimizer disabled':
-            not get_option('b_lto')}, section: 'General')
-
-cpp = meson.get_compiler('cpp')
+cxx = meson.get_compiler('cpp')
 add_project_arguments(
-    cpp.get_supported_arguments([
+    cxx.get_supported_arguments([
         '-DBOOST_ASIO_DISABLE_THREADS',
         '-DBOOST_ALL_NO_LIB',
         '-DBOOST_SYSTEM_NO_DEPRECATED',
         '-DBOOST_ASIO_NO_DEPRECATED',
         '-DBOOST_NO_RTTI',
         '-DBOOST_NO_TYPEID',
-        # TODO: Removed below arg after upgrade to Boost 1.75
-        '-DBOOST_ALLOW_DEPRECATED_HEADERS',
         '-Wno-unused-parameter',
     ]),
     language: 'cpp'
 )
 
-boost = dependency(
-    'boost',
-    version: '>=1.74.0',
-    required: false,
-    modules: ['coroutine'])
-assert(boost.found(),
-       'Missing Boost 1.74.0 or higher, as WA you can set BOOST_ROOT ' +
-       'environemt to point at boost build. To build a boost you can use ' +
-       'script ./scripts/boost_build_1.74.0.sh')
+boost_version = '>=1.79.0'
+boost_modules = ['coroutine', 'context']
+boost = dependency('boost',
+    version: boost_version, 
+    modules: boost_modules)
 
 phosphor_logging = dependency('phosphor-logging')
 sdbusplus = dependency('sdbusplus')
 systemd = dependency('systemd')
 
-if cpp.has_header('nlohmann/json.hpp')
+if cxx.has_header('nlohmann/json.hpp')
     nlohmann_json = declare_dependency()
 else
     nlohmann_json = dependency('nlohmann_json')