+#===========================================================================================================
+build_flag (WITH_WL_EXAMPLE "Build examples for GLES/Wayland based platforms" OFF)
+#===========================================================================================================
+if (WITH_WL_EXAMPLE)
+ add_subdirectory_once (LayerManagerUtils)
+ add_subdirectory_once (LayerManagerClient/ilmClient)
+ add_subdirectory_once (LayerManagerExamples/EGLWLApplicationExample)
+ add_subdirectory_once (LayerManagerExamples/EGLWLMockNavigation)
+ add_subdirectory_once (LayerManagerExamples/WLChromakeyExample)
+ add_subdirectory_once (LayerManagerExamples/EGLWLInputEventExample)
+endif(WITH_WL_EXAMPLE)
+
+#===========================================================================================================
+build_flag (WITH_CONTROL_BIN "Build LayerManagerControl binary" ON)
+#===========================================================================================================
+if (WITH_CONTROL_BIN)
+ add_subdirectory_once (LayerManagerUtils)
+ add_subdirectory_once (LayerManagerClient/ilmClient)
+ add_subdirectory_once (LayerManagerClient/ilmControl)
+ add_subdirectory_once (LayerManagerControl)
+endif(WITH_CONTROL_BIN)
+
+#===========================================================================================================
+build_flag (WITH_EXAMPLE_SCENE_PROVIDER "Build scene provider plugin to run example applications" OFF)
+#===========================================================================================================
+if (WITH_EXAMPLE_SCENE_PROVIDER)
+ add_subdirectory_once (LayerManagerCommands)
+ add_subdirectory_once (LayerManagerBase)
+ add_subdirectory_once (LayerManagerPlugins/SceneProvider/ExampleSceneProvider)
+endif(WITH_EXAMPLE_SCENE_PROVIDER)
+
+#===========================================================================================================
+build_flag (WITH_SYSTEMD_HEALTH_MONITOR "Build plugin for systemd based health monitoring" OFF)
+#===========================================================================================================
+if (WITH_SYSTEMD_HEALTH_MONITOR)
+ add_subdirectory_once (3rdParty/systemd)
+ add_subdirectory_once (LayerManagerUtils)
+ add_subdirectory_once (LayerManagerBase)
+ add_subdirectory_once (LayerManagerPlugins/HealthMonitor/SystemdHealthMonitor)
+endif(WITH_SYSTEMD_HEALTH_MONITOR)
+
+#===========================================================================================================
+build_flag (WITH_GENERIC_COMMUNICATOR "Build Generic Communicator Plugin based on IpcModules" ON)
+#===========================================================================================================
+if (WITH_GENERIC_COMMUNICATOR)
+ add_subdirectory_once (LayerManagerUtils)
+ add_subdirectory_once (LayerManagerBase)
+ add_subdirectory_once (LayerManagerPlugins/IpcModules)
+ add_subdirectory_once (LayerManagerCommands)
+ add_subdirectory_once (LayerManagerPlugins/Communicators/GenericCommunicator)
+endif(WITH_GENERIC_COMMUNICATOR)
+
+#===========================================================================================================
+build_flag (WITH_DESKTOP "Build renderer plugin for OpenGL/X11 based platforms" OFF)
+#===========================================================================================================
+if (WITH_DESKTOP)
+ add_subdirectory_once (LayerManagerPlugins/Renderers/GraphicLib/LayerManagerGraphicGLX)
+ add_subdirectory_once (LayerManagerPlugins/Renderers/Platform/GLXRenderer)
+endif(WITH_DESKTOP)
+
+#===========================================================================================================
+build_flag (WITH_GLX_LIB "Build development library for OpenGL/X11 based renderers" OFF)
+#===========================================================================================================
+if (WITH_GLX_LIB)
+ add_subdirectory_once (LayerManagerPlugins/Renderers/Graphic)
+ add_subdirectory_once (LayerManagerPlugins/Renderers/GraphicLib/LayerManagerGraphicGLX)
+endif(WITH_GLX_LIB)
+
+#===========================================================================================================
+build_flag (WITH_WAYLAND_X11 "Build renderer plugin for GLES/Wayland with X11 backend" OFF)
+#===========================================================================================================
+if (WITH_WAYLAND_X11)
+ add_subdirectory_once (LayerManagerUtils)
+ add_subdirectory_once (LayerManagerBase)
+ add_subdirectory_once (LayerManagerPlugins/Renderers/GraphicLib/LayerManagerGraphicWaylandX11GLESv2)
+ add_subdirectory_once (LayerManagerPlugins/Renderers/Platform/WaylandGLESRenderer)
+ add_subdirectory_once (LayerManagerPlugins/Renderers/Platform/WaylandX11GLESRenderer)
+endif(WITH_WAYLAND_X11)
+
+#===========================================================================================================
+build_flag (WITH_WAYLAND_X11_LIB "Build development library for GLES/Wayland X11 based renderers" OFF)
+#===========================================================================================================
+if (WITH_WAYLAND_X11_LIB)
+ add_subdirectory_once (LayerManagerPlugins/Renderers/Graphic)
+ add_subdirectory_once (LayerManagerPlugins/Renderers/GraphicLib/LayerManagerGraphicWaylandX11GLESv2)
+endif(WITH_WAYLAND_X11_LIB)
+
+#===========================================================================================================
+build_flag (WITH_WAYLAND_DRM "Build renderer plugin for GLES/Wayland with DRM backend" OFF)
+#===========================================================================================================
+if (WITH_WAYLAND_DRM)
+ add_subdirectory_once (LayerManagerUtils)
+ add_subdirectory_once (LayerManagerBase)
+ add_subdirectory_once (LayerManagerPlugins/Renderers/GraphicLib/LayerManagerGraphicWaylandDrmGLESv2)
+ add_subdirectory_once (LayerManagerPlugins/Renderers/Platform/WaylandGLESRenderer)
+ add_subdirectory_once (LayerManagerPlugins/Renderers/Platform/WaylandDrmGLESRenderer)
+endif(WITH_WAYLAND_DRM)
+
+#===========================================================================================================
+build_flag (WITH_WAYLAND_DRM_LIB "Build development library for GLES/Wayland DRM based renderers" OFF)
+#===========================================================================================================
+if (WITH_WAYLAND_DRM_LIB)
+ add_subdirectory_once (LayerManagerPlugins/Renderers/Graphic)
+ add_subdirectory_once (LayerManagerPlugins/Renderers/GraphicLib/LayerManagerGraphicWaylandDrmGLESv2)
+endif(WITH_WAYLAND_DRM_LIB)
+
+#===========================================================================================================
+build_flag (WITH_WAYLAND_FBDEV "Build renderer plugin for GLES/Wayland with FBDEV backend" OFF)
+#===========================================================================================================
+if (WITH_WAYLAND_FBDEV)
+ add_subdirectory_once (LayerManagerUtils)
+ add_subdirectory_once (LayerManagerBase)
+ add_subdirectory_once (LayerManagerPlugins/Renderers/GraphicLib/LayerManagerGraphicWaylandFbdevGLESv2)
+ add_subdirectory_once (LayerManagerPlugins/Renderers/Platform/WaylandGLESRenderer)
+ add_subdirectory_once (LayerManagerPlugins/Renderers/Platform/WaylandFbdevGLESRenderer)
+endif(WITH_WAYLAND_FBDEV)
+
+#===========================================================================================================
+build_flag (WITH_WAYLAND_FBDEV_LIB "Build development library for GLES/Wayland FBDEV based renderers" OFF)
+#===========================================================================================================
+if (WITH_WAYLAND_FBDEV_LIB)
+ add_subdirectory_once (LayerManagerPlugins/Renderers/Graphic)
+ add_subdirectory_once (LayerManagerPlugins/Renderers/GraphicLib/LayerManagerGraphicWaylandFbdevGLESv2)
+endif(WITH_WAYLAND_FBDEV_LIB)
+
+#===========================================================================================================
+build_flag (WITH_X11_GLES "Build renderer plugin for GLES/X11 based platforms" ON)
+#===========================================================================================================
+if (WITH_X11_GLES)
+ add_subdirectory_once (LayerManagerPlugins/Renderers/GraphicLib/LayerManagerGraphicGLESv2)
+ add_subdirectory_once (LayerManagerPlugins/Renderers/Platform/X11GLESRenderer)
+endif(WITH_X11_GLES)
+
+#===========================================================================================================
+build_flag (WITH_GLESv2_LIB "Build development library for GLES/X11 based renderers" OFF)
+#===========================================================================================================
+if (WITH_GLESv2_LIB)
+ add_subdirectory_once (LayerManagerPlugins/Renderers/Graphic)
+ add_subdirectory_once (LayerManagerPlugins/Renderers/GraphicLib/LayerManagerGraphicGLESv2)
+endif(WITH_GLESv2_LIB)
+
+#===========================================================================================================
+build_flag (WITH_TEXT_RENDERER "Build renderer plugin with pure logging (no rendering)" OFF)
+#===========================================================================================================
+if (WITH_TEXT_RENDERER)
+ add_subdirectory_once (LayerManagerPlugins/Renderers/Platform/TextRenderer)
+endif(WITH_TEXT_RENDERER)
+
+#===========================================================================================================
+build_flag (WITH_SERVICE_BIN "Build LayerManagerService binary" ON)
+#===========================================================================================================
+if (WITH_SERVICE_BIN)
+ add_subdirectory_once (LayerManagerUtils)
+ add_subdirectory_once (LayerManagerBase)
+ add_subdirectory_once (LayerManagerService)
+endif (WITH_SERVICE_BIN)
+
+#===========================================================================================================
+build_flag (WITH_CLIENT_LIB "Build LayerManagement client library" ON)
+#===========================================================================================================
+if (WITH_CLIENT_LIB)
+ add_subdirectory_once (LayerManagerUtils)
+ add_subdirectory_once (LayerManagerPlugins/IpcModules)
+ add_subdirectory_once (LayerManagerClient/ilmCommon)
+ add_subdirectory_once (LayerManagerClient/ilmClient)
+endif (WITH_CLIENT_LIB)