Mir

Merge lp:~mir-team/mir/yakkety-0.26 into lp:mir/yakkety

Proposed by Michał Sawicz on 2017-06-05
Status: Merged
Approved by: Alan Griffiths on 2017-06-06
Approved revision: 1292
Merged at revision: 1292
Proposed branch: lp:~mir-team/mir/yakkety-0.26
Merge into: lp:mir/yakkety
Diff against target: 117184 lines (+48917/-25886)
1196 files modified
.bzrignore (+3/-0)
3rd_party/android-input/android/frameworks/base/include/androidfw/GenericKeyMap.h (+0/-36)
CMakeLists.txt (+23/-12)
benchmarks/frame-uniformity/CMakeLists.txt (+2/-0)
benchmarks/frame-uniformity/touch_measuring_client.cpp (+17/-17)
benchmarks/touch_event_latency.py (+2/-6)
cmake/FindGtestGmock.cmake (+36/-11)
cmake/LinuxCrossCompile.cmake (+11/-11)
cmake/MirCommon.cmake (+1/-19)
cross-compile-chroot.sh (+13/-7)
debian/changelog (+359/-0)
debian/control (+67/-19)
debian/copyright (+1/-1)
debian/libmirclient-dev.install (+2/-0)
debian/libmircommon7.install (+1/-1)
debian/libmircore-dev.install (+3/-0)
debian/libmircore1.install (+1/-0)
debian/libmirplatform15.install (+1/-1)
debian/libmirrenderer-dev.install (+2/-0)
debian/libmirserver43.install (+1/-1)
debian/mir-platform-graphics-android12.install (+1/-1)
debian/mir-platform-graphics-mesa-kms12.install (+1/-1)
debian/mir-platform-graphics-mesa-x12.install (+1/-1)
debian/mir-platform-input-evdev6.install (+1/-1)
debian/mir-utils.install (+0/-1)
debian/rules (+5/-0)
doc/Doxyfile.in (+1502/-965)
doc/abi_compatibility_tools.md (+1/-1)
doc/building_source_for_arm.md (+3/-3)
doc/building_source_for_pc.md (+1/-1)
doc/component_reports.md (+1/-0)
doc/demo_server_controls.md (+7/-7)
doc/footer.html.in (+1/-1)
doc/mainpage.md (+3/-5)
doc/measuring_latency.md (+28/-0)
doc/setup_vmware_for_mir.md (+1/-1)
examples/CMakeLists.txt (+7/-0)
examples/animated_cursor_demo_client.c (+5/-5)
examples/basic.c (+26/-55)
examples/camera.c (+48/-19)
examples/client_helpers.cpp (+21/-20)
examples/client_helpers.h (+10/-10)
examples/client_touch_validator.cpp (+6/-6)
examples/cursors_demo_client.c (+8/-10)
examples/demo_client_display_config.c (+93/-132)
examples/eglapp.c (+280/-225)
examples/eglapp.h (+19/-7)
examples/eglcounter.cpp (+2/-2)
examples/eglflash.c (+2/-2)
examples/eglplasma.c (+2/-2)
examples/eglsquare.cpp (+15/-15)
examples/eglstateswitcher.c (+39/-39)
examples/egltriangle.c (+2/-2)
examples/fingerpaint.c (+44/-58)
examples/flicker.c (+18/-18)
examples/input_shapes.cpp (+6/-6)
examples/multi_stream.cpp (+21/-14)
examples/multiwin.c (+20/-20)
examples/pointer_confinement.c (+276/-0)
examples/progressbar.c (+15/-16)
examples/prompt_session.c (+46/-26)
examples/release_at_exit.c (+9/-28)
examples/render_surfaces.cpp (+22/-13)
examples/scroll.cpp (+2/-2)
examples/server_example_adorning_compositor.cpp (+1/-1)
examples/server_example_basic_window_manager.cpp (+3/-3)
examples/server_example_basic_window_manager.h (+2/-2)
examples/server_example_canonical_window_manager.cpp (+48/-44)
examples/server_example_canonical_window_manager.h (+2/-2)
examples/server_example_input_device_config.cpp (+15/-18)
examples/server_example_window_management.cpp (+1/-1)
examples/server_example_window_management_info.cpp (+47/-89)
examples/server_example_window_management_info.h (+4/-5)
examples/target.c (+8/-14)
examples/tooltip.c (+32/-31)
include/client/mir/event_printer.h (+19/-8)
include/client/mir/events/event_builders.h (+30/-17)
include/client/mir_toolkit/client_types.h (+155/-75)
include/client/mir_toolkit/cursors.h (+4/-2)
include/client/mir_toolkit/debug/surface.h (+27/-14)
include/client/mir_toolkit/events/event.h (+117/-36)
include/client/mir_toolkit/events/input/input_event.h (+12/-11)
include/client/mir_toolkit/events/input/keyboard_event.h (+3/-1)
include/client/mir_toolkit/events/input/pointer_event.h (+5/-2)
include/client/mir_toolkit/events/input/touch_event.h (+9/-3)
include/client/mir_toolkit/events/input_configuration_event.h (+12/-4)
include/client/mir_toolkit/events/input_device_state_event.h (+9/-8)
include/client/mir_toolkit/events/keymap_event.h (+2/-3)
include/client/mir_toolkit/events/prompt_session_event.h (+1/-1)
include/client/mir_toolkit/events/surface_event.h (+11/-4)
include/client/mir_toolkit/events/surface_output_event.h (+26/-4)
include/client/mir_toolkit/events/surface_placement.h (+49/-0)
include/client/mir_toolkit/events/window_event.h (+53/-0)
include/client/mir_toolkit/events/window_output_event.h (+83/-0)
include/client/mir_toolkit/events/window_placement.h (+46/-0)
include/client/mir_toolkit/extensions/android_buffer.h (+72/-0)
include/client/mir_toolkit/extensions/android_egl.h (+65/-0)
include/client/mir_toolkit/extensions/fenced_buffers.h (+104/-0)
include/client/mir_toolkit/extensions/gbm_buffer.h (+161/-0)
include/client/mir_toolkit/extensions/graphics_module.h (+55/-0)
include/client/mir_toolkit/extensions/mesa_drm_auth.h (+68/-0)
include/client/mir_toolkit/extensions/set_gbm_device.h (+53/-0)
include/client/mir_toolkit/extensions/window_coordinate_translation.h (+63/-0)
include/client/mir_toolkit/mir_blob.h (+23/-2)
include/client/mir_toolkit/mir_buffer.h (+47/-104)
include/client/mir_toolkit/mir_buffer_stream.h (+69/-20)
include/client/mir_toolkit/mir_client_library.h (+6/-0)
include/client/mir_toolkit/mir_connection.h (+83/-22)
include/client/mir_toolkit/mir_cookie.h (+7/-6)
include/client/mir_toolkit/mir_cursor_configuration.h (+7/-2)
include/client/mir_toolkit/mir_display_configuration.h (+153/-2)
include/client/mir_toolkit/mir_extension_core.h (+49/-0)
include/client/mir_toolkit/mir_input_device.h (+329/-58)
include/client/mir_toolkit/mir_persistent_id.h (+80/-0)
include/client/mir_toolkit/mir_platform_message.h (+8/-0)
include/client/mir_toolkit/mir_presentation_chain.h (+11/-89)
include/client/mir_toolkit/mir_prompt_session.h (+19/-2)
include/client/mir_toolkit/mir_screencast.h (+4/-2)
include/client/mir_toolkit/mir_surface.h (+218/-731)
include/client/mir_toolkit/mir_wait.h (+8/-4)
include/client/mir_toolkit/mir_window.h (+795/-0)
include/client/mir_toolkit/mir_window_id.h (+72/-0)
include/client/mir_toolkit/rs/mir_render_surface.h (+237/-0)
include/common/mir/dispatch/dispatchable.h (+2/-2)
include/common/mir/dispatch/multiplexing_dispatchable.h (+3/-2)
include/common/mir/events/contact_state.h (+58/-0)
include/common/mir/events/input_device_state.h (+41/-0)
include/common/mir/flags.h (+6/-1)
include/common/mir/graphics/native_buffer.h (+8/-12)
include/common/mir/input/keymap.h (+6/-0)
include/common/mir/input/mir_input_config.h (+107/-0)
include/common/mir/input/mir_input_config_serialization.h (+36/-0)
include/common/mir/input/mir_keyboard_config.h (+23/-18)
include/common/mir/input/mir_pointer_config.h (+35/-30)
include/common/mir/input/mir_touchpad_config.h (+42/-30)
include/common/mir/input/mir_touchscreen_config.h (+62/-0)
include/common/mir/posix_rw_mutex.h (+69/-0)
include/common/mir/time/posix_timestamp.h (+129/-0)
include/cookie/mir/cookie/authority.h (+1/-1)
include/core/mir/geometry/rectangle.h (+5/-0)
include/core/mir_toolkit/common.h (+240/-11)
include/core/mir_toolkit/deprecations.h (+36/-0)
include/core/mir_toolkit/mir_input_device_types.h (+133/-0)
include/core/mir_toolkit/mir_native_buffer.h (+2/-1)
include/core/mir_toolkit/mir_version_number.h (+1/-1)
include/platform/mir/graphics/atomic_frame.h (+43/-0)
include/platform/mir/graphics/buffer.h (+0/-6)
include/platform/mir/graphics/display.h (+55/-9)
include/platform/mir/graphics/display_buffer.h (+6/-8)
include/platform/mir/graphics/display_configuration.h (+33/-16)
include/platform/mir/graphics/frame.h (+47/-0)
include/platform/mir/graphics/gamma_curves.h (+60/-0)
include/platform/mir/graphics/gl_context.h (+0/-44)
include/platform/mir/graphics/graphic_buffer_allocator.h (+18/-3)
include/platform/mir/graphics/platform.h (+16/-2)
include/platform/mir/graphics/platform_ipc_operations.h (+2/-2)
include/platform/mir/graphics/renderable.h (+1/-0)
include/platform/mir/input/event_builder.h (+8/-7)
include/platform/mir/input/platform.h (+11/-4)
include/platforms/mesa/mir_toolkit/mesa/native_display.h (+1/-1)
include/renderer/mir/renderer/renderer.h (+6/-8)
include/renderer/mir/renderer/renderer_factory.h (+5/-5)
include/renderers/gl/mir/renderer/gl/context.h (+47/-0)
include/renderers/gl/mir/renderer/gl/context_source.h (+49/-0)
include/renderers/sw/mir/renderer/sw/pixel_source.h (+57/-0)
include/server/mir/compositor/scene.h (+1/-1)
include/server/mir/executor.h (+57/-0)
include/server/mir/frontend/buffer_sink.h (+1/-1)
include/server/mir/frontend/buffer_stream.h (+1/-1)
include/server/mir/frontend/client_buffers.h (+2/-2)
include/server/mir/frontend/session.h (+20/-0)
include/server/mir/frontend/session_mediator_observer.h (+5/-7)
include/server/mir/graphics/display_configuration_observer.h (+93/-12)
include/server/mir/input/device.h (+12/-12)
include/server/mir/input/input_device_hub.h (+1/-0)
include/server/mir/input/seat_observer.h (+55/-0)
include/server/mir/main_loop.h (+6/-2)
include/server/mir/observer_registrar.h (+92/-0)
include/server/mir/scene/coordinate_translator.h (+1/-0)
include/server/mir/scene/null_surface_observer.h (+2/-1)
include/server/mir/scene/prompt_session.h (+4/-4)
include/server/mir/scene/session.h (+0/-2)
include/server/mir/scene/session_coordinator.h (+1/-1)
include/server/mir/scene/surface.h (+7/-5)
include/server/mir/scene/surface_creation_parameters.h (+10/-5)
include/server/mir/scene/surface_observer.h (+3/-1)
include/server/mir/server.h (+28/-10)
include/server/mir/server_status_listener.h (+2/-0)
include/server/mir/shell/abstract_shell.h (+6/-2)
include/server/mir/shell/display_configuration_controller.h (+8/-0)
include/server/mir/shell/shell.h (+4/-4)
include/server/mir/shell/shell_report.h (+3/-1)
include/server/mir/shell/shell_wrapper.h (+2/-2)
include/server/mir/shell/surface_specification.h (+18/-4)
include/server/mir/shell/system_compositor_window_manager.h (+1/-1)
include/server/mir/shell/window_manager.h (+1/-1)
include/test/mir/test/display_config_matchers.h (+10/-0)
include/test/mir/test/doubles/fake_display.h (+7/-3)
include/test/mir/test/doubles/mock_display_configuration.h (+4/-4)
include/test/mir/test/doubles/mock_egl.h (+5/-1)
include/test/mir/test/doubles/mock_input_device_hub.h (+2/-1)
include/test/mir/test/doubles/mock_seat_report.h (+52/-0)
include/test/mir/test/doubles/mock_window_manager.h (+1/-1)
include/test/mir/test/doubles/null_display.h (+20/-5)
include/test/mir/test/doubles/null_display_buffer.h (+1/-1)
include/test/mir/test/doubles/null_gl_context.h (+2/-2)
include/test/mir/test/doubles/stub_display_configuration.h (+22/-2)
include/test/mir/test/doubles/stub_input_device.h (+25/-25)
include/test/mir/test/doubles/stub_session.h (+9/-5)
include/test/mir/test/doubles/stub_surface.h (+5/-4)
include/test/mir/test/event_matchers.h (+62/-24)
include/test/mir/test/signal.h (+7/-0)
include/test/mir/test/validity_matchers.h (+1/-1)
include/test/mir_test_framework/any_surface.h (+3/-1)
include/test/mir_test_framework/connected_client_with_a_surface.h (+1/-1)
include/test/mir_test_framework/fake_input_device.h (+9/-5)
include/test/mir_test_framework/headless_display_buffer_compositor_factory.h (+36/-0)
include/test/mir_test_framework/headless_nested_server_runner.h (+12/-0)
include/test/mir_test_framework/headless_test.h (+1/-1)
include/test/mir_test_framework/observant_shell.h (+106/-0)
include/test/mir_test_framework/placement_applying_shell.h (+3/-0)
include/test/mir_test_framework/stub_client_platform_options.h (+48/-0)
include/test/mir_test_framework/stub_platform_extension.h (+65/-0)
include/test/mir_test_framework/stub_server_platform_factory.h (+2/-10)
include/test/mir_test_framework/using_stub_client_platform.h (+0/-41)
include/test/mir_test_framework/visible_surface.h (+5/-5)
playground/CMakeLists.txt (+22/-0)
playground/README (+3/-4)
playground/demo-shell/demo_compositor.cpp (+1/-1)
playground/demo-shell/demo_shell.cpp (+1/-1)
playground/demo-shell/typo/typo_freetype_renderer.cpp (+4/-4)
playground/demo-shell/typo/typo_freetype_renderer.h (+5/-5)
playground/demo-shell/typo/typo_glcache.cpp (+7/-7)
playground/demo-shell/typo/typo_glcache.h (+5/-5)
playground/demo-shell/typo/typo_renderer.cpp (+8/-7)
playground/demo-shell/typo/typo_renderer.h (+22/-8)
playground/demo-shell/typo/typo_stub_renderer.cpp (+3/-3)
playground/demo-shell/typo/typo_stub_renderer.h (+5/-5)
playground/demo-shell/window_manager.cpp (+8/-1)
playground/demo-shell/window_manager.h (+1/-1)
playground/diamond.c (+180/-0)
playground/diamond.h (+47/-0)
playground/egldiamond_render_surface.c (+325/-0)
playground/mir_demo_client_chain_jumping_buffers.c (+37/-21)
playground/mir_demo_client_prerendered_frames.c (+30/-16)
playground/mir_egl_platform_shim.c (+172/-0)
playground/mir_egl_platform_shim.h (+50/-0)
playground/render_surface.cpp (+249/-0)
playground/server_configuration.cpp (+15/-6)
src/CMakeLists.txt (+5/-2)
src/capnproto/CMakeLists.txt (+30/-0)
src/capnproto/mir_event.capnp (+262/-0)
src/capnproto/mir_input_config.capnp (+94/-0)
src/client/CMakeLists.txt (+20/-13)
src/client/atomic_callback.h (+3/-3)
src/client/buffer.cpp (+6/-20)
src/client/buffer.h (+5/-8)
src/client/buffer_factory.cpp (+58/-14)
src/client/buffer_factory.h (+44/-6)
src/client/buffer_stream.cpp (+228/-363)
src/client/buffer_stream.h (+40/-26)
src/client/buffer_stream_configuration.cpp (+61/-0)
src/client/buffer_stream_configuration.h (+51/-0)
src/client/buffer_vault.cpp (+38/-26)
src/client/buffer_vault.h (+3/-3)
src/client/client_buffer_depository.cpp (+0/-92)
src/client/client_buffer_depository.h (+0/-78)
src/client/connection_configuration.h (+2/-0)
src/client/connection_surface_map.cpp (+50/-40)
src/client/connection_surface_map.h (+18/-8)
src/client/cursor_configuration.h (+3/-10)
src/client/default_connection_configuration.cpp (+13/-2)
src/client/default_connection_configuration.h (+2/-0)
src/client/display_configuration.h (+6/-0)
src/client/display_configuration_api.cpp (+194/-122)
src/client/error_buffer.cpp (+3/-6)
src/client/error_buffer.h (+5/-8)
src/client/error_chain.cpp (+10/-0)
src/client/error_chain.h (+2/-0)
src/client/error_handler.h (+35/-0)
src/client/error_render_surface.cpp (+73/-0)
src/client/error_render_surface.h (+54/-0)
src/client/error_stream.cpp (+41/-16)
src/client/error_stream.h (+31/-22)
src/client/event.cpp (+213/-124)
src/client/event_printer.cpp (+126/-37)
src/client/events/event_builders.cpp (+121/-136)
src/client/frame_clock.cpp (+156/-0)
src/client/frame_clock.h (+73/-0)
src/client/handle_event_exception.h (+30/-0)
src/client/input/CMakeLists.txt (+1/-0)
src/client/input/android/android_input_receiver.cpp (+26/-87)
src/client/input/android/android_input_receiver.h (+3/-12)
src/client/input/android/event_conversion_helpers.cpp (+4/-11)
src/client/input/input_devices.cpp (+5/-4)
src/client/input/input_event.cpp (+155/-230)
src/client/input/xkb_mapper.cpp (+153/-29)
src/client/mir_blob.cpp (+32/-0)
src/client/mir_buffer_api.cpp (+109/-103)
src/client/mir_buffer_stream_api.cpp (+94/-31)
src/client/mir_connection.cpp (+426/-227)
src/client/mir_connection.h (+110/-52)
src/client/mir_connection_api.cpp (+117/-120)
src/client/mir_connection_api.h (+0/-63)
src/client/mir_cookie.cpp (+10/-9)
src/client/mir_cookie.h (+6/-4)
src/client/mir_cursor_api.cpp (+18/-19)
src/client/mir_debug_api.cpp (+24/-9)
src/client/mir_extension_core.cpp (+38/-0)
src/client/mir_input_device_api.cpp (+207/-114)
src/client/mir_platform_message_api.cpp (+1/-10)
src/client/mir_presentation_chain.h (+5/-1)
src/client/mir_presentation_chain_api.cpp (+44/-57)
src/client/mir_prompt_session.cpp (+10/-9)
src/client/mir_prompt_session.h (+9/-8)
src/client/mir_prompt_session_api.cpp (+32/-6)
src/client/mir_render_surface_api.cpp (+252/-0)
src/client/mir_screencast.cpp (+17/-8)
src/client/mir_screencast.h (+7/-8)
src/client/mir_screencast_api.cpp (+1/-1)
src/client/mir_surface.cpp (+198/-42)
src/client/mir_surface.h (+63/-36)
src/client/mir_surface_api.cpp (+1058/-502)
src/client/mirclient.pc.in (+4/-5)
src/client/no_tls_future-inl.h (+373/-73)
src/client/presentation_chain.cpp (+14/-1)
src/client/presentation_chain.h (+6/-0)
src/client/probing_client_platform_factory.cpp (+5/-3)
src/client/probing_client_platform_factory.h (+3/-1)
src/client/render_surface.cpp (+118/-0)
src/client/render_surface.h (+79/-0)
src/client/rpc/CMakeLists.txt (+2/-2)
src/client/rpc/make_rpc_channel.h (+2/-0)
src/client/rpc/make_socket_rpc_channel.cpp (+3/-1)
src/client/rpc/mir_basic_rpc_channel.cpp (+23/-8)
src/client/rpc/mir_basic_rpc_channel.h (+8/-0)
src/client/rpc/mir_display_server.cpp (+23/-9)
src/client/rpc/mir_display_server.h (+14/-6)
src/client/rpc/mir_protobuf_rpc_channel.cpp (+64/-40)
src/client/rpc/mir_protobuf_rpc_channel.h (+6/-0)
src/client/screencast_stream.cpp (+46/-15)
src/client/screencast_stream.h (+16/-9)
src/client/surface_map.h (+4/-8)
src/client/symbols.map (+208/-23)
src/client/version.h.in (+19/-35)
src/common/CMakeLists.txt (+26/-8)
src/common/dispatch/multiplexing_dispatchable.cpp (+8/-78)
src/common/edid.cpp (+67/-0)
src/common/events/CMakeLists.txt (+7/-2)
src/common/events/close_surface_event.cpp (+7/-4)
src/common/events/event.cpp (+82/-119)
src/common/events/input_configuration_event.cpp (+9/-8)
src/common/events/input_device_state_event.cpp (+31/-128)
src/common/events/input_event.cpp (+94/-13)
src/common/events/keyboard_event.cpp (+13/-60)
src/common/events/keymap_event.cpp (+11/-113)
src/common/events/orientation_event.cpp (+6/-6)
src/common/events/pointer_event.cpp (+134/-0)
src/common/events/prompt_session_event.cpp (+4/-4)
src/common/events/resize_event.cpp (+8/-8)
src/common/events/surface_event.cpp (+19/-16)
src/common/events/surface_output_event.cpp (+25/-12)
src/common/events/surface_placement_event.cpp (+58/-0)
src/common/events/touch_event.cpp (+184/-320)
src/common/fatal/CMakeLists.txt (+0/-3)
src/common/geometry/CMakeLists.txt (+0/-27)
src/common/input/mir_input_config.cpp (+308/-0)
src/common/input/mir_input_config_serialization.cpp (+187/-0)
src/common/input/mir_keyboard_config.cpp (+84/-0)
src/common/input/mir_pointer_config.cpp (+150/-0)
src/common/input/mir_touchpad_config.cpp (+189/-0)
src/common/input/mir_touchscreen_config.cpp (+96/-0)
src/common/output_type_names.cpp (+53/-0)
src/common/posix_rw_mutex.cpp (+191/-0)
src/common/sharedlibrary/CMakeLists.txt (+1/-1)
src/common/symbols.map (+246/-152)
src/cookie/CMakeLists.txt (+2/-3)
src/core/CMakeLists.txt (+53/-0)
src/core/geometry/rectangle.cpp (+25/-29)
src/core/mircore.pc.in (+10/-0)
src/core/symbols.map (+51/-0)
src/include/client/mir/client_buffer.h (+7/-6)
src/include/client/mir/client_buffer_factory.h (+2/-0)
src/include/client/mir/client_context.h (+15/-1)
src/include/client/mir/client_platform.h (+9/-1)
src/include/client/mir/client_platform_factory.h (+16/-2)
src/include/client/mir/egl_native_surface.h (+5/-4)
src/include/client/mir/input/input_devices.h (+4/-18)
src/include/client/mir/input/input_platform.h (+1/-1)
src/include/client/mir/mir_buffer.h (+4/-6)
src/include/client/mir/mir_buffer_stream.h (+32/-20)
src/include/client/mir/mir_render_surface.h (+59/-0)
src/include/client/mir/platform_message.h (+32/-0)
src/include/client/mir_toolkit/client_types_nbs.h (+0/-50)
src/include/client/mir_toolkit/extensions/hardware_buffer_stream.h (+60/-0)
src/include/client/mir_toolkit/mir_buffer_private.h (+74/-0)
src/include/common/mir/events/close_surface_event.h (+0/-3)
src/include/common/mir/events/event.h (+18/-72)
src/include/common/mir/events/event_private.h (+2/-1)
src/include/common/mir/events/input_configuration_event.h (+3/-6)
src/include/common/mir/events/input_device_state_event.h (+5/-25)
src/include/common/mir/events/input_event.h (+23/-3)
src/include/common/mir/events/keyboard_event.h (+1/-28)
src/include/common/mir/events/keymap_event.h (+0/-18)
src/include/common/mir/events/orientation_event.h (+0/-4)
src/include/common/mir/events/pointer_event.h (+66/-0)
src/include/common/mir/events/prompt_session_event.h (+0/-3)
src/include/common/mir/events/resize_event.h (+0/-5)
src/include/common/mir/events/surface_event.h (+2/-7)
src/include/common/mir/events/surface_output_event.h (+3/-8)
src/include/common/mir/events/surface_placement_event.h (+36/-0)
src/include/common/mir/events/touch_event.h (+18/-98)
src/include/common/mir/graphics/edid.h (+111/-0)
src/include/common/mir/input/key_mapper.h (+0/-1)
src/include/common/mir/input/xkb_mapper.h (+21/-5)
src/include/common/mir/output_type_names.h (+26/-0)
src/include/common/mir/protobuf/display_server.h (+14/-6)
src/include/common/mir/protobuf/protocol_version.h (+2/-2)
src/include/platform/mir/graphics/buffer_ipc_message.h (+1/-1)
src/include/platform/mir/graphics/display_report.h (+2/-1)
src/include/platform/mir/graphics/nested_context.h (+30/-1)
src/include/platform/mir/options/configuration.h (+2/-0)
src/include/server/mir/compositor/buffer_stream.h (+1/-0)
src/include/server/mir/default_server_configuration.h (+33/-10)
src/include/server/mir/default_server_status_listener.h (+17/-9)
src/include/server/mir/display_changer.h (+1/-4)
src/include/server/mir/frontend/display_changer.h (+3/-0)
src/include/server/mir/frontend/event_sink.h (+4/-5)
src/include/server/mir/frontend/input_configuration_changer.h (+51/-0)
src/include/server/mir/frontend/screencast.h (+1/-0)
src/include/server/mir/frontend/shell.h (+2/-2)
src/include/server/mir/frontend/unsupported_feature_exception.h (+0/-41)
src/include/server/mir/glib_main_loop.h (+2/-0)
src/include/server/mir/graphics/surfaceless_egl_context.h (+2/-2)
src/include/server/mir/input/validator.h (+9/-10)
src/include/server/mir/observer_multiplexer.h (+126/-0)
src/include/server/mir/scene/legacy_scene_change_notification.h (+1/-1)
src/include/server/mir/scene/surface_event_source.h (+2/-1)
src/include/server/mir/scene/surface_observers.h (+2/-1)
src/include/server/mir/server_configuration.h (+0/-1)
src/include/server/mir/shell/basic_window_manager.h (+2/-2)
src/include/server/mir/shell/canonical_window_manager.h (+2/-2)
src/include/server/mir/shell/window_management_info.h (+4/-4)
src/platform/CMakeLists.txt (+2/-2)
src/platform/graphics/CMakeLists.txt (+3/-0)
src/platform/graphics/atomic_frame.cpp (+50/-0)
src/platform/graphics/display_configuration.cpp (+7/-30)
src/platform/graphics/gamma_curves.cpp (+60/-0)
src/platform/mirplatform.pc.in (+1/-0)
src/platform/options/default_configuration.cpp (+8/-4)
src/platform/symbols.map (+12/-12)
src/platforms/CMakeLists.txt (+5/-6)
src/platforms/android/client/CMakeLists.txt (+2/-4)
src/platforms/android/client/android_client_buffer_factory.cpp (+9/-0)
src/platforms/android/client/android_client_buffer_factory.h (+3/-0)
src/platforms/android/client/android_client_platform.cpp (+217/-12)
src/platforms/android/client/android_client_platform.h (+19/-3)
src/platforms/android/client/buffer.cpp (+26/-24)
src/platforms/android/client/buffer.h (+7/-5)
src/platforms/android/client/buffer_registrar.h (+3/-3)
src/platforms/android/client/client_platform_factory.cpp (+3/-2)
src/platforms/android/client/egl_native_surface_interpreter.cpp (+15/-8)
src/platforms/android/client/egl_native_surface_interpreter.h (+20/-1)
src/platforms/android/client/gralloc_registrar.cpp (+7/-7)
src/platforms/android/client/gralloc_registrar.h (+2/-2)
src/platforms/android/common/android_native_buffer.cpp (+39/-4)
src/platforms/android/common/mir_native_window.cpp (+13/-0)
src/platforms/android/common/syncfence.cpp (+22/-0)
src/platforms/android/include/android_driver_interpreter.h (+2/-0)
src/platforms/android/include/android_format_conversion-inl.h (+16/-0)
src/platforms/android/include/android_native_buffer.h (+5/-2)
src/platforms/android/include/fence.h (+4/-0)
src/platforms/android/include/mir_native_window.h (+2/-1)
src/platforms/android/include/native_buffer.h (+12/-7)
src/platforms/android/include/sync_fence.h (+6/-3)
src/platforms/android/server/CMakeLists.txt (+2/-3)
src/platforms/android/server/buffer.h (+7/-5)
src/platforms/android/server/device_quirks.cpp (+9/-7)
src/platforms/android/server/device_quirks.h (+2/-2)
src/platforms/android/server/display.cpp (+113/-52)
src/platforms/android/server/display.h (+21/-3)
src/platforms/android/server/display_buffer.cpp (+1/-1)
src/platforms/android/server/display_buffer.h (+1/-1)
src/platforms/android/server/display_configuration.cpp (+6/-1)
src/platforms/android/server/fb_device.cpp (+7/-3)
src/platforms/android/server/fb_device.h (+1/-1)
src/platforms/android/server/gl_context.cpp (+42/-1)
src/platforms/android/server/gl_context.h (+8/-3)
src/platforms/android/server/gralloc.h (+3/-9)
src/platforms/android/server/gralloc_module.cpp (+2/-28)
src/platforms/android/server/gralloc_module.h (+1/-5)
src/platforms/android/server/graphic_buffer_allocator.cpp (+34/-23)
src/platforms/android/server/graphic_buffer_allocator.h (+4/-2)
src/platforms/android/server/hal_component_factory.cpp (+4/-1)
src/platforms/android/server/hwc_blanking_control.cpp (+20/-7)
src/platforms/android/server/hwc_configuration.h (+6/-4)
src/platforms/android/server/hwc_device.cpp (+1/-1)
src/platforms/android/server/hwc_fallback_gl_renderer.cpp (+2/-2)
src/platforms/android/server/hwc_fallback_gl_renderer.h (+2/-3)
src/platforms/android/server/hwc_fb_device.cpp (+2/-2)
src/platforms/android/server/hwc_fb_device.h (+2/-1)
src/platforms/android/server/hwc_layers.cpp (+3/-3)
src/platforms/android/server/hwc_layers.h (+0/-1)
src/platforms/android/server/hwc_wrapper.h (+2/-2)
src/platforms/android/server/interpreter_cache.cpp (+1/-1)
src/platforms/android/server/interpreter_cache.h (+2/-2)
src/platforms/android/server/interpreter_resource_cache.h (+4/-4)
src/platforms/android/server/ipc_operations.cpp (+7/-4)
src/platforms/android/server/platform.cpp (+21/-9)
src/platforms/android/server/real_hwc_wrapper.cpp (+11/-3)
src/platforms/android/server/real_hwc_wrapper.h (+3/-3)
src/platforms/android/server/server_render_window.cpp (+6/-2)
src/platforms/android/server/server_render_window.h (+2/-1)
src/platforms/android/utils/CMakeLists.txt (+2/-1)
src/platforms/android/utils/android_graphics_region_factory.cpp (+0/-68)
src/platforms/android/utils/graphics_region_factory.h (+0/-48)
src/platforms/android/utils/render_overlays.cpp (+17/-6)
src/platforms/android/utils/test_android_hardware_sanity.cpp (+39/-23)
src/platforms/common/server/CMakeLists.txt (+4/-1)
src/platforms/common/server/kms-utils/CMakeLists.txt (+6/-2)
src/platforms/common/server/kms-utils/drm_mode_resources.cpp (+5/-0)
src/platforms/common/server/kms-utils/drm_mode_resources.h (+1/-0)
src/platforms/common/server/kms-utils/kms_connector.cpp (+2/-29)
src/platforms/common/server/shm_buffer.cpp (+1/-11)
src/platforms/common/server/shm_buffer.h (+14/-5)
src/platforms/eglstream-kms/CMakeLists.txt (+2/-0)
src/platforms/eglstream-kms/client/CMakeLists.txt (+2/-4)
src/platforms/eglstream-kms/client/client_buffer.cpp (+17/-20)
src/platforms/eglstream-kms/client/client_buffer.h (+5/-6)
src/platforms/eglstream-kms/client/client_buffer_factory.cpp (+10/-0)
src/platforms/eglstream-kms/client/client_buffer_factory.h (+4/-1)
src/platforms/eglstream-kms/client/client_platform.cpp (+25/-5)
src/platforms/eglstream-kms/client/client_platform.h (+5/-4)
src/platforms/eglstream-kms/client/client_platform_factory.cpp (+3/-1)
src/platforms/eglstream-kms/include/native_buffer.h (+39/-0)
src/platforms/eglstream-kms/server/CMakeLists.txt (+7/-4)
src/platforms/eglstream-kms/server/buffer_allocator.cpp (+18/-14)
src/platforms/eglstream-kms/server/buffer_allocator.h (+5/-0)
src/platforms/eglstream-kms/server/display.cpp (+29/-8)
src/platforms/eglstream-kms/server/display.h (+11/-3)
src/platforms/eglstream-kms/server/egl_output.cpp (+1/-3)
src/platforms/eglstream-kms/server/kms_display_configuration.cpp (+1/-1)
src/platforms/eglstream-kms/server/platform.cpp (+10/-5)
src/platforms/eglstream-kms/server/platform.h (+0/-1)
src/platforms/eglstream-kms/server/platform_symbols.cpp (+13/-24)
src/platforms/eglstream-kms/server/software_buffer.cpp (+48/-0)
src/platforms/eglstream-kms/server/software_buffer.h (+52/-0)
src/platforms/evdev/CMakeLists.txt (+2/-3)
src/platforms/evdev/libinput_device.cpp (+17/-11)
src/platforms/evdev/libinput_device.h (+1/-1)
src/platforms/mesa/CMakeLists.txt (+2/-2)
src/platforms/mesa/client/CMakeLists.txt (+3/-4)
src/platforms/mesa/client/client_buffer.cpp (+64/-24)
src/platforms/mesa/client/client_buffer.h (+11/-6)
src/platforms/mesa/client/client_buffer_factory.cpp (+12/-0)
src/platforms/mesa/client/client_buffer_factory.h (+3/-0)
src/platforms/mesa/client/client_platform.cpp (+289/-31)
src/platforms/mesa/client/client_platform.h (+15/-2)
src/platforms/mesa/client/client_platform_factory.cpp (+3/-1)
src/platforms/mesa/client/native_surface.cpp (+30/-12)
src/platforms/mesa/client/native_surface.h (+4/-3)
src/platforms/mesa/common/CMakeLists.txt (+10/-0)
src/platforms/mesa/common/gbm_format_conversions.cpp (+108/-0)
src/platforms/mesa/include/gbm_format_conversions.h (+39/-0)
src/platforms/mesa/include/native_buffer.h (+45/-0)
src/platforms/mesa/server/CMakeLists.txt (+2/-0)
src/platforms/mesa/server/buffer_allocator.cpp (+27/-59)
src/platforms/mesa/server/buffer_allocator.h (+4/-4)
src/platforms/mesa/server/display_helpers.cpp (+2/-1)
src/platforms/mesa/server/gbm_buffer.cpp (+4/-96)
src/platforms/mesa/server/gbm_buffer.h (+2/-14)
src/platforms/mesa/server/ipc_operations.cpp (+5/-2)
src/platforms/mesa/server/kms/CMakeLists.txt (+4/-4)
src/platforms/mesa/server/kms/bypass.cpp (+2/-2)
src/platforms/mesa/server/kms/cursor.cpp (+9/-0)
src/platforms/mesa/server/kms/cursor.h (+1/-0)
src/platforms/mesa/server/kms/display.cpp (+158/-114)
src/platforms/mesa/server/kms/display.h (+15/-3)
src/platforms/mesa/server/kms/display_buffer.cpp (+27/-18)
src/platforms/mesa/server/kms/display_buffer.h (+1/-1)
src/platforms/mesa/server/kms/guest_platform.cpp (+14/-30)
src/platforms/mesa/server/kms/kms_output.h (+3/-0)
src/platforms/mesa/server/kms/kms_page_flipper.cpp (+42/-16)
src/platforms/mesa/server/kms/kms_page_flipper.h (+7/-4)
src/platforms/mesa/server/kms/linux_virtual_terminal.cpp (+1/-1)
src/platforms/mesa/server/kms/nested_authentication.cpp (+22/-60)
src/platforms/mesa/server/kms/nested_authentication.h (+2/-0)
src/platforms/mesa/server/kms/page_flipper.h (+3/-2)
src/platforms/mesa/server/kms/platform_symbols.cpp (+2/-1)
src/platforms/mesa/server/kms/real_kms_display_configuration.cpp (+129/-2)
src/platforms/mesa/server/kms/real_kms_output.cpp (+50/-10)
src/platforms/mesa/server/kms/real_kms_output.h (+6/-0)
src/platforms/mesa/server/software_buffer.cpp (+48/-0)
src/platforms/mesa/server/software_buffer.h (+54/-0)
src/platforms/mesa/server/x11/CMakeLists.txt (+3/-4)
src/platforms/mesa/server/x11/graphics/CMakeLists.txt (+1/-3)
src/platforms/mesa/server/x11/graphics/display.cpp (+119/-132)
src/platforms/mesa/server/x11/graphics/display.h (+33/-52)
src/platforms/mesa/server/x11/graphics/display_buffer.cpp (+108/-19)
src/platforms/mesa/server/x11/graphics/display_buffer.h (+30/-9)
src/platforms/mesa/server/x11/graphics/display_configuration.cpp (+10/-4)
src/platforms/mesa/server/x11/graphics/display_configuration.h (+3/-0)
src/platforms/mesa/server/x11/graphics/display_group.cpp (+0/-47)
src/platforms/mesa/server/x11/graphics/display_group.h (+0/-52)
src/platforms/mesa/server/x11/graphics/egl_helper.cpp (+185/-0)
src/platforms/mesa/server/x11/graphics/egl_helper.h (+79/-0)
src/platforms/mesa/server/x11/graphics/gl_context.cpp (+0/-45)
src/platforms/mesa/server/x11/graphics/gl_context.h (+0/-52)
src/platforms/mesa/server/x11/graphics/graphics.cpp (+6/-3)
src/platforms/mesa/server/x11/graphics/platform.cpp (+6/-2)
src/platforms/mesa/server/x11/graphics/platform.h (+5/-1)
src/platforms/mesa/server/x11/input/input_device.cpp (+6/-0)
src/protobuf/CMakeLists.txt (+2/-2)
src/protobuf/mir_protobuf.proto (+72/-4)
src/protobuf/mir_protobuf_wire.proto (+1/-0)
src/protobuf/symbols.map (+67/-0)
src/renderer/CMakeLists.txt (+18/-0)
src/renderer/mirrenderer.pc.in (+10/-0)
src/renderers/gl/CMakeLists.txt (+1/-0)
src/renderers/gl/mir-renderer-gl-dev.pc.in (+1/-0)
src/renderers/gl/renderer.cpp (+70/-63)
src/renderers/gl/renderer.h (+2/-2)
src/renderers/gl/renderer_factory.cpp (+1/-3)
src/renderers/gl/renderer_factory.h (+3/-3)
src/server/CMakeLists.txt (+9/-3)
src/server/compositor/CMakeLists.txt (+0/-2)
src/server/compositor/buffer_acquisition.h (+6/-35)
src/server/compositor/buffer_map.cpp (+12/-12)
src/server/compositor/buffer_map.h (+5/-7)
src/server/compositor/buffer_queue.cpp (+0/-699)
src/server/compositor/buffer_queue.h (+0/-135)
src/server/compositor/buffer_stream_factory.cpp (+10/-28)
src/server/compositor/buffer_stream_factory.h (+1/-5)
src/server/compositor/buffer_stream_surfaces.cpp (+0/-166)
src/server/compositor/buffer_stream_surfaces.h (+0/-85)
src/server/compositor/compositing_screencast.cpp (+29/-11)
src/server/compositor/compositing_screencast.h (+2/-0)
src/server/compositor/default_configuration.cpp (+2/-4)
src/server/compositor/default_display_buffer_compositor.cpp (+14/-6)
src/server/compositor/default_display_buffer_compositor.h (+6/-3)
src/server/compositor/default_display_buffer_compositor_factory.cpp (+3/-3)
src/server/compositor/default_display_buffer_compositor_factory.h (+6/-3)
src/server/compositor/multi_monitor_arbiter.cpp (+13/-1)
src/server/compositor/multi_monitor_arbiter.h (+2/-1)
src/server/compositor/multi_threaded_compositor.h (+1/-1)
src/server/compositor/screencast_display_buffer.cpp (+12/-3)
src/server/compositor/screencast_display_buffer.h (+13/-5)
src/server/compositor/stream.cpp (+23/-12)
src/server/compositor/stream.h (+3/-2)
src/server/compositor/temporary_buffers.cpp (+1/-17)
src/server/compositor/temporary_buffers.h (+0/-3)
src/server/default_server_configuration.cpp (+2/-1)
src/server/display_server.cpp (+1/-2)
src/server/frontend/CMakeLists.txt (+4/-2)
src/server/frontend/authorizing_display_changer.cpp (+17/-0)
src/server/frontend/authorizing_display_changer.h (+4/-1)
src/server/frontend/buffer_stream_tracker.cpp (+0/-119)
src/server/frontend/buffer_stream_tracker.h (+0/-82)
src/server/frontend/client_buffer_tracker.cpp (+0/-74)
src/server/frontend/client_buffer_tracker.h (+0/-63)
src/server/frontend/default_configuration.cpp (+22/-1)
src/server/frontend/default_ipc_factory.cpp (+5/-5)
src/server/frontend/default_ipc_factory.h (+4/-4)
src/server/frontend/event_sender.cpp (+21/-12)
src/server/frontend/event_sender.h (+3/-2)
src/server/frontend/protobuf_buffer_packer.cpp (+23/-0)
src/server/frontend/protobuf_buffer_packer.h (+1/-0)
src/server/frontend/protobuf_input_converter.cpp (+63/-0)
src/server/frontend/protobuf_input_converter.h (+51/-0)
src/server/frontend/protobuf_message_processor.cpp (+16/-11)
src/server/frontend/protobuf_message_processor.h (+1/-1)
src/server/frontend/session_mediator.cpp (+259/-191)
src/server/frontend/session_mediator.h (+40/-15)
src/server/frontend/session_mediator_observer_multiplexer.cpp (+134/-0)
src/server/frontend/session_mediator_observer_multiplexer.h (+77/-0)
src/server/frontend/shell_wrapper.cpp (+2/-2)
src/server/frontend/shell_wrapper.h (+2/-2)
src/server/frontend/unauthorized_screencast.cpp (+6/-0)
src/server/frontend/unauthorized_screencast.h (+1/-0)
src/server/glib_main_loop.cpp (+16/-0)
src/server/graphics/CMakeLists.txt (+7/-1)
src/server/graphics/default_configuration.cpp (+31/-21)
src/server/graphics/default_display_configuration_policy.cpp (+2/-21)
src/server/graphics/display_configuration_observer_multiplexer.cpp (+73/-0)
src/server/graphics/display_configuration_observer_multiplexer.h (+65/-0)
src/server/graphics/nested/CMakeLists.txt (+4/-0)
src/server/graphics/nested/buffer.cpp (+220/-0)
src/server/graphics/nested/buffer.h (+64/-0)
src/server/graphics/nested/display.cpp (+152/-87)
src/server/graphics/nested/display.h (+20/-7)
src/server/graphics/nested/display_buffer.cpp (+118/-13)
src/server/graphics/nested/display_buffer.h (+28/-8)
src/server/graphics/nested/host_chain.h (+54/-0)
src/server/graphics/nested/host_connection.h (+22/-4)
src/server/graphics/nested/host_stream.h (+50/-0)
src/server/graphics/nested/host_surface.h (+3/-2)
src/server/graphics/nested/host_surface_spec.h (+49/-0)
src/server/graphics/nested/input_platform.cpp (+34/-22)
src/server/graphics/nested/ipc_operations.cpp (+92/-0)
src/server/graphics/nested/ipc_operations.h (+48/-0)
src/server/graphics/nested/mir_client_host_connection.cpp (+610/-71)
src/server/graphics/nested/mir_client_host_connection.h (+18/-5)
src/server/graphics/nested/native_buffer.h (+74/-0)
src/server/graphics/nested/nested_display_configuration.cpp (+127/-116)
src/server/graphics/nested/nested_display_configuration.h (+9/-4)
src/server/graphics/nested/passthrough_option.h (+35/-0)
src/server/graphics/nested/platform.cpp (+146/-0)
src/server/graphics/nested/platform.h (+66/-0)
src/server/graphics/software_cursor.cpp (+14/-4)
src/server/input/CMakeLists.txt (+5/-1)
src/server/input/android/input_sender.cpp (+24/-6)
src/server/input/basic_seat.cpp (+10/-2)
src/server/input/basic_seat.h (+3/-1)
src/server/input/config_changer.cpp (+291/-0)
src/server/input/config_changer.h (+81/-0)
src/server/input/cursor_controller.cpp (+1/-1)
src/server/input/default-theme.h (+165/-165)
src/server/input/default_configuration.cpp (+30/-4)
src/server/input/default_device.cpp (+87/-55)
src/server/input/default_device.h (+12/-9)
src/server/input/default_event_builder.cpp (+35/-31)
src/server/input/default_event_builder.h (+7/-6)
src/server/input/default_input_device_hub.cpp (+67/-13)
src/server/input/default_input_device_hub.h (+18/-5)
src/server/input/key_repeat_dispatcher.cpp (+25/-16)
src/server/input/seat_input_device_tracker.cpp (+41/-13)
src/server/input/seat_input_device_tracker.h (+9/-2)
src/server/input/seat_observer_multiplexer.cpp (+80/-0)
src/server/input/seat_observer_multiplexer.h (+61/-0)
src/server/input/surface_input_dispatcher.cpp (+69/-46)
src/server/input/surface_input_dispatcher.h (+3/-3)
src/server/input/touchspot_controller.cpp (+17/-2)
src/server/input/validator.cpp (+112/-191)
src/server/mirserver.pc.in (+2/-2)
src/server/report/CMakeLists.txt (+3/-1)
src/server/report/default_server_configuration.cpp (+6/-18)
src/server/report/logging/CMakeLists.txt (+1/-0)
src/server/report/logging/display_configuration_report.cpp (+117/-44)
src/server/report/logging/display_configuration_report.h (+30/-7)
src/server/report/logging/display_report.cpp (+29/-20)
src/server/report/logging/display_report.h (+5/-7)
src/server/report/logging/logging_report_factory.cpp (+8/-2)
src/server/report/logging/seat_report.cpp (+146/-0)
src/server/report/logging/seat_report.h (+67/-0)
src/server/report/logging/session_mediator_report.cpp (+0/-5)
src/server/report/logging/session_mediator_report.h (+2/-4)
src/server/report/logging/shell_report.cpp (+1/-1)
src/server/report/logging/shell_report.h (+1/-1)
src/server/report/logging_report_factory.h (+2/-1)
src/server/report/lttng/display_report.cpp (+3/-2)
src/server/report/lttng/display_report.h (+1/-1)
src/server/report/lttng/lttng_report_factory.cpp (+6/-1)
src/server/report/lttng/session_mediator_report.cpp (+0/-1)
src/server/report/lttng/session_mediator_report.h (+2/-3)
src/server/report/lttng/session_mediator_report_tp.h (+1/-2)
src/server/report/lttng_report_factory.h (+2/-1)
src/server/report/null/CMakeLists.txt (+1/-0)
src/server/report/null/display_report.cpp (+1/-1)
src/server/report/null/display_report.h (+1/-1)
src/server/report/null/null_report_factory.cpp (+13/-2)
src/server/report/null/seat_report.cpp (+58/-0)
src/server/report/null/seat_report.h (+50/-0)
src/server/report/null/session_mediator_report.cpp (+0/-4)
src/server/report/null/session_mediator_report.h (+2/-4)
src/server/report/null/shell_report.cpp (+1/-1)
src/server/report/null/shell_report.h (+1/-1)
src/server/report/null_report_factory.h (+4/-2)
src/server/report/report_factory.h (+4/-2)
src/server/report/reports.cpp (+143/-0)
src/server/report/reports.h (+75/-0)
src/server/scene/CMakeLists.txt (+1/-0)
src/server/scene/application_session.cpp (+62/-16)
src/server/scene/application_session.h (+7/-2)
src/server/scene/basic_surface.cpp (+85/-69)
src/server/scene/basic_surface.h (+13/-17)
src/server/scene/broadcasting_session_event_sink.h (+1/-1)
src/server/scene/default_configuration.cpp (+14/-4)
src/server/scene/default_coordinate_translator.cpp (+5/-0)
src/server/scene/default_coordinate_translator.h (+2/-1)
src/server/scene/default_session_container.h (+1/-1)
src/server/scene/gl_pixel_buffer.cpp (+2/-2)
src/server/scene/gl_pixel_buffer.h (+9/-3)
src/server/scene/global_event_sender.cpp (+11/-7)
src/server/scene/global_event_sender.h (+3/-2)
src/server/scene/legacy_surface_change_notification.cpp (+5/-1)
src/server/scene/legacy_surface_change_notification.h (+2/-1)
src/server/scene/mediating_display_changer.cpp (+270/-47)
src/server/scene/mediating_display_changer.h (+11/-8)
src/server/scene/null_surface_observer.cpp (+2/-1)
src/server/scene/output_properties_cache.cpp (+1/-0)
src/server/scene/output_properties_cache.h (+1/-0)
src/server/scene/prompt_session_manager_impl.cpp (+1/-1)
src/server/scene/rendering_tracker.cpp (+5/-5)
src/server/scene/rendering_tracker.h (+1/-1)
src/server/scene/session_manager.cpp (+1/-1)
src/server/scene/surface_allocator.cpp (+0/-8)
src/server/scene/surface_creation_parameters.cpp (+2/-2)
src/server/scene/surface_event_source.cpp (+7/-1)
src/server/scene/surface_stack.cpp (+2/-2)
src/server/scene/timeout_application_not_responding_detector.cpp (+17/-0)
src/server/scene/unsupported_coordinate_translator.cpp (+8/-2)
src/server/scene/unsupported_coordinate_translator.h (+1/-0)
src/server/server.cpp (+22/-65)
src/server/shell/abstract_shell.cpp (+84/-10)
src/server/shell/basic_window_manager.cpp (+3/-3)
src/server/shell/canonical_window_manager.cpp (+50/-46)
src/server/shell/frontend_shell.cpp (+4/-4)
src/server/shell/frontend_shell.h (+2/-2)
src/server/shell/shell_wrapper.cpp (+2/-2)
src/server/shell/surface_specification.cpp (+3/-1)
src/server/shell/system_compositor_window_manager.cpp (+1/-1)
src/server/shell/window_management_info.cpp (+41/-41)
src/server/symbols.map (+140/-103)
src/utils/CMakeLists.txt (+0/-3)
src/utils/in.cpp (+1/-1)
src/utils/out.c (+408/-82)
src/utils/ping.c (+0/-134)
src/utils/screencast.cpp (+96/-59)
src/utils/vanity.c (+118/-25)
tests/CMakeLists.txt (+12/-12)
tests/acceptance-tests/CMakeLists.txt (+31/-8)
tests/acceptance-tests/buffer_stream_arrangement.h (+107/-0)
tests/acceptance-tests/server_configuration_options.cpp (+32/-19)
tests/acceptance-tests/strict_close.cpp (+45/-0)
tests/acceptance-tests/test_application_not_responding_detection.cpp (+3/-3)
tests/acceptance-tests/test_buffer_stream_arrangement.cpp (+194/-226)
tests/acceptance-tests/test_buffer_stream_arrangement1.cpp (+144/-0)
tests/acceptance-tests/test_client_cookie.cpp (+22/-23)
tests/acceptance-tests/test_client_cursor_api.cpp (+165/-42)
tests/acceptance-tests/test_client_extensions.cpp (+63/-0)
tests/acceptance-tests/test_client_focus_notification.cpp (+30/-28)
tests/acceptance-tests/test_client_header_version.cpp (+48/-34)
tests/acceptance-tests/test_client_input.cpp (+250/-138)
tests/acceptance-tests/test_client_library.cpp (+547/-376)
tests/acceptance-tests/test_client_library_callbacks.cpp (+53/-38)
tests/acceptance-tests/test_client_library_errors.cpp (+97/-168)
tests/acceptance-tests/test_client_library_old.cpp (+2/-2)
tests/acceptance-tests/test_client_logging.cpp (+32/-19)
tests/acceptance-tests/test_client_platform_operation.cpp (+11/-1)
tests/acceptance-tests/test_client_scaling.cpp (+20/-11)
tests/acceptance-tests/test_client_screencast.cpp (+43/-24)
tests/acceptance-tests/test_client_surface_events.cpp (+198/-114)
tests/acceptance-tests/test_client_surface_swap_buffers.cpp (+2/-2)
tests/acceptance-tests/test_client_surface_visibility.cpp (+49/-45)
tests/acceptance-tests/test_client_surfaces.cpp (+107/-165)
tests/acceptance-tests/test_client_with_custom_display_config_deadlock.cpp (+4/-4)
tests/acceptance-tests/test_confined_pointer.cpp (+149/-52)
tests/acceptance-tests/test_custom_input_dispatcher.cpp (+0/-3)
tests/acceptance-tests/test_custom_window_management.cpp (+332/-47)
tests/acceptance-tests/test_debug_api.cpp (+98/-26)
tests/acceptance-tests/test_display_configuration.cpp (+29/-8)
tests/acceptance-tests/test_latency.cpp (+204/-63)
tests/acceptance-tests/test_mirblob.cpp (+31/-1)
tests/acceptance-tests/test_nested_input.cpp (+98/-25)
tests/acceptance-tests/test_nested_mir.cpp (+324/-310)
tests/acceptance-tests/test_new_display_configuration.cpp (+1135/-40)
tests/acceptance-tests/test_persistent_surface_store.cpp (+4/-1)
tests/acceptance-tests/test_presentation_chain.cpp (+378/-177)
tests/acceptance-tests/test_prompt_session_client_api.cpp (+110/-26)
tests/acceptance-tests/test_render_override.cpp (+3/-3)
tests/acceptance-tests/test_render_surface.cpp (+329/-0)
tests/acceptance-tests/test_server_disconnect.cpp (+14/-14)
tests/acceptance-tests/test_server_without_active_outputs.cpp (+6/-6)
tests/acceptance-tests/test_session_mediator_report.cpp (+74/-32)
tests/acceptance-tests/test_shell_control_of_surface_configuration.cpp (+38/-13)
tests/acceptance-tests/test_surface_modifications.cpp (+100/-90)
tests/acceptance-tests/test_surface_morphing.cpp (+111/-111)
tests/acceptance-tests/test_surface_placement.cpp (+75/-75)
tests/acceptance-tests/test_surface_raise.cpp (+46/-42)
tests/acceptance-tests/test_surface_specification.cpp (+165/-165)
tests/acceptance-tests/test_surfaces_with_output_id.cpp (+37/-30)
tests/acceptance-tests/test_system_compositor_window_manager.cpp (+46/-46)
tests/acceptance-tests/test_unresponsive_client.cpp (+8/-3)
tests/acceptance-tests/throwback/CMakeLists.txt (+0/-15)
tests/client-language/c99.c (+8/-0)
tests/include/mir/test/doubles/fake_renderable.h (+5/-0)
tests/include/mir/test/doubles/mock_android_native_buffer.h (+7/-3)
tests/include/mir/test/doubles/mock_buffer.h (+3/-1)
tests/include/mir/test/doubles/mock_buffer_bundle.h (+0/-67)
tests/include/mir/test/doubles/mock_buffer_ipc_message.h (+1/-0)
tests/include/mir/test/doubles/mock_buffer_registrar.h (+3/-3)
tests/include/mir/test/doubles/mock_buffer_stream.h (+4/-4)
tests/include/mir/test/doubles/mock_client_buffer.h (+2/-3)
tests/include/mir/test/doubles/mock_client_buffer_factory.h (+2/-0)
tests/include/mir/test/doubles/mock_client_context.h (+5/-0)
tests/include/mir/test/doubles/mock_display.h (+3/-2)
tests/include/mir/test/doubles/mock_display_buffer.h (+1/-1)
tests/include/mir/test/doubles/mock_display_report.h (+2/-2)
tests/include/mir/test/doubles/mock_drm.h (+10/-1)
tests/include/mir/test/doubles/mock_egl_native_surface.h (+4/-3)
tests/include/mir/test/doubles/mock_event_sink.h (+5/-3)
tests/include/mir/test/doubles/mock_fence.h (+3/-0)
tests/include/mir/test/doubles/mock_frontend_surface.h (+2/-2)
tests/include/mir/test/doubles/mock_hwc_device_wrapper.h (+1/-1)
tests/include/mir/test/doubles/mock_interpreter_resource_cache.h (+1/-1)
tests/include/mir/test/doubles/mock_libinput.h (+1/-1)
tests/include/mir/test/doubles/mock_main_loop.h (+11/-3)
tests/include/mir/test/doubles/mock_mesa_auth_extensions.h (+39/-0)
tests/include/mir/test/doubles/mock_mir_buffer.h (+3/-7)
tests/include/mir/test/doubles/mock_mir_buffer_stream.h (+16/-8)
tests/include/mir/test/doubles/mock_nested_context.h (+3/-0)
tests/include/mir/test/doubles/mock_renderable.h (+1/-0)
tests/include/mir/test/doubles/mock_renderer.h (+2/-2)
tests/include/mir/test/doubles/mock_scene_session.h (+7/-2)
tests/include/mir/test/doubles/mock_screencast.h (+1/-0)
tests/include/mir/test/doubles/mock_server_status_listener.h (+2/-0)
tests/include/mir/test/doubles/mock_shell.h (+2/-2)
tests/include/mir/test/doubles/mock_surface.h (+1/-2)
tests/include/mir/test/doubles/mock_x11.h (+2/-1)
tests/include/mir/test/doubles/null_client_buffer.h (+3/-4)
tests/include/mir/test/doubles/null_display_changer.h (+7/-0)
tests/include/mir/test/doubles/null_event_sink.h (+3/-2)
tests/include/mir/test/doubles/null_prompt_session_manager.h (+13/-13)
tests/include/mir/test/doubles/null_screencast.h (+1/-0)
tests/include/mir/test/doubles/stub_android_native_buffer.h (+7/-3)
tests/include/mir/test/doubles/stub_buffer.h (+18/-8)
tests/include/mir/test/doubles/stub_buffer_allocator.h (+17/-1)
tests/include/mir/test/doubles/stub_buffer_stream.h (+16/-13)
tests/include/mir/test/doubles/stub_buffer_stream_factory.h (+1/-1)
tests/include/mir/test/doubles/stub_client_buffer.h (+26/-15)
tests/include/mir/test/doubles/stub_client_buffer_factory.h (+8/-1)
tests/include/mir/test/doubles/stub_connection_configuration.h (+104/-0)
tests/include/mir/test/doubles/stub_display_builder.h (+6/-3)
tests/include/mir/test/doubles/stub_display_server.h (+15/-3)
tests/include/mir/test/doubles/stub_driver_interpreter.h (+7/-2)
tests/include/mir/test/doubles/stub_gbm_native_buffer.h (+2/-1)
tests/include/mir/test/doubles/stub_host_connection.h (+152/-30)
tests/include/mir/test/doubles/stub_input_scene.h (+5/-5)
tests/include/mir/test/doubles/stub_renderable.h (+31/-0)
tests/include/mir/test/doubles/stub_renderer.h (+2/-2)
tests/include/mir/test/doubles/stub_scene_element.h (+1/-1)
tests/include/mir/test/doubles/stub_scene_surface.h (+10/-9)
tests/include/mir/test/doubles/stub_session_container.h (+63/-0)
tests/include/mir/test/doubles/triggered_main_loop.h (+4/-0)
tests/include/mir/test/gmock_fixes.h (+4/-0)
tests/include/mir/test/input_config_matchers.h (+148/-0)
tests/include/mir/test/input_devices_matcher.h (+15/-21)
tests/include/mir/test/stub_server_tool.h (+2/-7)
tests/include/mir/test/test_protobuf_client.h (+5/-5)
tests/include/mir_test_framework/basic_client_server_fixture.h (+0/-2)
tests/include/mir_test_framework/client_platform_factory.h (+2/-2)
tests/include/mir_test_framework/fake_input_server_configuration.h (+0/-2)
tests/include/mir_test_framework/stub_client_platform_factory.h (+34/-6)
tests/include/mir_test_framework/stub_platform_native_buffer.h (+37/-0)
tests/include/mir_test_framework/stubbed_server_configuration.h (+1/-1)
tests/include/mir_test_framework/testing_server_configuration.h (+7/-0)
tests/include/mir_test_framework/using_client_platform.h (+0/-97)
tests/integration-tests/CMakeLists.txt (+2/-3)
tests/integration-tests/client/test_mirsurface.cpp (+34/-30)
tests/integration-tests/compositor/CMakeLists.txt (+0/-1)
tests/integration-tests/compositor/test_buffer_stream.cpp (+0/-410)
tests/integration-tests/compositor/test_swapping_swappers.cpp (+20/-48)
tests/integration-tests/graphics/mesa/CMakeLists.txt (+0/-2)
tests/integration-tests/input/test_single_seat_setup.cpp (+31/-28)
tests/integration-tests/session_management.cpp (+1/-1)
tests/integration-tests/shell/test_session_lifecycle_event.cpp (+11/-1)
tests/integration-tests/surface_composition.cpp (+0/-128)
tests/integration-tests/test_buffer_scheduling.cpp (+54/-340)
tests/integration-tests/test_client_screencast.cpp (+42/-33)
tests/integration-tests/test_display_info.cpp (+4/-46)
tests/integration-tests/test_display_server_main_loop_events.cpp (+1/-1)
tests/integration-tests/test_error_reporting.cpp (+11/-13)
tests/integration-tests/test_focus_selection.cpp (+3/-3)
tests/integration-tests/test_large_messages.cpp (+0/-3)
tests/integration-tests/test_protobuf.cpp (+2/-4)
tests/integration-tests/test_protobuf.proto (+1/-0)
tests/integration-tests/test_server_client_types.cpp (+2/-0)
tests/integration-tests/test_server_shutdown.cpp (+5/-7)
tests/integration-tests/test_session.cpp (+4/-25)
tests/integration-tests/test_stale_frames.cpp (+148/-34)
tests/integration-tests/test_submit_buffer.cpp (+152/-203)
tests/integration-tests/test_surface_first_frame_sync.cpp (+12/-12)
tests/integration-tests/test_surface_stack_with_compositor.cpp (+43/-33)
tests/integration-tests/test_surfaceloop.cpp (+10/-100)
tests/integration-tests/test_swapinterval.cpp (+22/-23)
tests/integration-tests/test_test_framework.cpp (+6/-9)
tests/integration-tests/test_touchspot_visualization.cpp (+1/-1)
tests/mir_test/display_config_matchers.cpp (+30/-63)
tests/mir_test/test_dispatchable.cpp (+4/-3)
tests/mir_test/validity_matchers.cpp (+3/-3)
tests/mir_test_doubles/CMakeLists.txt (+1/-1)
tests/mir_test_doubles/fake_display.cpp (+66/-4)
tests/mir_test_doubles/mock_drm.cpp (+20/-1)
tests/mir_test_doubles/mock_egl.cpp (+15/-1)
tests/mir_test_doubles/mock_event_sink_factory.cpp (+13/-7)
tests/mir_test_doubles/mock_libinput.cpp (+3/-1)
tests/mir_test_doubles/mock_x11.cpp (+19/-2)
tests/mir_test_doubles/stub_buffer.cpp (+0/-37)
tests/mir_test_doubles/stub_display_configuration.cpp (+72/-50)
tests/mir_test_doubles/test_protobuf_client.cpp (+13/-12)
tests/mir_test_doubles/triggered_main_loop.cpp (+19/-2)
tests/mir_test_framework/CMakeLists.txt (+9/-2)
tests/mir_test_framework/any_surface.cpp (+24/-7)
tests/mir_test_framework/connected_client_with_a_surface.cpp (+10/-8)
tests/mir_test_framework/fake_input_device_impl.cpp (+25/-20)
tests/mir_test_framework/fake_input_device_impl.h (+12/-9)
tests/mir_test_framework/fake_input_server_configuration.cpp (+20/-2)
tests/mir_test_framework/headless_display_buffer_compositor_factory.cpp (+113/-0)
tests/mir_test_framework/headless_nested_server_runner.cpp (+20/-1)
tests/mir_test_framework/headless_test.cpp (+5/-0)
tests/mir_test_framework/observant_shell.cpp (+161/-0)
tests/mir_test_framework/placement_applying_shell.cpp (+1/-0)
tests/mir_test_framework/platform_graphics_throw.cpp (+3/-2)
tests/mir_test_framework/stub_client_platform_factory.cpp (+161/-12)
tests/mir_test_framework/stub_client_platform_module.cpp (+22/-2)
tests/mir_test_framework/stub_client_platform_options.cpp (+45/-0)
tests/mir_test_framework/stub_input.cpp (+9/-0)
tests/mir_test_framework/stub_session.cpp (+19/-2)
tests/mir_test_framework/stub_surface.cpp (+15/-12)
tests/mir_test_framework/stubbed_graphics_platform.cpp (+59/-81)
tests/mir_test_framework/stubbed_server_configuration.cpp (+5/-5)
tests/mir_test_framework/symbols-client.map (+5/-0)
tests/mir_test_framework/testing_server_options.cpp (+12/-1)
tests/mir_test_framework/using_stub_client_platform.cpp (+0/-56)
tests/mir_test_framework/visible_surface.cpp (+21/-20)
tests/mirtest.pc.in (+1/-1)
tests/performance-tests/CMakeLists.txt (+15/-0)
tests/performance-tests/system_performance_test.cpp (+191/-0)
tests/performance-tests/system_performance_test.h (+46/-0)
tests/performance-tests/test_client_startup.cpp (+15/-15)
tests/performance-tests/test_compositor.cpp (+11/-164)
tests/privileged-tests/test_input_events.cpp (+20/-19)
tests/test-clients/impolite-shutdown/scroll.cpp (+14/-14)
tests/test-clients/mir-stress/src/client.cpp (+16/-15)
tests/test-clients/mir-stress/src/client.h (+2/-6)
tests/unit-tests/CMakeLists.txt (+8/-28)
tests/unit-tests/client/CMakeLists.txt (+3/-9)
tests/unit-tests/client/input/test_android_input_receiver.cpp (+28/-112)
tests/unit-tests/client/input/test_xkb_mapper.cpp (+113/-0)
tests/unit-tests/client/test_aging_buffer.cpp (+6/-16)
tests/unit-tests/client/test_buffer_vault.cpp (+21/-13)
tests/unit-tests/client/test_client.cpp (+6/-6)
tests/unit-tests/client/test_client_buffer_depository.cpp (+0/-451)
tests/unit-tests/client/test_client_buffer_stream.cpp (+145/-150)
tests/unit-tests/client/test_client_display_conf.cpp (+2/-1)
tests/unit-tests/client/test_client_mir_surface.cpp (+171/-50)
tests/unit-tests/client/test_client_platform.cpp (+4/-4)
tests/unit-tests/client/test_connection_resource_map.cpp (+30/-24)
tests/unit-tests/client/test_frame_clock.cpp (+420/-0)
tests/unit-tests/client/test_mir_buffer.cpp (+1/-49)
tests/unit-tests/client/test_mir_connection.cpp (+149/-111)
tests/unit-tests/client/test_mir_prompt_session.cpp (+4/-4)
tests/unit-tests/client/test_mir_render_surface.cpp (+511/-0)
tests/unit-tests/client/test_mir_screencast.cpp (+2/-2)
tests/unit-tests/client/test_no_tls_future.cpp (+429/-0)
tests/unit-tests/client/test_presentation_chain.cpp (+14/-0)
tests/unit-tests/client/test_probing_client_platform_factory.cpp (+9/-9)
tests/unit-tests/client/test_protobuf_rpc_channel.cpp (+42/-37)
tests/unit-tests/client/test_screencast_stream.cpp (+63/-7)
tests/unit-tests/client/test_stream_transport.cpp (+29/-22)
tests/unit-tests/compositor/CMakeLists.txt (+0/-2)
tests/unit-tests/compositor/test_buffer_queue.cpp (+0/-2029)
tests/unit-tests/compositor/test_buffer_stream.cpp (+0/-284)
tests/unit-tests/compositor/test_client_buffers.cpp (+30/-69)
tests/unit-tests/compositor/test_compositing_screencast.cpp (+54/-2)
tests/unit-tests/compositor/test_default_display_buffer_compositor.cpp (+8/-8)
tests/unit-tests/compositor/test_dropping_schedule.cpp (+1/-1)
tests/unit-tests/compositor/test_multi_monitor_arbiter.cpp (+31/-1)
tests/unit-tests/compositor/test_multi_threaded_compositor.cpp (+3/-3)
tests/unit-tests/compositor/test_screencast_display_buffer.cpp (+2/-2)
tests/unit-tests/compositor/test_stream.cpp (+37/-38)
tests/unit-tests/compositor/test_temporary_buffers.cpp (+1/-12)
tests/unit-tests/dispatch/test_multiplexing_dispatchable.cpp (+3/-3)
tests/unit-tests/dispatch/test_threaded_dispatcher.cpp (+15/-11)
tests/unit-tests/frontend/CMakeLists.txt (+0/-1)
tests/unit-tests/frontend/stress_protobuf_communicator.cpp (+16/-16)
tests/unit-tests/frontend/test_client_buffer_tracker.cpp (+0/-258)
tests/unit-tests/frontend/test_event_sender.cpp (+112/-61)
tests/unit-tests/frontend/test_protobuf_buffer_packer.cpp (+3/-3)
tests/unit-tests/frontend/test_protobuf_message_processor.cpp (+2/-47)
tests/unit-tests/frontend/test_published_socket_connector.cpp (+9/-10)
tests/unit-tests/frontend/test_session_mediator.cpp (+272/-469)
tests/unit-tests/graphics/CMakeLists.txt (+3/-17)
tests/unit-tests/graphics/test_default_display_configuration_policy.cpp (+7/-69)
tests/unit-tests/graphics/test_display_configuration.cpp (+5/-1)
tests/unit-tests/graphics/test_gamma_curves.cpp (+96/-0)
tests/unit-tests/graphics/test_overlapping_output_grouping.cpp (+7/-3)
tests/unit-tests/graphics/test_platform_prober.cpp (+3/-1)
tests/unit-tests/graphics/test_shm_buffer.cpp (+26/-33)
tests/unit-tests/graphics/test_software_cursor.cpp (+2/-0)
tests/unit-tests/input/CMakeLists.txt (+1/-0)
tests/unit-tests/input/android/test_android_input_lexicon.cpp (+3/-3)
tests/unit-tests/input/android/test_android_input_sender.cpp (+37/-32)
tests/unit-tests/input/evdev/test_libinput_device.cpp (+45/-41)
tests/unit-tests/input/test_config_changer.cpp (+266/-0)
tests/unit-tests/input/test_default_device.cpp (+35/-12)
tests/unit-tests/input/test_default_input_device_hub.cpp (+45/-1)
tests/unit-tests/input/test_event_builders.cpp (+19/-10)
tests/unit-tests/input/test_input_event.cpp (+29/-128)
tests/unit-tests/input/test_input_platform_probing.cpp (+1/-1)
tests/unit-tests/input/test_key_repeat_dispatcher.cpp (+9/-9)
tests/unit-tests/input/test_nested_input_platform.cpp (+50/-40)
tests/unit-tests/input/test_seat_input_device_tracker.cpp (+26/-25)
tests/unit-tests/input/test_surface_input_dispatcher.cpp (+4/-54)
tests/unit-tests/input/test_touchspot_controller.cpp (+2/-0)
tests/unit-tests/input/test_validator.cpp (+32/-32)
tests/unit-tests/input/test_x11_platform.cpp (+1/-1)
tests/unit-tests/library_example.h (+10/-0)
tests/unit-tests/logging/test_display_report.cpp (+61/-20)
tests/unit-tests/platforms/CMakeLists.txt (+15/-0)
tests/unit-tests/platforms/android/CMakeLists.txt (+46/-0)
tests/unit-tests/platforms/android/client/CMakeLists.txt (+2/-2)
tests/unit-tests/platforms/android/client/test_android_client_platform.cpp (+225/-0)
tests/unit-tests/platforms/android/client/test_android_native_window.cpp (+28/-11)
tests/unit-tests/platforms/android/client/test_buffer.cpp (+15/-14)
tests/unit-tests/platforms/android/client/test_egl_native_surface_interpreter.cpp (+22/-21)
tests/unit-tests/platforms/android/client/test_gralloc_registrar.cpp (+8/-8)
tests/unit-tests/platforms/android/server/CMakeLists.txt (+2/-3)
tests/unit-tests/platforms/android/server/hwc_struct_helpers.cpp (+2/-1)
tests/unit-tests/platforms/android/server/test_buffer.cpp (+4/-4)
tests/unit-tests/platforms/android/server/test_device_detection.cpp (+20/-1)
tests/unit-tests/platforms/android/server/test_display.cpp (+65/-31)
tests/unit-tests/platforms/android/server/test_display_buffer.cpp (+29/-19)
tests/unit-tests/platforms/android/server/test_display_generic.cpp (+11/-6)
tests/unit-tests/platforms/android/server/test_display_group.cpp (+3/-3)
tests/unit-tests/platforms/android/server/test_display_hotplug.cpp (+2/-2)
tests/unit-tests/platforms/android/server/test_fb_device.cpp (+1/-1)
tests/unit-tests/platforms/android/server/test_gralloc.cpp (+20/-78)
tests/unit-tests/platforms/android/server/test_graphic_buffer_allocator.cpp (+82/-48)
tests/unit-tests/platforms/android/server/test_graphics_platform.cpp (+6/-4)
tests/unit-tests/platforms/android/server/test_hwc_configuration.cpp (+13/-11)
tests/unit-tests/platforms/android/server/test_hwc_device.cpp (+27/-11)
tests/unit-tests/platforms/android/server/test_hwc_fallback_gl_renderer.cpp (+2/-2)
tests/unit-tests/platforms/android/server/test_hwc_fb_device.cpp (+4/-4)
tests/unit-tests/platforms/android/server/test_hwc_layerlist.cpp (+19/-14)
tests/unit-tests/platforms/android/server/test_hwc_logger.cpp (+20/-16)
tests/unit-tests/platforms/android/server/test_hwc_wrapper.cpp (+17/-15)
tests/unit-tests/platforms/android/server/test_interpreter_buffer_cache.cpp (+5/-5)
tests/unit-tests/platforms/android/server/test_native_buffer.cpp (+19/-0)
tests/unit-tests/platforms/android/server/test_output_builder.cpp (+32/-2)
tests/unit-tests/platforms/android/server/test_platform.cpp (+32/-18)
tests/unit-tests/platforms/android/server/test_server_interpreter.cpp (+1/-1)
tests/unit-tests/platforms/android/server/test_sync_fence.cpp (+23/-0)
tests/unit-tests/platforms/eglstream-kms/CMakeLists.txt (+31/-0)
tests/unit-tests/platforms/eglstream-kms/server/CMakeLists.txt (+5/-0)
tests/unit-tests/platforms/eglstream-kms/server/test_buffer_allocator.cpp (+69/-0)
tests/unit-tests/platforms/mesa/CMakeLists.txt (+3/-12)
tests/unit-tests/platforms/mesa/client/CMakeLists.txt (+1/-0)
tests/unit-tests/platforms/mesa/client/test_client_buffer.cpp (+70/-21)
tests/unit-tests/platforms/mesa/client/test_client_platform.cpp (+192/-7)
tests/unit-tests/platforms/mesa/client/test_native_surface.cpp (+71/-28)
tests/unit-tests/platforms/mesa/kms-utils/test_drm_mode_resources.cpp (+4/-3)
tests/unit-tests/platforms/mesa/kms/CMakeLists.txt (+3/-0)
tests/unit-tests/platforms/mesa/kms/mock_kms_output.h (+3/-0)
tests/unit-tests/platforms/mesa/kms/test_buffer_allocator.cpp (+30/-69)
tests/unit-tests/platforms/mesa/kms/test_bypass.cpp (+15/-0)
tests/unit-tests/platforms/mesa/kms/test_cursor.cpp (+40/-5)
tests/unit-tests/platforms/mesa/kms/test_display.cpp (+71/-14)
tests/unit-tests/platforms/mesa/kms/test_display_buffer.cpp (+17/-17)
tests/unit-tests/platforms/mesa/kms/test_display_configuration.cpp (+194/-56)
tests/unit-tests/platforms/mesa/kms/test_display_generic.cpp (+0/-1)
tests/unit-tests/platforms/mesa/kms/test_gbm_buffer.cpp (+8/-3)
tests/unit-tests/platforms/mesa/kms/test_guest_platform.cpp (+25/-28)
tests/unit-tests/platforms/mesa/kms/test_ipc_operations.cpp (+9/-4)
tests/unit-tests/platforms/mesa/kms/test_kms_page_flipper.cpp (+22/-13)
tests/unit-tests/platforms/mesa/kms/test_nested_authentication.cpp (+42/-31)
tests/unit-tests/platforms/mesa/kms/test_real_kms_output.cpp (+90/-11)
tests/unit-tests/platforms/mesa/kms/test_software_buffer.cpp (+76/-0)
tests/unit-tests/platforms/mesa/x11/CMakeLists.txt (+1/-0)
tests/unit-tests/platforms/mesa/x11/test_display.cpp (+61/-13)
tests/unit-tests/platforms/mesa/x11/test_display_generic.cpp (+3/-3)
tests/unit-tests/platforms/mesa/x11/test_graphics_platform.cpp (+3/-2)
tests/unit-tests/platforms/mesa/x11/test_platform.cpp (+3/-1)
tests/unit-tests/platforms/nested/CMakeLists.txt (+25/-4)
tests/unit-tests/platforms/nested/mir_display_configuration_builder.cpp (+93/-190)
tests/unit-tests/platforms/nested/mir_display_configuration_builder.h (+2/-2)
tests/unit-tests/platforms/nested/test_buffer.cpp (+271/-0)
tests/unit-tests/platforms/nested/test_ipc_operations.cpp (+197/-0)
tests/unit-tests/platforms/nested/test_nested_display.cpp (+136/-3)
tests/unit-tests/platforms/nested/test_nested_display_buffer.cpp (+483/-0)
tests/unit-tests/platforms/nested/test_nested_display_configuration.cpp (+50/-27)
tests/unit-tests/platforms/test_display.h (+15/-2)
tests/unit-tests/scene/test_abstract_shell.cpp (+33/-9)
tests/unit-tests/scene/test_application_session.cpp (+98/-45)
tests/unit-tests/scene/test_basic_surface.cpp (+55/-33)
tests/unit-tests/scene/test_gl_pixel_buffer.cpp (+6/-5)
tests/unit-tests/scene/test_global_event_sender.cpp (+1/-1)
tests/unit-tests/scene/test_mediating_display_changer.cpp (+347/-72)
tests/unit-tests/scene/test_prompt_session_manager.cpp (+1/-2)
tests/unit-tests/scene/test_rendering_tracker.cpp (+6/-6)
tests/unit-tests/scene/test_session_manager.cpp (+0/-1)
tests/unit-tests/scene/test_surface.cpp (+5/-7)
tests/unit-tests/scene/test_surface_impl.cpp (+62/-65)
tests/unit-tests/scene/test_surface_stack.cpp (+54/-67)
tests/unit-tests/test_edid.cpp (+73/-0)
tests/unit-tests/test_flags.cpp (+1/-1)
tests/unit-tests/test_observer_multiplexer.cpp (+608/-0)
tests/unit-tests/test_posix_rw_mutex.cpp (+311/-0)
tests/unit-tests/test_posix_timestamp.cpp (+118/-0)
tests/unit-tests/test_shared_library_prober.cpp (+2/-2)
tools/abigail_check.sh (+290/-0)
tools/abigail_suppressions_client (+7/-0)
tools/abigail_suppressions_generic (+13/-0)
tools/process_doxygen_xml.py (+7/-6)
tools/setup-partial-armhf-chroot.sh (+16/-6)
tools/update_package_abis.sh (+1/-0)
To merge this branch: bzr merge lp:~mir-team/mir/yakkety-0.26
Reviewer Review Type Date Requested Status
Alan Griffiths 2017-06-05 Approve on 2017-06-05
Review via email: mp+325069@code.launchpad.net
To post a comment you must log in.
Alan Griffiths (alan-griffiths) wrote :

LGTM

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file '.bzrignore'
2--- .bzrignore 2016-07-14 03:26:20 +0000
3+++ .bzrignore 2017-06-05 10:47:45 +0000
4@@ -1,2 +1,5 @@
5 .idea
6+.project
7 include/server/mir/version.h
8+include/client/mir_toolkit/version.h
9+build-*
10
11=== removed file '3rd_party/android-input/android/frameworks/base/include/androidfw/GenericKeyMap.h'
12--- 3rd_party/android-input/android/frameworks/base/include/androidfw/GenericKeyMap.h 2012-11-13 11:17:46 +0000
13+++ 3rd_party/android-input/android/frameworks/base/include/androidfw/GenericKeyMap.h 1970-01-01 00:00:00 +0000
14@@ -1,36 +0,0 @@
15-// Copyright (C) 2010 The Android Open Source Project
16-//
17-// Licensed under the Apache License, Version 2.0 (the "License");
18-// you may not use this file except in compliance with the License.
19-// You may obtain a copy of the License at
20-//
21-// http://www.apache.org/licenses/LICENSE-2.0
22-//
23-// Unless required by applicable law or agreed to in writing, software
24-// distributed under the License is distributed on an "AS IS" BASIS,
25-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
26-// See the License for the specific language governing permissions and
27-// limitations under the License.
28-//
29-
30-// Generic key layout file for full alphabetic US English PC style
31-// external keyboards. This file is intentionally very generic and is
32-// intended to support a broad rang of keyboards. Do not edit the
33-// generic key layout to support a specific keyboard; instead, create
34-// a new key layout file with the required keyboard configuration.
35-// Taken from android source tree Generic.kl and Generic.kcm
36-
37-#ifndef GENERIC_KEY_MAP_H_
38-#define GENERIC_KEY_MAP_H_
39-
40-namespace android
41-{
42-struct GenericKeyMap
43-{
44- static const char* key_layout_contents();
45-
46- static const char* keymap_contents();
47-};
48-}
49-
50-#endif // GENERIC_KEY_MAP_H_
51
52=== modified file 'CMakeLists.txt'
53--- CMakeLists.txt 2016-08-09 16:24:17 +0000
54+++ CMakeLists.txt 2017-06-05 10:47:45 +0000
55@@ -28,8 +28,8 @@
56 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
57
58 set(MIR_VERSION_MAJOR 0)
59-set(MIR_VERSION_MINOR 24)
60-set(MIR_VERSION_PATCH 0)
61+set(MIR_VERSION_MINOR 26)
62+set(MIR_VERSION_PATCH 3)
63
64 add_definitions(-DMIR_VERSION_MAJOR=${MIR_VERSION_MAJOR})
65 add_definitions(-DMIR_VERSION_MINOR=${MIR_VERSION_MINOR})
66@@ -66,19 +66,20 @@
67 set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--as-needed")
68 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed")
69
70+include(CheckCXXCompilerFlag)
71+check_cxx_compiler_flag(-Wmismatched-tags HAS_W_MISMATCHED_TAGS)
72+
73+if(HAS_W_MISMATCHED_TAGS)
74+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-mismatched-tags")
75+endif()
76+
77 option(MIR_USE_LD_GOLD "Enables the \"gold\" linker." OFF)
78 if(MIR_USE_LD_GOLD)
79- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fuse-ld=gold")
80- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=gold")
81 set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fuse-ld=gold")
82 set (CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fuse-ld=gold")
83 set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold")
84 endif()
85
86-if ("${CMAKE_CXX_COMPILER}" MATCHES "clang")
87- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-return-type-c-linkage -Wno-mismatched-tags")
88-endif()
89-
90 # Link time optimization allows leaner, cleaner libraries
91 message(STATUS "CMAKE_C_COMPILER: " ${CMAKE_C_COMPILER})
92
93@@ -141,6 +142,7 @@
94
95 enable_testing()
96
97+include_directories(include/core)
98 include_directories(include/common)
99 include_directories(include/cookie)
100
101@@ -195,6 +197,7 @@
102 find_package(GLESv2 REQUIRED)
103 find_package(GLM REQUIRED)
104 find_package(Protobuf REQUIRED )
105+find_package(CapnProto REQUIRED)
106 find_package(GLog REQUIRED)
107 find_package(GFlags REQUIRED)
108 find_package(LTTngUST REQUIRED)
109@@ -207,9 +210,11 @@
110
111 #
112 # Full OpenGL support is possibly complete but not yet perfect. So is
113-# presently disabled by default. See the TODOs in:
114-# src/platform/graphics/egl_extensions.cpp: glEGLImageTargetTexture2DOES
115-# src/platforms/common/server/shm_buffer.cpp: glTexImage2D
116+# presently disabled by default due to:
117+# 1. Black windows bug: https://bugs.freedesktop.org/show_bug.cgi?id=92265
118+# 2. Use of glEGLImageTargetTexture2DOES in:
119+# src/platform/graphics/egl_extensions.cpp
120+# possibly shouldn't work even though it does. Or should it?
121 #
122 #if (TARGET_ARCH STREQUAL "x86_64-linux-gnu" OR
123 # TARGET_ARCH STREQUAL "i386-linux-gnu")
124@@ -290,7 +295,7 @@
125
126 # There's no nice way to format this. Thanks CMake.
127 mir_add_test(NAME LGPL-required
128- COMMAND /bin/sh -c "! grep -rl 'GNU General' ${PROJECT_SOURCE_DIR}/src/client ${PROJECT_SOURCE_DIR}/include/client ${PROJECT_SOURCE_DIR}/src/common ${PROJECT_SOURCE_DIR}/include/common ${PROJECT_SOURCE_DIR}/src/include/common ${PROJECT_SOURCE_DIR}/src/platform ${PROJECT_SOURCE_DIR}/include/platform ${PROJECT_SOURCE_DIR}/src/include/platform"
129+ COMMAND /bin/sh -c "! grep -rl 'GNU General' ${PROJECT_SOURCE_DIR}/src/client ${PROJECT_SOURCE_DIR}/include/client ${PROJECT_SOURCE_DIR}/src/common ${PROJECT_SOURCE_DIR}/include/common ${PROJECT_SOURCE_DIR}/src/include/common ${PROJECT_SOURCE_DIR}/src/platform ${PROJECT_SOURCE_DIR}/include/platform ${PROJECT_SOURCE_DIR}/src/include/platform ${PROJECT_SOURCE_DIR}/src/capnproto"
130 )
131 mir_add_test(NAME GPL-required
132 COMMAND /bin/sh -c "! grep -rl 'GNU Lesser' ${PROJECT_SOURCE_DIR}/src/server ${PROJECT_SOURCE_DIR}/include/server ${PROJECT_SOURCE_DIR}/src/include/server ${PROJECT_SOURCE_DIR}/tests ${PROJECT_SOURCE_DIR}/examples"
133@@ -316,3 +321,9 @@
134 mir_check_no_unreleased_symbols(mirplatform release-checks)
135 mir_check_no_unreleased_symbols(mirprotobuf release-checks)
136 mir_check_no_unreleased_symbols(mirserver release-checks)
137+
138+if (TARGET doc)
139+ add_custom_target(doc-show
140+ xdg-open ${CMAKE_BINARY_DIR}/doc/html/index.html
141+ DEPENDS doc)
142+endif()
143
144=== modified file 'benchmarks/frame-uniformity/CMakeLists.txt'
145--- benchmarks/frame-uniformity/CMakeLists.txt 2016-05-03 06:55:25 +0000
146+++ benchmarks/frame-uniformity/CMakeLists.txt 2017-06-05 10:47:45 +0000
147@@ -4,6 +4,8 @@
148 ${PROJECT_SOURCE_DIR}/include/server
149 ${PROJECT_SOURCE_DIR}/include/client
150 ${PROJECT_SOURCE_DIR}/include/test
151+ ${PROJECT_SOURCE_DIR}/include/renderers/gl
152+ ${PROJECT_SOURCE_DIR}/include/renderers/sw
153
154 ${PROJECT_SOURCE_DIR}/src/include/server
155 ${PROJECT_SOURCE_DIR}/src/include/common
156
157=== modified file 'benchmarks/frame-uniformity/touch_measuring_client.cpp'
158--- benchmarks/frame-uniformity/touch_measuring_client.cpp 2015-06-17 05:20:42 +0000
159+++ benchmarks/frame-uniformity/touch_measuring_client.cpp 2017-06-05 10:47:45 +0000
160@@ -29,39 +29,39 @@
161 namespace
162 {
163
164-MirSurface *create_surface(MirConnection *connection)
165+MirWindow *create_window(MirConnection *connection)
166 {
167 MirPixelFormat pixel_format;
168 unsigned int valid_formats;
169 mir_connection_get_available_surface_formats(connection, &pixel_format, 1, &valid_formats);
170
171- auto const spec = mir_connection_create_spec_for_normal_surface(
172- connection, 1024, 1024, pixel_format);
173- mir_surface_spec_set_name(spec, "frame-uniformity-test");
174- mir_surface_spec_set_buffer_usage(spec, mir_buffer_usage_hardware);
175+ auto const spec = mir_create_normal_window_spec(connection, 1024, 1024);
176+ mir_window_spec_set_pixel_format(spec, pixel_format);
177+ mir_window_spec_set_name(spec, "frame-uniformity-test");
178+ mir_window_spec_set_buffer_usage(spec, mir_buffer_usage_hardware);
179
180- auto surface = mir_surface_create_sync(spec);
181- mir_surface_spec_release(spec);
182+ auto window = mir_create_window_sync(spec);
183+ mir_window_spec_release(spec);
184
185- if (!mir_surface_is_valid(surface))
186+ if (!mir_window_is_valid(window))
187 {
188- std::cerr << "Surface creation failed: " << mir_surface_get_error_message(surface) << std::endl;
189+ std::cerr << "Window creation failed: " << mir_window_get_error_message(window) << std::endl;
190 exit(1);
191 }
192
193- return surface;
194+ return window;
195 }
196
197-void input_callback(MirSurface * /* surface */, MirEvent const* event, void* context)
198+void input_callback(MirWindow * /* surface */, MirEvent const* event, void* context)
199 {
200 auto results = static_cast<TouchSamples*>(context);
201
202 results->record_pointer_coordinates(std::chrono::high_resolution_clock::now(), *event);
203 }
204
205-void collect_input_and_frame_timing(MirSurface *surface, mt::Barrier& client_ready, std::chrono::high_resolution_clock::duration duration, std::shared_ptr<TouchSamples> const& results)
206+void collect_input_and_frame_timing(MirWindow *surface, mt::Barrier& client_ready, std::chrono::high_resolution_clock::duration duration, std::shared_ptr<TouchSamples> const& results)
207 {
208- mir_surface_set_event_handler(surface, input_callback, results.get());
209+ mir_window_set_event_handler(surface, input_callback, results.get());
210
211 client_ready.ready();
212
213@@ -69,7 +69,7 @@
214 auto end_time = std::chrono::high_resolution_clock::now() + duration;
215 while (std::chrono::high_resolution_clock::now() < end_time)
216 {
217- mir_buffer_stream_swap_buffers_sync(mir_surface_get_buffer_stream(surface));
218+ mir_buffer_stream_swap_buffers_sync(mir_window_get_buffer_stream(surface));
219 results->record_frame_time(std::chrono::high_resolution_clock::now());
220 }
221 }
222@@ -106,11 +106,11 @@
223 */
224 mir_connection_set_lifecycle_event_callback(connection, null_lifecycle_callback, nullptr);
225
226- auto surface = create_surface(connection);
227+ auto window = create_window(connection);
228
229- collect_input_and_frame_timing(surface, client_ready, touch_duration, results_);
230+ collect_input_and_frame_timing(window, client_ready, touch_duration, results_);
231
232- mir_surface_release_sync(surface);
233+ mir_window_release_sync(window);
234 mir_connection_release(connection);
235 }
236
237
238=== modified file 'benchmarks/touch_event_latency.py'
239--- benchmarks/touch_event_latency.py 2015-07-02 14:40:40 +0000
240+++ benchmarks/touch_event_latency.py 2017-06-05 10:47:45 +0000
241@@ -57,13 +57,9 @@
242
243 ####### TEST #######
244
245-# Disable input resampling so that the event_time field of input events,
246-# used to calculate latency, is accurate
247-no_resampling_env = {"MIR_CLIENT_INPUT_RATE": "0"}
248-
249 host = Server(reports=["input"])
250-nested = Server(host=host, reports=["client-input-receiver"], env=no_resampling_env)
251-client = Client(server=nested, reports=["client-input-receiver"], options=["-f"], env=no_resampling_env)
252+nested = Server(host=host, reports=["client-input-receiver"])
253+client = Client(server=nested, reports=["client-input-receiver"], options=["-f"])
254
255 test = PerformanceTest([host, nested, client])
256 touch_screen = TouchScreen()
257
258=== modified file 'cmake/FindGtestGmock.cmake'
259--- cmake/FindGtestGmock.cmake 2016-05-03 06:55:25 +0000
260+++ cmake/FindGtestGmock.cmake 2017-06-05 10:47:45 +0000
261@@ -1,24 +1,44 @@
262 include(ExternalProject)
263 include(FindPackageHandleStandardArgs)
264
265+#
266+# When cross compiling MIR_CHROOT points to our chroot.
267+# When not cross compiling, it should be blank to use the host system.
268+#
269+set(usr ${MIR_CHROOT}/usr)
270+
271+if (EXISTS ${usr}/src/googletest)
272+ set (USING_GOOGLETEST_1_8 TRUE)
273+ set (GTEST_INSTALL_DIR ${usr}/src/googletest/googletest/include)
274+else()
275+ set (GTEST_INSTALL_DIR ${usr}/src/gmock/gtest/include)
276+endif()
277+
278 #gtest
279-set(GTEST_INSTALL_DIR /usr/src/gmock/gtest/include)
280-find_path(GTEST_INCLUDE_DIR gtest/gtest.h
281- HINTS ${GTEST_INSTALL_DIR})
282+find_path(
283+ GTEST_INCLUDE_DIR gtest/gtest.h
284+ HINTS ${GTEST_INSTALL_DIR}
285+)
286
287 #gmock
288-find_path(GMOCK_INSTALL_DIR gmock/CMakeLists.txt
289- HINTS /usr/src)
290+find_path(
291+ GMOCK_INSTALL_DIR CMakeLists.txt
292+ HINTS ${usr}/src/googletest ${usr}/src/gmock)
293 if(${GMOCK_INSTALL_DIR} STREQUAL "GMOCK_INSTALL_DIR-NOTFOUND")
294 message(FATAL_ERROR "google-mock package not found")
295 endif()
296
297-set(GMOCK_INSTALL_DIR ${GMOCK_INSTALL_DIR}/gmock)
298 find_path(GMOCK_INCLUDE_DIR gmock/gmock.h)
299
300-set(GMOCK_PREFIX gmock)
301-set(GMOCK_BINARY_DIR ${CMAKE_BINARY_DIR}/${GMOCK_PREFIX}/libs)
302-set(GTEST_BINARY_DIR ${GMOCK_BINARY_DIR}/gtest)
303+if (USING_GOOGLETEST_1_8)
304+ set(GMOCK_BASE_BINARY_DIR ${CMAKE_BINARY_DIR}/gmock/libs)
305+ set(GMOCK_BINARY_DIR ${GMOCK_BASE_BINARY_DIR}/googlemock)
306+ set(GTEST_BINARY_DIR ${GMOCK_BINARY_DIR}/gtest)
307+else()
308+ set(GMOCK_BASE_BINARY_DIR ${CMAKE_BINARY_DIR}/gmock/libs)
309+ set(GMOCK_BINARY_DIR ${GMOCK_BASE_BINARY_DIR})
310+ set(GTEST_BINARY_DIR ${GMOCK_BINARY_DIR}/gtest)
311+endif()
312
313 set(GTEST_CXX_FLAGS "-fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64")
314 if (cmake_build_type_lower MATCHES "threadsanitizer")
315@@ -30,13 +50,18 @@
316 set(GTEST_CMAKE_ARGS "-DCMAKE_CXX_FLAGS=${GTEST_CXX_FLAGS}")
317 list(APPEND GTEST_CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER})
318 list(APPEND GTEST_CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER})
319+
320+if (USING_GOOGLETEST_1_8)
321+ list(APPEND GTEST_CMAKE_ARGS -DBUILD_GTEST=ON)
322+endif()
323+
324 if (cmake_build_type_lower MATCHES "threadsanitizer")
325 #Skip compiler check, since if GCC is the compiler, we need to link against -ltsan
326 #explicitly; specifying additional linker flags doesn't seem possible for external projects
327 list(APPEND GTEST_CMAKE_ARGS -DCMAKE_CXX_COMPILER_WORKS=1)
328 endif()
329 if (${CMAKE_CROSSCOMPILING})
330- if(DEFINED MIR_NDK_PATH)
331+ if(DEFINED MIR_CHROOT)
332 list(APPEND GTEST_CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE=${CMAKE_MODULE_PATH}/LinuxCrossCompile.cmake)
333 else()
334 list(APPEND GTEST_CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER})
335@@ -52,7 +77,7 @@
336 SOURCE_DIR ${GMOCK_INSTALL_DIR}
337 #forward the compilers to the subproject so cross-arch builds work
338 CMAKE_ARGS ${GTEST_CMAKE_ARGS}
339- BINARY_DIR ${GMOCK_BINARY_DIR}
340+ BINARY_DIR ${GMOCK_BASE_BINARY_DIR}
341
342 #we don't need to install, so skip
343 INSTALL_COMMAND ""
344
345=== modified file 'cmake/LinuxCrossCompile.cmake'
346--- cmake/LinuxCrossCompile.cmake 2016-01-29 08:18:22 +0000
347+++ cmake/LinuxCrossCompile.cmake 2017-06-05 10:47:45 +0000
348@@ -1,7 +1,7 @@
349 set(CMAKE_SYSTEM_NAME Linux)
350 set(CMAKE_SYSTEM_VERSION 1)
351
352-set(MIR_NDK_PATH $ENV{MIR_NDK_PATH} CACHE STRING "path of mir android bundle")
353+set(MIR_CHROOT $ENV{MIR_CHROOT} CACHE STRING "path of mir android bundle")
354
355 if (NOT DEFINED MIR_TARGET_MACHINE)
356 set(MIR_TARGET_MACHINE $ENV{MIR_TARGET_MACHINE} CACHE STRING "target machine")
357@@ -14,28 +14,28 @@
358 set(CMAKE_CXX_COMPILER /usr/bin/${MIR_TARGET_MACHINE}-g++${MIR_GCC_VARIANT})
359
360 # where to look to find dependencies in the target environment
361-set(CMAKE_FIND_ROOT_PATH "${MIR_NDK_PATH}")
362+set(CMAKE_FIND_ROOT_PATH "${MIR_CHROOT}")
363
364 #treat the chroot's includes as system includes
365-include_directories(SYSTEM "${MIR_NDK_PATH}/usr/include" "${MIR_NDK_PATH}/usr/include/${MIR_TARGET_MACHINE}")
366-list(APPEND CMAKE_SYSTEM_INCLUDE_PATH "${MIR_NDK_PATH}/usr/include" "${MIR_NDK_PATH}/usr/include/${MIR_TARGET_MACHINE}" )
367+include_directories(SYSTEM "${MIR_CHROOT}/usr/include" "${MIR_CHROOT}/usr/include/${MIR_TARGET_MACHINE}")
368+list(APPEND CMAKE_SYSTEM_INCLUDE_PATH "${MIR_CHROOT}/usr/include" "${MIR_CHROOT}/usr/include/${MIR_TARGET_MACHINE}" )
369
370 # Add the chroot libraries as system libraries
371 list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
372- "${MIR_NDK_PATH}/lib"
373- "${MIR_NDK_PATH}/lib/${MIR_TARGET_MACHINE}"
374- "${MIR_NDK_PATH}/usr/lib"
375- "${MIR_NDK_PATH}/usr/lib/${MIR_TARGET_MACHINE}"
376+ "${MIR_CHROOT}/lib"
377+ "${MIR_CHROOT}/lib/${MIR_TARGET_MACHINE}"
378+ "${MIR_CHROOT}/usr/lib"
379+ "${MIR_CHROOT}/usr/lib/${MIR_TARGET_MACHINE}"
380 )
381
382 set(CMAKE_INSTALL_RPATH_USE_LINK_PATH FALSE)
383 set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
384 set(CMAKE_EXECUTABLE_RUNTIME_C_FLAG "-Wl,-rpath-link,")
385 set(CMAKE_EXECUTABLE_RUNTIME_CXX_FLAG "-Wl,-rpath-link,")
386-set(CMAKE_INSTALL_RPATH "${MIR_NDK_PATH}/lib:${MIR_NDK_PATH}/lib/${MIR_TARGET_MACHINE}:${MIR_NDK_PATH}/usr/lib:${MIR_NDK_PATH}/usr/lib/${MIR_TARGET_MACHINE}")
387+set(CMAKE_INSTALL_RPATH "${MIR_CHROOT}/lib:${MIR_CHROOT}/lib/${MIR_TARGET_MACHINE}:${MIR_CHROOT}/usr/lib:${MIR_CHROOT}/usr/lib/${MIR_TARGET_MACHINE}")
388
389-set(ENV{PKG_CONFIG_PATH} "${MIR_NDK_PATH}/usr/lib/pkgconfig:${MIR_NDK_PATH}/usr/lib/${MIR_TARGET_MACHINE}/pkgconfig")
390-set(ENV{PKG_CONFIG_SYSROOT_DIR} "${MIR_NDK_PATH}")
391+set(ENV{PKG_CONFIG_PATH} "${MIR_CHROOT}/usr/lib/pkgconfig:${MIR_CHROOT}/usr/lib/${MIR_TARGET_MACHINE}/pkgconfig")
392+set(ENV{PKG_CONFIG_SYSROOT_DIR} "${MIR_CHROOT}")
393
394 #use only the cross compile system
395 set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
396
397=== modified file 'cmake/MirCommon.cmake'
398--- cmake/MirCommon.cmake 2016-08-09 16:22:39 +0000
399+++ cmake/MirCommon.cmake 2017-06-05 10:47:45 +0000
400@@ -99,7 +99,7 @@
401
402 # Final commands
403 set(test_cmd "${test_cmd}" "--gtest_filter=-${test_no_memcheck_filter}:${test_exclusion_filter}")
404- set(test_cmd_no_memcheck "${test_cmd_no_memcheck}" "--gtest_filter=${test_no_memcheck_filter}:-${test_exclusion_filter}")
405+ set(test_cmd_no_memcheck "${test_cmd_no_memcheck}" "--gtest_death_test_style=threadsafe" "--gtest_filter=${test_no_memcheck_filter}:-${test_exclusion_filter}")
406 if(DETECT_FD_LEAKS)
407 set(test_cmd ${CMAKE_SOURCE_DIR}/tools/detect_fd_leaks.bash ${test_cmd})
408 endif()
409@@ -301,21 +301,3 @@
410 )
411 add_dependencies(${DEPENDENT_TARGET} ${TARGET_NAME})
412 endfunction()
413-
414-function (mir_add_library_with_symbols TARGET TYPE SYMBOLS_FILE)
415- # Bask in the majesty of CMake!
416- #
417- # You can't just depend on an arbitary file. Oh, no!
418- #
419- # Instead, we add a custom command to generate an empty C++ source
420- # file, depending on the symbols file, and then add that empty C++
421- # source to the library.
422- set(HACK_OUTPUT ${TARGET}_abysmal_hack.cpp)
423-
424- add_custom_command(OUTPUT ${HACK_OUTPUT}
425- COMMAND touch ${HACK_OUTPUT}
426- DEPENDS ${SYMBOLS_FILE}
427- )
428-
429- add_library(${TARGET} ${TYPE} ${HACK_OUTPUT} ${ARGN})
430-endfunction()
431
432=== modified file 'cross-compile-chroot.sh'
433--- cross-compile-chroot.sh 2016-06-02 05:33:50 +0000
434+++ cross-compile-chroot.sh 2017-06-05 10:47:45 +0000
435@@ -80,11 +80,11 @@
436 BUILD_DIR=build-${target_arch}-${dist}
437 fi
438
439-if [ "${MIR_NDK_PATH}" = "" ]; then
440- export MIR_NDK_PATH=~/.cache/mir-${target_arch}-chroot-${dist}
441+if [ "${MIR_CHROOT}" = "" ]; then
442+ export MIR_CHROOT=~/.cache/mir-${target_arch}-chroot-${dist}
443 fi
444
445-if [ ! -d ${MIR_NDK_PATH} ]; then
446+if [ ! -d ${MIR_CHROOT} ]; then
447 echo "no partial chroot dir detected. attempting to create one"
448 _do_update_chroot=1
449 fi
450@@ -94,7 +94,7 @@
451 fi
452
453 echo "Building for distro: $dist"
454-echo "Using MIR_NDK_PATH: ${MIR_NDK_PATH}"
455+echo "Using MIR_CHROOT: ${MIR_CHROOT}"
456
457 additional_repositories=
458 if [ ${dist} == "vivid" ] ; then
459@@ -104,6 +104,10 @@
460 gcc_variant=
461 if [ "${dist}" = "vivid" ]; then
462 gcc_variant=-4.9
463+elif [ "${dist}" = "wily" -o "${dist}" = "xenial" ]; then
464+ gcc_variant=-5
465+elif [ "${dist}" = "yakkety" -o "${dist}" = "zesty" ]; then
466+ gcc_variant=-6
467 fi
468
469 case ${target_arch} in
470@@ -147,7 +151,7 @@
471
472 if [ ${_do_update_chroot} -eq 1 ] ; then
473 pushd tools > /dev/null
474- ./setup-partial-armhf-chroot.sh -d ${dist} -a ${target_arch} ${additional_repositories} ${MIR_NDK_PATH}
475+ ./setup-partial-armhf-chroot.sh -d ${dist} -a ${target_arch} ${additional_repositories} ${MIR_CHROOT}
476 popd > /dev/null
477 # force a clean build after an update, since CMake cache maybe out of date
478 clean_build_dir ${BUILD_DIR}
479@@ -155,17 +159,19 @@
480
481 pushd ${BUILD_DIR} > /dev/null
482
483- export PKG_CONFIG_PATH="${MIR_NDK_PATH}/usr/lib/pkgconfig:${MIR_NDK_PATH}/usr/lib/${target_machine}/pkgconfig"
484+ export PKG_CONFIG_PATH="${MIR_CHROOT}/usr/lib/pkgconfig:${MIR_CHROOT}/usr/lib/${target_machine}/pkgconfig"
485 export PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1
486 export PKG_CONFIG_ALLOW_SYSTEM_LIBS=1
487- export PKG_CONFIG_SYSROOT_DIR=$MIR_NDK_PATH
488+ export PKG_CONFIG_SYSROOT_DIR=$MIR_CHROOT
489 export PKG_CONFIG_EXECUTABLE=`which pkg-config`
490 export MIR_TARGET_MACHINE=${target_machine}
491 export MIR_GCC_VARIANT=${gcc_variant}
492+ export CMAKE_PREFIX_PATH=$MIR_CHROOT/usr/lib/${target_machine}/cmake
493 echo "Using PKG_CONFIG_PATH: $PKG_CONFIG_PATH"
494 echo "Using PKG_CONFIG_EXECUTABLE: $PKG_CONFIG_EXECUTABLE"
495 cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/LinuxCrossCompile.cmake \
496 -DMIR_PLATFORM=${mir_platform} -DMIR_ENABLE_TESTS=${enable_tests}\
497+ -DMIR_USE_PRECOMPILED_HEADERS=OFF \
498 ..
499
500 make -j${NUM_JOBS} $@
501
502=== modified file 'debian/changelog'
503--- debian/changelog 2017-06-05 09:28:41 +0000
504+++ debian/changelog 2017-06-05 10:47:45 +0000
505@@ -1,3 +1,362 @@
506+mir (0.26.3) UNRELEASED; urgency=medium
507+
508+ [ Daniel van Vugt ]
509+ * New upstream release 0.26.3 (https://launchpad.net/mir/+milestone/0.26.3)
510+ - Enhancements:
511+ . Make deprecations optional (and default to off for builds on 16.04 LTS)
512+ . Added support for building on Ubuntu 17.10 artful.
513+ - Bugs fixed:
514+ . Mir needs to be updated to 0.26 in 16.04LTS (LP: #1685186)
515+ . unity-system-compositor crashed with SIGSEGV in
516+ libinput_device_config_accel_is_available() from
517+ libinput_device_config_accel_set_speed() from
518+ mir::input::evdev::LibInputDevice::apply_settings() (LP: #1672955)
519+ . Please transition to Boost 1.62 (LP: #1675138)
520+ . Mir sending key repeat events continually to nested shell after VT
521+ switch (causes Unity8 lockup for a while) (LP: #1675357)
522+ . mir_demo_standalone_render_overlays fails to link (LP: #1677239)
523+
524+ -- Alan Griffiths <alan.griffiths@canonical.com> Fri, 26 May 2017 16:57:20 +0000
525+
526+mir (0.26.2) UNRELEASED; urgency=medium
527+
528+ [ Mattia Rizzolo ]
529+ * Patch the code to use unversioned runtime boost libraries (LP: #1675138).
530+
531+ -- Gianfranco Costamagna <locutusofborg@debian.org> Fri, 24 Mar 2017 22:58:36 +0100
532+
533+mir (0.26.2) UNRELEASED; urgency=medium
534+
535+ [ Daniel van Vugt ]
536+ * New upstream release 0.26.2 (https://launchpad.net/mir/+milestone/0.26.2)
537+ - Bugs fixed:
538+ . EDID does not change when hotplugging a monitor (LP: #1660017)
539+ . [regression] mirout crashes when connecting to unity8 or any nested
540+ server: [libprotobuf FATAL /usr/include/google/protobuf/repeated_field.
541+ h:1408] CHECK failed: (index) < (current_size_) (LP: #1661163)
542+ . Mir server crashed with SIGSEGV in
543+ mir::compositor::TemporaryBuffer::size() called from
544+ mir::gl::tessellate_renderable_into_rectangle() (LP: #1664760)
545+ . Nested servers (Unity8) periodically stutter (half frame rate) with
546+ Mir 0.26.1 (LP: #1666372)
547+ . Don't dereference the end iterator in ms::ApplicationSession::
548+ surface_after() (LP: #1667645)
549+ . [regression] OSK input shaping no longer works correctly (LP: #1669444)
550+ . Setting MirWindowSpec parameters always causes window's input_region
551+ to be reset (LP: #1670876)
552+ . Subpixel order not included in Mir display information (LP: #1393578)
553+ . Presentation chains should support various swap interval modes
554+ (LP: #1673533)
555+ . Need an extension for GBM buffers to replace
556+ mir_buffer_get_buffer_package() (LP: #1673534)
557+ . Seg fault on detect_fd_leaks (LP: #1661498)
558+
559+ -- Cemil Azizoglu <cemil.azizoglu@canonical.com> Wed, 22 Mar 2017 04:54:19 +0000
560+
561+mir (0.26.1) UNRELEASED; urgency=medium
562+
563+ * New upstream release 0.26.1 (https://launchpad.net/mir/+milestone/0.26.1)
564+ - ABI summary:
565+ . mirclient ABI unchanged at 9
566+ . mirserver ABI unchanged at 43
567+ . mircommon ABI unchanged at 7
568+ . mirplatform ABI bumped to 15
569+ . mirprotobuf ABI unchanged at 3
570+ . mirplatformgraphics ABI bumped to 12
571+ . mirclientplatform ABI unchanged at 5
572+ . mirinputplatform ABI unchanged at 6
573+ . mircore ABI unchanged at 1
574+ - Enhancements:
575+ . Support for MirBuffer API that allows for better management of
576+ hardware/software buffers.
577+ . Support for MirPresentationChain API that allows better control
578+ over {de}queueing of individual buffers {from}to the server.
579+ . Interim support for MirRenderSurface API that provides a unit of
580+ renderable for lower level content such as MirBufferStreams and
581+ MirPresentationChains, etc.. MirRenderSurface API is marked
582+ deprecated as it (and the relevant entry points) will be renamed to
583+ MirSurface before general availability. It will initially be used for
584+ revamping support for EGL drivers.
585+ . Synchronous version of mir_prompt_session_new_fds_for_prompt_providers()
586+ API (mir_prompt_session_new_fds_for_prompt_providers_sync()) added for
587+ convenience.
588+ . Better name for MirPersistentId-->MirWindowId. MirPersistentId has now
589+ been deprecated.
590+ - Bugs fixed:
591+ . [regression] Unity8 stutters constantly (like half frame rate).
592+ (LP: #1661128)
593+ . mir 0.26 - spinner loading animation, minimize, maximize too fast.
594+ (LP: #1661072)
595+ . [regression] Nested server segfaults or rapidly logs exceptions when a
596+ fullscreen client starts [in mir_presentation_chain_set_dropping_mode
597+ ... std::exception::what: Operation not permitted] (LP: #1661508)
598+ . mir_window_request_persistent_id_sync seg faults when called twice.
599+ (LP: #1661704)
600+ . [regression] Windowed clients of nested servers are all black.
601+ (LP: #1661521)
602+ . Mir graphics platform ABI broke in series 0.26 but sonames never
603+ changed (LP: #1662455)
604+ . Fixes for 0.26 changelog.
605+ . [regression] mirscreencast hangs during screencast creation. (LP: #1662997)
606+ . libmirclient-dev missing build dependency on libmircore-dev. (LP: #1662942)
607+ . mir_window_spec_set_cursor_name() doesn't trigger
608+ mir::scene::SurfaceObserver::cursor_image_set_to. (LP: #1663197)
609+ . [regression] Software clients of nested servers are all black in Mir 0.25.0
610+ and later. (LP: #1663062)
611+
612+ -- Cemil Azizoglu <cemil.azizoglu@canonical.com> Thu, 09 Feb 2017 21:46:32 +0000
613+
614+mir (0.26.0) UNRELEASED; urgency=medium
615+
616+ * New upstream release 0.26.0 (https://launchpad.net/mir/+milestone/0.26.0)
617+ - ABI summary:
618+ . mirclient ABI unchanged at 9
619+ . mirserver ABI bumped to 43
620+ . mircommon ABI unchanged at 7
621+ . mirplatform ABI unchanged at 14
622+ . mirprotobuf ABI unchanged at 3
623+ . mirplatformgraphics ABI unchanged at 11
624+ . mirclientplatform ABI unchanged at 5
625+ . mirinputplatform ABI unchanged at 6
626+ . mircore ABI unchanged at 1
627+ - Enhancements:
628+ . New and improved client APIs: MirInputConfig, MirWindow, DisplayConfig,
629+ MirScreencastSpec.
630+ . Support for setting the input configuration.
631+ . Introduced an extension mechanism for platform-specific APIs.
632+ . Support for screencasting to a specific MirBuffer.
633+ . Added DisplayConfigurationController::base_configuration() so
634+ downstreams can get the base configuration (weirdly they can already
635+ set it).
636+ . X11 platform: Allow adjustable scale parameter.
637+ . Added monitor EDID support to both the client API and server-side.
638+ . mirout: Now shows scaling factor, subpixel arrangement, form factor and
639+ EDID.
640+ . mirout: Can now change the monitor configuration as well as report it.
641+ . Replace the mir::Server-overridable Reports with Observers.
642+ . Deprecate legacy toolkit APIs that will be removed in Mir 1.0
643+ . Introduced client-side vsync which dramatically reduces latency
644+ from the client to the screen, by up to 44ms.
645+ . Removed all input resampling logic. We now expect toolkits to do their
646+ own, if at all. This reduces input lag by up to 16.9ms, or 8.4ms on
647+ average.
648+ - Bugs fixed:
649+ . [performance] Restore support for better-than-triple buffering by
650+ default. (LP: #1240909)
651+ . Frame rate is artificially low on Diamondville Intel Atom systems due
652+ to aggressive power management (LP: #1388490)
653+ . [testsfail] failure in CI in
654+ AndroidInputReceiverSetup.slow_raw_input_doesnt_cause_frameskipping
655+ (LP: #1394369)
656+ . [trusted prompt sessions] Can't open two prompt sessions at the same
657+ time (LP: #1494197)
658+ . Changing scale, formFactor or DPI in display configuration causes
659+ renderer teardown/recreate unnecessarily (LP: #1556142)
660+ . [testsfail] ApplicationNotRespondingDetection.failure_to_pong_is_
661+ noticed (LP: #1570327)
662+ . CI failure in TestClientInput.receives_one_touch_event_per_frame
663+ (LP: #1570698)
664+ . Mir-on-X mouse input is jerky/stuttery compared to Mir-on-KMS
665+ (LP: #1576600)
666+ . [regression] Two fingers in mir_proving_server now resizes/moves app
667+ windows (two finger apps unusable) (LP: #1586311)
668+ . Pointer/cursor input lag in unity8 session (LP: #1591328)
669+ . PointerConfinement.test_we_update_our_confined_region_on_a_resize
670+ (LP: #1606418)
671+ . [ FAILED ] ClientLatency.throttled_input_rate_yields_lower_latency
672+ (LP: #1624188)
673+ . Valgrind failure on mir_acceptance_tests - leak on incoming buffer in
674+ Requests::free_buffer(int) (LP: #1628794)
675+ . Add support for returning monitor EDIDs (LP: #1634868)
676+ . When pointer motion crosses window borders SurfaceInputDispatcher
677+ injected events increase accumulated relative motion (LP: #1639749)
678+ . [ FAILED ] ClientLatency.dropping_latency_is_limited_to_one (AKA
679+ dropping_latency_is_closer_to_zero_than_one) (LP: #1640366)
680+ . Server::override_the_coordinate_translator() cannot be effectively used
681+ downstream (LP: #1641166)
682+ . [regression] FTBFS when cross compiling to yakkety from zesty:
683+ test_client_extensions.cpp: error: ‘Ne’ was not declared in this scope
684+ (LP: #1642473)
685+ . [regression] mir_proving_server crashes with std::exception::what:
686+ add_options() must be called before the_options() (LP: #1642504)
687+ . [ FAILED ] NestedServer.nested_platform_connects_and_disconnects
688+ (LP: #1643432)
689+ . googletest 1.8.0-2 (on zesty) breaks existing builds [add_library
690+ cannot create target "gmock" ...] (LP: #1644062)
691+ . [regression] Those mir_demo_client_* which default to fullscreen now
692+ ignore the size parameter (-s WIDTHxHEIGHT) (LP: #1644075)
693+ . Shell doesn't know when base display config has changed (LP: #1644189)
694+ . miral::ActiveOutputsMonitor (and therefore miral-shell --window-manager
695+ tiling) are broken by lp:mir (LP: #1645284)
696+ . mir_proving_server's four finger swipe to switch apps leaks touch
697+ events to the clients (LP: #1646700)
698+ . [regression] Cross compiling from zesty to yakkety fails with *** No
699+ rule to make target 'gmock/libs/googlemock/gtest/libgtest.a' (LP:
700+ #1646704)
701+ . [ FAILED ] ThreadedDispatcherDeathTest.destroying_dispatcher_from_a_
702+ callback_is_an_error (LP: #1647573)
703+ . [regression] eglapps now all have window title "default" (LP: #1647575)
704+ . Package mirtest-dev is missing a dependency on mir-renderer-gl-dev
705+ (LP: #1651391)
706+ . EDID data is missing in nested servers (LP: #1651633)
707+ . [regression] Latency for fullscreen interval 0 clients (e.g. games and
708+ benchmarks) increased with the introduction of nested passthrough
709+ (LP: #1651638)
710+ . Race between MirConnection::released() and
711+ MirConnection::~MirConnection() causes deadlocks, possible crashes and
712+ memory corruption (LP: #1653658)
713+ . DisplayConfigurationTest.configure_session_removed_display failure
714+ (LP: #1653789)
715+ . [regression] Development headers reference unknown header
716+ "mir_toolkit/mir_input_device_types.h" so some clients can't build at
717+ all any more (LP: #1654023)
718+ . [regression] mir_acceptance_tests' death tests leave behind core files
719+ (LP: #1654478)
720+ . Setting the event handler after the surface has been created does
721+ nothing (LP: #1654612)
722+ . [ FAILED ] RaiseSurfaces.key_event_with_cookie (LP: #1655293)
723+ . Black screen with Raspberry Pi 3 VC4 Mesa driver (LP: #1656164)
724+ . i386 FTBFS:
725+ src/platforms/eglstream-kms/server/kms_display_configuration.cpp:88:47:
726+ error: narrowing conversion of ‘..._drmModeConnector::connector_id’
727+ from ‘uint32_t {aka unsigned int}’ to ‘EGLAttrib {aka int}’ inside { }
728+ [-Werror=narrowing] (LP: #1656633)
729+ . android: overlays no longer are activated (LP: #1657755)
730+ . Mir FTBFS with MIR_USE_PRECOMPILED_HEADERS=OFF: error: ISO C++11
731+ requires at least one argument for the "..." in a variadic macro
732+ [-Werror] (LP: #1658604)
733+ . [regression] Mir cross-compile to vivid/armhf FTBFS with:
734+ mock_input_device_hub.h:33:18: error: ‘add_observer’ is not a type
735+ (LP: #1658605)
736+ . Caught exception at Mir/EGL driver boundary (in setSwapInterval) in
737+ clients and tests (LP: #1659298)
738+ . Support display scaling slider in unity8 (LP: #1645372)
739+
740+ -- Cemil Azizoglu <cemil.azizoglu@canonical.com> Thu, 26 Jan 2017 23:29:33 +0000
741+
742+mir (0.25.0) UNRELEASED; urgency=medium
743+
744+ * New upstream release 0.25.0 (https://launchpad.net/mir/+milestone/0.25.0)
745+ - ABI summary:
746+ . mirclient ABI unchanged at 9
747+ . mirserver ABI bumped to 42
748+ . mircommon ABI bumped to 7
749+ . mirplatform ABI bumped to 14
750+ . mirprotobuf ABI unchanged at 3
751+ . mirplatformgraphics ABI bumped to 11
752+ . mirclientplatform ABI unchanged at 5
753+ . mirinputplatform ABI bumped to 6
754+ . mircore ABI added, at version 1
755+ - Enhancements:
756+ . Added pointer confinement support
757+ . Identify Raspberry Pi output types correctly
758+ . Added dead key and compose key support
759+ . Added gamma support for KMS hardware
760+ . Added yakkety and zesty gcc-6 support
761+ . Added surface passthrough support for fullscreen clients of nested
762+ servers
763+ . Introduced a new library `libmircore'
764+ . Began migrating from Protobuf to Cap'n Proto starting with events
765+ . Began support for VirtualBox (servers now start instead of crashing
766+ but full support for GL clients is still missing)
767+ . Began support for high precision frame timing, implemented for the
768+ KMS, Android and X11 backends so far
769+ . Added --display-report support for the X11 backend
770+ . Improved reliability of `mirvanity' latency test tool
771+ . Moved to using the CSS cursor naming scheme internally, although
772+ the old symbolic indentifiers remain unchanged and still work
773+ . Added refresh rate to MirSurfaceOutputEvent
774+ . Many improvements to automated test quality and coverage
775+ . Smoother desktop zoom using mir_proving_server (Super + two fingers)
776+ - Bugs fixed:
777+ . FTBFS On Zesty: invalid use of
778+ 'struct native_handle' (LP: #1638774)
779+ . libmirclient-debug-extension-dev install debug/surface.h
780+ twice (LP: #1639153)
781+ . Mir crashes on virtual box drmModeCrtcSetGamma
782+ Function not implemented (LP: #1638220)
783+ . Flickering in mir_demo_client_multistream (LP: #1635273)
784+ . Camera apps (camera & vanity) never exit (LP: #1635010)
785+ . Clients cannot connect when MIR_SOCKET="" (LP: #1634508)
786+ . mirtest-dev packaging fails to sepcify boost depends (LP: #1633537)
787+ . cursor.h is unclear about mir_diagonal_resize_* (LP: #1626924)
788+ . Inconsistent underscores in cursor names (LP: #1632617)
789+ . [regression] Accidental libmircommon.so.6 break (LP: #1617865)
790+ . [regression] mir demo server fails to start with mx4 (LP: #1615703)
791+ . [regression] Trust prompt now shown when starting camera (LP: #1612256)
792+ . [regression] make abi-check fails to build (LP: #1626866)
793+ . Nested servers prevent overlays or fullscreen bypass (LP: #1262116)
794+ . Failed to get PRIME fd from gbm bo (LP: #1607812)
795+ . Mir-on-X is difficult to use on 1366x768 laptop (LP: #1590959)
796+ . Remove useless message 'Surface 0 DPI' in demos (LP: #1559831)
797+ . Mir fails to cross-build with newer sbuild (LP: #1628507)
798+ . Infinite loop in AbstractShell::focus_next_session (LP: #1625401)
799+ . Destroying a presentation chain doesn't trigger ownership
800+ notification to client (LP: #1626503)
801+ . Keyboard layout not applied on the shell (LP: #1626435)
802+ . Warning, No syntax specified for the proto file (LP: #1624971)
803+ . display-report=log reports vsync on non-existent output number
804+ (LP: #1621352)
805+ . libmirserver-dev missing uuid-dev depends (LP: #1617435)
806+ . debian/control missing epoxy (LP: #1617256)
807+ . Downstreams need to disable clang diagnostic "-Wreturn-type-clinkage"
808+ to build against public headers (LP: #1615587)
809+ . mirtest-dev: mock_display_configuration.h uses mg namespace without
810+ using it (LP: #1614983)
811+ . FTBFS using clang (LP: #1609612)
812+ . mesa-kms doesn't fall back to using software cursor if hardware
813+ cursor is unavailable (LP: #1610054)
814+ . StubGraphicsPlatform::create_display() leaves a dubious state
815+ (LP: #1611337)
816+ . Mir build/tests fail with gcc-6 and LTO (LP: #1610215)
817+ . Cross compiling on xenial fails (LP: #1609329)
818+ . Building with -DMIR_PLATFORM=anroid fails (LP: #1609916)
819+ . unity-system-compositor crashes on start-up with "Mir fatal error:
820+ Failed to schedule page flip" (LP: #1584894)
821+ . mir_connection_create_spec_for_tooltip doesn't meet requirements
822+ (LP: #1603922)
823+ . Updating surface size/location needs to update the pointer confinement
824+ (LP: #1604673)
825+ . ServerConfigurationOption is not ptest safe (LP: #1607351)
826+ . HWC's vsync_signal_on is never called when using HWC 1.0 (LP: #1613373)
827+ . mir_connection_create_spec_for_tooltip does not set aux_rect
828+ (LP: #1632335)
829+ . VMware virtual connector recognized by Mir as "unknown" (LP: #1248072)
830+ . Fix code to match the documentation of CoordinateTranslator - vis "It is
831+ acceptable ...[to] throw a std::runtime_error" (LP: #1641166)
832+ . Test timeout MesaDisplayConfigurationTests.* (LP: #1613352)
833+ . Tests fail when built against lp:mir (LP: #1621917)
834+ . CI failure MultiThreadedCompositor (LP: #1595940)
835+ . CI failure in DisplayConfiguration (LP: #1563210)
836+ . CI failure NestedServer.given_client_set_display_configuration*
837+ (LP: #1617036)
838+ . CI failure on krillin in NestedServer.* testes (LP: #1628828)
839+ . CI failure: PosixRWMutex hangs (LP: #1633920)
840+ . googletest 1.8.0-2 (on zesty) breaks existing builds [add_library
841+ cannot create target "gmock" ...] (LP: #1644062)
842+
843+ -- Brandon Schaefer <brandon.schaefer@canonical.com> Sat, 03 Dec 2016 12:42:33 +0000
844+
845+mir (0.24.1+16.10.20160928-0ubuntu1) yakkety; urgency=medium
846+
847+ * New upstream release 0.24.1 (https://launchpad.net/mir/+milestone/0.24.1)
848+ - ABI summary:
849+ . All ABI numbers remain unchanged.
850+ . mircommon ABI at 6, but now including a symbol misplaced in 0.24.0
851+ - Bugs fixed:
852+ . mirserver ignored further keymap configuration changes after a keyboard
853+ is configured (LP: #1626435)
854+ . fix for libmircommon.so.6 ABI break: version stanza of
855+ mir::dispatch::ReadableFd* moved to newer version (LP: #1617865)
856+ . clang builds fail (again) (LP: #1609612)
857+ . Valgrind errors in NesterServer.* cause subsequent tests
858+ (ServerDisconnect, ServerStartup, UnresponsiveClient) to fail
859+ (LP: #1612012)
860+ . Break potentially infinite loop in search for next session to focus
861+ (LP: #1625401)
862+
863+ -- Andreas Pokorny <andreas.pokorny@canonical.com> Wed, 28 Sep 2016 12:09:49 +0000
864+
865 mir (0.24.0+16.10.20160815.3-0ubuntu2) yakkety; urgency=medium
866
867 * No-change rebuild for protobuf soname change.
868
869=== modified file 'debian/control'
870--- debian/control 2016-07-21 11:19:35 +0000
871+++ debian/control 2017-06-05 10:47:45 +0000
872@@ -4,7 +4,6 @@
873 Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
874 XSBC-Original-Maintainer: Thomas Voß <thomas.voss@canonical.com>
875 Build-Depends: cmake,
876- cmake-data,
877 pkg-config,
878 debhelper (>= 9),
879 doxygen,
880@@ -29,7 +28,7 @@
881 libandroid-properties-dev [i386 amd64 armhf arm64],
882 libgoogle-glog-dev,
883 liblttng-ust-dev,
884- libxkbcommon-dev,
885+ libxkbcommon-dev (>= 0.5),
886 libumockdev-dev (>= 0.6),
887 umockdev (>= 0.8.7),
888 libudev-dev,
889@@ -46,6 +45,9 @@
890 python3:any,
891 dh-python,
892 nettle-dev,
893+ libcapnp-dev,
894+ capnproto,
895+ libepoxy-dev,
896 Standards-Version: 3.9.4
897 Homepage: https://launchpad.net/mir
898 # If you aren't a member of ~mir-team but need to upload packaging changes,
899@@ -68,7 +70,7 @@
900
901 #TODO: Packaging infrastructure for better dependency generation,
902 # ala pkg-xorg's xviddriver:Provides and ABI detection.
903-Package: libmirserver41
904+Package: libmirserver43
905 Section: libs
906 Architecture: linux-any
907 Multi-Arch: same
908@@ -81,7 +83,7 @@
909 .
910 Contains the shared library needed by server applications for Mir.
911
912-Package: libmirplatform13
913+Package: libmirplatform15
914 Section: libs
915 Architecture: linux-any
916 Multi-Arch: same
917@@ -95,12 +97,25 @@
918 Contains the shared libraries required for the Mir server to interact with
919 the underlying hardware platform.
920
921+Package: libmircore-dev
922+Section: libdevel
923+Architecture: linux-any
924+Multi-Arch: same
925+Pre-Depends: ${misc:Pre-Depends}
926+Depends: ${misc:Depends},
927+Description: Display server for Ubuntu - development headers
928+ Mir is a display server running on linux systems, with a focus on efficiency,
929+ robust operation and a well-defined driver model.
930+ .
931+ Contains header files required for server and/or client development.
932+
933 Package: libmircommon-dev
934 Section: libdevel
935 Architecture: linux-any
936 Multi-Arch: same
937 Pre-Depends: ${misc:Pre-Depends}
938-Depends: libmircommon6 (= ${binary:Version}),
939+Depends: libmircommon7 (= ${binary:Version}),
940+ libmircore-dev (= ${binary:Version}),
941 libprotobuf-dev (>= 2.4.1),
942 libxkbcommon-dev,
943 ${misc:Depends},
944@@ -117,8 +132,8 @@
945 Architecture: linux-any
946 Multi-Arch: same
947 Pre-Depends: ${misc:Pre-Depends}
948-Depends: libmirplatform13 (= ${binary:Version}),
949- libmircommon-dev,
950+Depends: libmirplatform15 (= ${binary:Version}),
951+ libmircommon-dev (= ${binary:Version}),
952 libboost-program-options-dev,
953 ${misc:Depends},
954 Breaks: libmirplatform (<< 0.6)
955@@ -134,10 +149,11 @@
956 Architecture: linux-any
957 Multi-Arch: same
958 Pre-Depends: ${misc:Pre-Depends}
959-Depends: libmirserver41 (= ${binary:Version}),
960+Depends: libmirserver43 (= ${binary:Version}),
961 libmirplatform-dev (= ${binary:Version}),
962 libmircommon-dev (= ${binary:Version}),
963 libglm-dev,
964+ uuid-dev,
965 ${misc:Depends},
966 Description: Display server for Ubuntu - development headers
967 Mir is a display server running on linux systems, with a focus on efficiency,
968@@ -153,6 +169,9 @@
969 Depends: libmircommon-dev (= ${binary:Version}),
970 libmirplatform-dev (= ${binary:Version}),
971 libmirserver-dev (= ${binary:Version}),
972+ mir-renderer-gl-dev (= ${binary:Version}),
973+ libboost-filesystem-dev,
974+ libboost-system-dev,
975 ${misc:Depends},
976 Description: Display server for Ubuntu - test development headers and library
977 Mir is a display server running on linux systems, with a focus on efficiency,
978@@ -288,7 +307,20 @@
979 .
980 Contains a tool for checking the graphics components of android devices.
981
982-Package: libmircommon6
983+Package: libmircore1
984+Section: libs
985+Architecture: linux-any
986+Multi-Arch: same
987+Pre-Depends: ${misc:Pre-Depends}
988+Depends: ${misc:Depends},
989+ ${shlibs:Depends},
990+Description: Display server for Ubuntu - shared library
991+ Mir is a display server running on linux systems, with a focus on efficiency,
992+ robust operation and a well-defined driver model.
993+ .
994+ Contains the shared libraries required for the Mir server and client.
995+
996+Package: libmircommon7
997 Section: libs
998 Architecture: linux-any
999 Multi-Arch: same
1000@@ -302,7 +334,9 @@
1001 Contains the shared libraries required for the Mir server and client.
1002
1003 # Longer-term these drivers should move out-of-tree
1004-Package: mir-platform-graphics-mesa-x10
1005+# Yes, this really should be x12. An unfortunate side-effect of our package
1006+# naming scheme...
1007+Package: mir-platform-graphics-mesa-x12
1008 Section: libs
1009 Architecture: linux-any
1010 Multi-Arch: same
1011@@ -316,7 +350,7 @@
1012 Contains the shared libraries required for the Mir server to interact with
1013 the X11 platform using the Mesa drivers.
1014
1015-Package: mir-platform-graphics-mesa-kms10
1016+Package: mir-platform-graphics-mesa-kms12
1017 Section: libs
1018 Architecture: linux-any
1019 Multi-Arch: same
1020@@ -330,7 +364,7 @@
1021 Contains the shared libraries required for the Mir server to interact with
1022 the hardware platform using the Mesa drivers.
1023
1024-Package: mir-platform-graphics-android10
1025+Package: mir-platform-graphics-android12
1026 Section: libs
1027 Architecture: i386 amd64 armhf arm64
1028 Multi-Arch: same
1029@@ -344,7 +378,7 @@
1030 Contains the shared libraries required for the Mir server to interact with
1031 the hardware platform using the Android drivers.
1032
1033-Package: mir-platform-input-evdev5
1034+Package: mir-platform-input-evdev6
1035 Section: libs
1036 Architecture: linux-any
1037 Multi-Arch: same
1038@@ -377,7 +411,7 @@
1039 Architecture: linux-any
1040 Multi-Arch: same
1041 Pre-Depends: ${misc:Pre-Depends}
1042-Depends: libmirclient-dev,
1043+Depends: libmirclient-dev (= ${binary:Version}),
1044 ${misc:Depends},
1045 Description: Display server for Ubuntu - client platform library for Mesa development files
1046 Mir is a display server running on linux systems, with a focus on efficiency,
1047@@ -406,10 +440,10 @@
1048 Multi-Arch: same
1049 Pre-Depends: ${misc:Pre-Depends}
1050 Depends: ${misc:Depends},
1051- mir-platform-graphics-mesa-kms10,
1052- mir-platform-graphics-mesa-x10,
1053+ mir-platform-graphics-mesa-kms12,
1054+ mir-platform-graphics-mesa-x12,
1055 mir-client-platform-mesa5,
1056- mir-platform-input-evdev5,
1057+ mir-platform-input-evdev6,
1058 Description: Display server for Ubuntu - desktop driver metapackage
1059 Mir is a display server running on linux systems, with a focus on efficiency,
1060 robust operation and a well-defined driver model.
1061@@ -423,9 +457,9 @@
1062 Multi-Arch: same
1063 Pre-Depends: ${misc:Pre-Depends}
1064 Depends: ${misc:Depends},
1065- mir-platform-graphics-android10,
1066+ mir-platform-graphics-android12,
1067 mir-client-platform-android5,
1068- mir-platform-input-evdev5,
1069+ mir-platform-input-evdev6,
1070 Description: Display server for Ubuntu - android driver metapackage
1071 Mir is a display server running on linux systems, with a focus on efficiency,
1072 robust operation and a well-defined driver model.
1073@@ -478,6 +512,20 @@
1074 tests for Mir. It also contains a few interesting performance tests written
1075 using the framework.
1076
1077+Package: libmirrenderer-dev
1078+Section: libdevel
1079+Architecture: linux-any
1080+Multi-Arch: same
1081+Pre-Depends: ${misc:Pre-Depends}
1082+Depends: ${misc:Depends},
1083+ libmircommon-dev (= ${binary:Version}),
1084+ libmirplatform-dev (= ${binary:Version})
1085+Description: Display server for Ubuntu - Renderer development files
1086+ Mir is a display server running on linux systems, with a focus on efficiency,
1087+ robust operation and a well-defined driver model.
1088+ .
1089+ Contains header files required for renderer development.
1090+
1091 Package: mir-renderer-gl-dev
1092 Section: libdevel
1093 Architecture: linux-any
1094
1095=== modified file 'debian/copyright'
1096--- debian/copyright 2016-01-25 17:28:12 +0000
1097+++ debian/copyright 2017-06-05 10:47:45 +0000
1098@@ -1,4 +1,4 @@
1099-Format: http://dep.debian.net/deps/dep5/
1100+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
1101 Upstream-Name: Mir
1102 Upstream-Contact: Thomas Voß <thomas.voss@canonical.com>
1103 Source: http://launchpad.net/mir
1104
1105=== modified file 'debian/libmirclient-dev.install'
1106--- debian/libmirclient-dev.install 2015-06-17 05:20:42 +0000
1107+++ debian/libmirclient-dev.install 2017-06-05 10:47:45 +0000
1108@@ -1,6 +1,8 @@
1109 usr/include/mirclient/mir_toolkit/*.h
1110+usr/include/mirclient/mir_toolkit/extensions/*.h
1111 usr/include/mirclient/mir/events/*.h
1112 usr/include/mirclient/mir/event_printer.h
1113 usr/include/mirclient/mir_toolkit/events
1114+usr/include/mirclient/mir_toolkit/rs/mir_render_surface.h
1115 usr/lib/*/pkgconfig/mirclient.pc
1116 usr/lib/*/libmirclient.so
1117
1118=== renamed file 'debian/libmircommon6.install' => 'debian/libmircommon7.install'
1119--- debian/libmircommon6.install 2016-07-20 11:16:01 +0000
1120+++ debian/libmircommon7.install 2017-06-05 10:47:45 +0000
1121@@ -1,1 +1,1 @@
1122-usr/lib/*/libmircommon.so.6
1123+usr/lib/*/libmircommon.so.7
1124
1125=== added file 'debian/libmircore-dev.install'
1126--- debian/libmircore-dev.install 1970-01-01 00:00:00 +0000
1127+++ debian/libmircore-dev.install 2017-06-05 10:47:45 +0000
1128@@ -0,0 +1,3 @@
1129+usr/include/mircore
1130+usr/lib/*/libmircore.so
1131+usr/lib/*/pkgconfig/mircore.pc
1132
1133=== added file 'debian/libmircore1.install'
1134--- debian/libmircore1.install 1970-01-01 00:00:00 +0000
1135+++ debian/libmircore1.install 2017-06-05 10:47:45 +0000
1136@@ -0,0 +1,1 @@
1137+usr/lib/*/libmircore.so.1
1138
1139=== renamed file 'debian/libmirplatform13.install' => 'debian/libmirplatform15.install'
1140--- debian/libmirplatform13.install 2016-07-07 11:14:26 +0000
1141+++ debian/libmirplatform15.install 2017-06-05 10:47:45 +0000
1142@@ -1,1 +1,1 @@
1143-usr/lib/*/libmirplatform.so.13
1144+usr/lib/*/libmirplatform.so.15
1145
1146=== added file 'debian/libmirrenderer-dev.install'
1147--- debian/libmirrenderer-dev.install 1970-01-01 00:00:00 +0000
1148+++ debian/libmirrenderer-dev.install 2017-06-05 10:47:45 +0000
1149@@ -0,0 +1,2 @@
1150+usr/include/mirrenderer/mir/renderer/*.h
1151+usr/lib/*/pkgconfig/mirrenderer.pc
1152
1153=== renamed file 'debian/libmirserver41.install' => 'debian/libmirserver43.install'
1154--- debian/libmirserver41.install 2016-07-20 11:16:01 +0000
1155+++ debian/libmirserver43.install 2017-06-05 10:47:45 +0000
1156@@ -1,1 +1,1 @@
1157-usr/lib/*/libmirserver.so.41
1158+usr/lib/*/libmirserver.so.43
1159
1160=== renamed file 'debian/mir-platform-graphics-android10.install' => 'debian/mir-platform-graphics-android12.install'
1161--- debian/mir-platform-graphics-android10.install 2016-07-20 04:54:07 +0000
1162+++ debian/mir-platform-graphics-android12.install 2017-06-05 10:47:45 +0000
1163@@ -1,1 +1,1 @@
1164-usr/lib/*/mir/server-platform/graphics-android.so.10
1165+usr/lib/*/mir/server-platform/graphics-android.so.12
1166
1167=== renamed file 'debian/mir-platform-graphics-mesa-kms10.install' => 'debian/mir-platform-graphics-mesa-kms12.install'
1168--- debian/mir-platform-graphics-mesa-kms10.install 2016-07-20 04:54:07 +0000
1169+++ debian/mir-platform-graphics-mesa-kms12.install 2017-06-05 10:47:45 +0000
1170@@ -1,1 +1,1 @@
1171-usr/lib/*/mir/server-platform/graphics-mesa-kms.so.10
1172+usr/lib/*/mir/server-platform/graphics-mesa-kms.so.12
1173
1174=== renamed file 'debian/mir-platform-graphics-mesa-x10.install' => 'debian/mir-platform-graphics-mesa-x12.install'
1175--- debian/mir-platform-graphics-mesa-x10.install 2016-07-20 04:54:07 +0000
1176+++ debian/mir-platform-graphics-mesa-x12.install 2017-06-05 10:47:45 +0000
1177@@ -1,1 +1,1 @@
1178-usr/lib/*/mir/server-platform/server-mesa-x11.so.10
1179+usr/lib/*/mir/server-platform/server-mesa-x11.so.12
1180
1181=== renamed file 'debian/mir-platform-input-evdev5.install' => 'debian/mir-platform-input-evdev6.install'
1182--- debian/mir-platform-input-evdev5.install 2016-01-29 08:18:22 +0000
1183+++ debian/mir-platform-input-evdev6.install 2017-06-05 10:47:45 +0000
1184@@ -1,1 +1,1 @@
1185-usr/lib/*/mir/server-platform/input-evdev.so.5
1186+usr/lib/*/mir/server-platform/input-evdev.so.6
1187
1188=== modified file 'debian/mir-utils.install'
1189--- debian/mir-utils.install 2016-05-03 06:55:25 +0000
1190+++ debian/mir-utils.install 2017-06-05 10:47:45 +0000
1191@@ -1,4 +1,3 @@
1192-usr/bin/mirping
1193 usr/bin/mirvanity
1194 usr/bin/mirout
1195 usr/bin/mirin
1196
1197=== modified file 'debian/rules'
1198--- debian/rules 2016-07-21 11:19:35 +0000
1199+++ debian/rules 2017-06-05 10:47:45 +0000
1200@@ -28,6 +28,11 @@
1201 COMMON_CONFIGURE_OPTIONS += -DMIR_LINK_TIME_OPTIMIZATION=ON
1202 endif
1203
1204+# Disable LTO on s390x, due to failing to build
1205+ifeq ($(DEB_HOST_ARCH),s390x)
1206+ COMMON_CONFIGURE_OPTIONS += -DMIR_LINK_TIME_OPTIMIZATION=OFF
1207+endif
1208+
1209 override_dh_auto_configure:
1210 ifneq ($(filter armhf arm64,$(DEB_HOST_ARCH)),)
1211 dh_auto_configure -- \
1212
1213=== modified file 'doc/Doxyfile.in'
1214--- doc/Doxyfile.in 2015-02-22 07:46:25 +0000
1215+++ doc/Doxyfile.in 2017-06-05 10:47:45 +0000
1216@@ -1,106 +1,122 @@
1217-# Doxyfile 1.8.4
1218+# Doxyfile 1.8.11
1219
1220 # This file describes the settings to be used by the documentation system
1221 # doxygen (www.doxygen.org) for a project.
1222 #
1223-# All text after a double hash (##) is considered a comment and is placed
1224-# in front of the TAG it is preceding .
1225-# All text after a hash (#) is considered a comment and will be ignored.
1226+# All text after a double hash (##) is considered a comment and is placed in
1227+# front of the TAG it is preceding.
1228+#
1229+# All text after a single hash (#) is considered a comment and will be ignored.
1230 # The format is:
1231-# TAG = value [value, ...]
1232-# For lists items can also be appended using:
1233-# TAG += value [value, ...]
1234-# Values that contain spaces should be placed between quotes (" ").
1235+# TAG = value [value, ...]
1236+# For lists, items can also be appended using:
1237+# TAG += value [value, ...]
1238+# Values that contain spaces should be placed between quotes (\" \").
1239
1240 #---------------------------------------------------------------------------
1241 # Project related configuration options
1242 #---------------------------------------------------------------------------
1243
1244 # This tag specifies the encoding used for all characters in the config file
1245-# that follow. The default is UTF-8 which is also the encoding used for all
1246-# text before the first occurrence of this tag. Doxygen uses libiconv (or the
1247-# iconv built into libc) for the transcoding. See
1248-# http://www.gnu.org/software/libiconv for the list of possible encodings.
1249+# that follow. The default is UTF-8 which is also the encoding used for all text
1250+# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
1251+# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
1252+# for the list of possible encodings.
1253+# The default value is: UTF-8.
1254
1255 DOXYFILE_ENCODING = UTF-8
1256
1257-# The PROJECT_NAME tag is a single word (or sequence of words) that should
1258-# identify the project. Note that if you do not use Doxywizard you need
1259-# to put quotes around the project name if it contains spaces.
1260+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
1261+# double-quotes, unless you are using Doxywizard) that should identify the
1262+# project for which the documentation is generated. This name is used in the
1263+# title of most generated pages and in a few other places.
1264+# The default value is: My Project.
1265
1266 PROJECT_NAME = Mir
1267
1268-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
1269-# This could be handy for archiving the generated documentation or
1270-# if some version control system is used.
1271+# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
1272+# could be handy for archiving the generated documentation or if some version
1273+# control system is used.
1274
1275 PROJECT_NUMBER =
1276
1277 # Using the PROJECT_BRIEF tag one can provide an optional one line description
1278-# for a project that appears at the top of each page and should give viewer
1279-# a quick idea about the purpose of the project. Keep the description short.
1280+# for a project that appears at the top of each page and should give viewer a
1281+# quick idea about the purpose of the project. Keep the description short.
1282
1283 PROJECT_BRIEF =
1284
1285-# With the PROJECT_LOGO tag one can specify an logo or icon that is
1286-# included in the documentation. The maximum height of the logo should not
1287-# exceed 55 pixels and the maximum width should not exceed 200 pixels.
1288-# Doxygen will copy the logo to the output directory.
1289+# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
1290+# in the documentation. The maximum height of the logo should not exceed 55
1291+# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
1292+# the logo to the output directory.
1293
1294 PROJECT_LOGO =
1295
1296-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
1297-# base path where the generated documentation will be put.
1298-# If a relative path is entered, it will be relative to the location
1299-# where doxygen was started. If left blank the current directory will be used.
1300+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
1301+# into which the generated documentation will be written. If a relative path is
1302+# entered, it will be relative to the location where doxygen was started. If
1303+# left blank the current directory will be used.
1304
1305 OUTPUT_DIRECTORY = @CMAKE_CURRENT_BINARY_DIR@/doc
1306
1307-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
1308-# 4096 sub-directories (in 2 levels) under the output directory of each output
1309-# format and will distribute the generated files over these directories.
1310-# Enabling this option can be useful when feeding doxygen a huge amount of
1311-# source files, where putting all generated files in the same directory would
1312-# otherwise cause performance problems for the file system.
1313+# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
1314+# directories (in 2 levels) under the output directory of each output format and
1315+# will distribute the generated files over these directories. Enabling this
1316+# option can be useful when feeding doxygen a huge amount of source files, where
1317+# putting all generated files in the same directory would otherwise causes
1318+# performance problems for the file system.
1319+# The default value is: NO.
1320
1321 CREATE_SUBDIRS = NO
1322
1323+# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
1324+# characters to appear in the names of generated files. If set to NO, non-ASCII
1325+# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
1326+# U+3044.
1327+# The default value is: NO.
1328+
1329+ALLOW_UNICODE_NAMES = NO
1330+
1331 # The OUTPUT_LANGUAGE tag is used to specify the language in which all
1332 # documentation generated by doxygen is written. Doxygen will use this
1333 # information to generate all constant output in the proper language.
1334-# The default language is English, other supported languages are:
1335-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
1336-# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
1337-# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
1338-# messages), Korean, Korean-en, Latvian, Lithuanian, Norwegian, Macedonian,
1339-# Persian, Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic,
1340-# Slovak, Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
1341+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
1342+# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
1343+# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
1344+# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
1345+# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
1346+# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
1347+# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
1348+# Ukrainian and Vietnamese.
1349+# The default value is: English.
1350
1351 OUTPUT_LANGUAGE = English
1352
1353-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
1354-# include brief member descriptions after the members that are listed in
1355-# the file and class documentation (similar to JavaDoc).
1356-# Set to NO to disable this.
1357+# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
1358+# descriptions after the members that are listed in the file and class
1359+# documentation (similar to Javadoc). Set to NO to disable this.
1360+# The default value is: YES.
1361
1362 BRIEF_MEMBER_DESC = YES
1363
1364-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
1365-# the brief description of a member or function before the detailed description.
1366-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
1367+# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
1368+# description of a member or function before the detailed description
1369+#
1370+# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
1371 # brief descriptions will be completely suppressed.
1372+# The default value is: YES.
1373
1374 REPEAT_BRIEF = YES
1375
1376-# This tag implements a quasi-intelligent brief description abbreviator
1377-# that is used to form the text in various listings. Each string
1378-# in this list, if found as the leading text of the brief description, will be
1379-# stripped from the text and the result after processing the whole list, is
1380-# used as the annotated text. Otherwise, the brief description is used as-is.
1381-# If left blank, the following values are used ("$name" is automatically
1382-# replaced with the name of the entity): "The $name class" "The $name widget"
1383-# "The $name file" "is" "provides" "specifies" "contains"
1384-# "represents" "a" "an" "the"
1385+# This tag implements a quasi-intelligent brief description abbreviator that is
1386+# used to form the text in various listings. Each string in this list, if found
1387+# as the leading text of the brief description, will be stripped from the text
1388+# and the result, after processing the whole list, is used as the annotated
1389+# text. Otherwise, the brief description is used as-is. If left blank, the
1390+# following values are used ($name is automatically replaced with the name of
1391+# the entity):The $name class, The $name widget, The $name file, is, provides,
1392+# specifies, contains, represents, a, an and the.
1393
1394 ABBREVIATE_BRIEF = "The $name class" \
1395 "The $name widget" \
1396@@ -115,8 +131,9 @@
1397 the
1398
1399 # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
1400-# Doxygen will generate a detailed section even if there is only a brief
1401+# doxygen will generate a detailed section even if there is only a brief
1402 # description.
1403+# The default value is: NO.
1404
1405 ALWAYS_DETAILED_SEC = NO
1406
1407@@ -124,231 +141,276 @@
1408 # inherited members of a class in the documentation of that class as if those
1409 # members were ordinary class members. Constructors, destructors and assignment
1410 # operators of the base classes will not be shown.
1411+# The default value is: NO.
1412
1413 INLINE_INHERITED_MEMB = NO
1414
1415-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
1416-# path before files name in the file list and in the header files. If set
1417-# to NO the shortest path that makes the file name unique will be used.
1418+# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
1419+# before files name in the file list and in the header files. If set to NO the
1420+# shortest path that makes the file name unique will be used
1421+# The default value is: YES.
1422
1423 FULL_PATH_NAMES = YES
1424
1425-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
1426-# can be used to strip a user-defined part of the path. Stripping is
1427-# only done if one of the specified strings matches the left-hand part of
1428-# the path. The tag can be used to show relative paths in the file list.
1429-# If left blank the directory from which doxygen is run is used as the
1430-# path to strip. Note that you specify absolute paths here, but also
1431-# relative paths, which will be relative from the directory where doxygen is
1432-# started.
1433+# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
1434+# Stripping is only done if one of the specified strings matches the left-hand
1435+# part of the path. The tag can be used to show relative paths in the file list.
1436+# If left blank the directory from which doxygen is run is used as the path to
1437+# strip.
1438+#
1439+# Note that you can specify absolute paths here, but also relative paths, which
1440+# will be relative from the directory where doxygen is started.
1441+# This tag requires that the tag FULL_PATH_NAMES is set to YES.
1442
1443 STRIP_FROM_PATH = @CMAKE_CURRENT_SOURCE_DIR@
1444
1445-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
1446-# the path mentioned in the documentation of a class, which tells
1447-# the reader which header file to include in order to use a class.
1448-# If left blank only the name of the header file containing the class
1449-# definition is used. Otherwise one should specify the include paths that
1450-# are normally passed to the compiler using the -I flag.
1451+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
1452+# path mentioned in the documentation of a class, which tells the reader which
1453+# header file to include in order to use a class. If left blank only the name of
1454+# the header file containing the class definition is used. Otherwise one should
1455+# specify the list of include paths that are normally passed to the compiler
1456+# using the -I flag.
1457
1458 STRIP_FROM_INC_PATH =
1459
1460-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
1461-# (but less readable) file names. This can be useful if your file system
1462-# doesn't support long names like on DOS, Mac, or CD-ROM.
1463+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
1464+# less readable) file names. This can be useful is your file systems doesn't
1465+# support long names like on DOS, Mac, or CD-ROM.
1466+# The default value is: NO.
1467
1468 SHORT_NAMES = NO
1469
1470-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
1471-# will interpret the first line (until the first dot) of a JavaDoc-style
1472-# comment as the brief description. If set to NO, the JavaDoc
1473-# comments will behave just like regular Qt-style comments
1474-# (thus requiring an explicit @brief command for a brief description.)
1475+# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
1476+# first line (until the first dot) of a Javadoc-style comment as the brief
1477+# description. If set to NO, the Javadoc-style will behave just like regular Qt-
1478+# style comments (thus requiring an explicit @brief command for a brief
1479+# description.)
1480+# The default value is: NO.
1481
1482 JAVADOC_AUTOBRIEF = YES
1483
1484-# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
1485-# interpret the first line (until the first dot) of a Qt-style
1486-# comment as the brief description. If set to NO, the comments
1487-# will behave just like regular Qt-style comments (thus requiring
1488-# an explicit \brief command for a brief description.)
1489+# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
1490+# line (until the first dot) of a Qt-style comment as the brief description. If
1491+# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
1492+# requiring an explicit \brief command for a brief description.)
1493+# The default value is: NO.
1494
1495 QT_AUTOBRIEF = NO
1496
1497-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
1498-# treat a multi-line C++ special comment block (i.e. a block of //! or ///
1499-# comments) as a brief description. This used to be the default behaviour.
1500-# The new default is to treat a multi-line C++ comment block as a detailed
1501-# description. Set this tag to YES if you prefer the old behaviour instead.
1502+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
1503+# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
1504+# a brief description. This used to be the default behavior. The new default is
1505+# to treat a multi-line C++ comment block as a detailed description. Set this
1506+# tag to YES if you prefer the old behavior instead.
1507+#
1508+# Note that setting this tag to YES also means that rational rose comments are
1509+# not recognized any more.
1510+# The default value is: NO.
1511
1512 MULTILINE_CPP_IS_BRIEF = YES
1513
1514-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
1515-# member inherits the documentation from any documented member that it
1516-# re-implements.
1517+# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
1518+# documentation from any documented member that it re-implements.
1519+# The default value is: YES.
1520
1521 INHERIT_DOCS = YES
1522
1523-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
1524-# a new page for each member. If set to NO, the documentation of a member will
1525-# be part of the file/class/namespace that contains it.
1526+# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
1527+# page for each member. If set to NO, the documentation of a member will be part
1528+# of the file/class/namespace that contains it.
1529+# The default value is: NO.
1530
1531 SEPARATE_MEMBER_PAGES = NO
1532
1533-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
1534-# Doxygen uses this value to replace tabs by spaces in code fragments.
1535+# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
1536+# uses this value to replace tabs by spaces in code fragments.
1537+# Minimum value: 1, maximum value: 16, default value: 4.
1538
1539 TAB_SIZE = 4
1540
1541-# This tag can be used to specify a number of aliases that acts
1542-# as commands in the documentation. An alias has the form "name=value".
1543-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
1544-# put the command \sideeffect (or @sideeffect) in the documentation, which
1545-# will result in a user-defined paragraph with heading "Side Effects:".
1546-# You can put \n's in the value part of an alias to insert newlines.
1547+# This tag can be used to specify a number of aliases that act as commands in
1548+# the documentation. An alias has the form:
1549+# name=value
1550+# For example adding
1551+# "sideeffect=@par Side Effects:\n"
1552+# will allow you to put the command \sideeffect (or @sideeffect) in the
1553+# documentation, which will result in a user-defined paragraph with heading
1554+# "Side Effects:". You can put \n's in the value part of an alias to insert
1555+# newlines.
1556
1557 ALIASES =
1558
1559 # This tag can be used to specify a number of word-keyword mappings (TCL only).
1560-# A mapping has the form "name=value". For example adding
1561-# "class=itcl::class" will allow you to use the command class in the
1562-# itcl::class meaning.
1563+# A mapping has the form "name=value". For example adding "class=itcl::class"
1564+# will allow you to use the command class in the itcl::class meaning.
1565
1566 TCL_SUBST =
1567
1568-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
1569-# sources only. Doxygen will then generate output that is more tailored for C.
1570-# For instance, some of the names that are used will be different. The list
1571-# of all members will be omitted, etc.
1572+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
1573+# only. Doxygen will then generate output that is more tailored for C. For
1574+# instance, some of the names that are used will be different. The list of all
1575+# members will be omitted, etc.
1576+# The default value is: NO.
1577
1578 OPTIMIZE_OUTPUT_FOR_C = NO
1579
1580-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
1581-# sources only. Doxygen will then generate output that is more tailored for
1582-# Java. For instance, namespaces will be presented as packages, qualified
1583-# scopes will look different, etc.
1584+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
1585+# Python sources only. Doxygen will then generate output that is more tailored
1586+# for that language. For instance, namespaces will be presented as packages,
1587+# qualified scopes will look different, etc.
1588+# The default value is: NO.
1589
1590 OPTIMIZE_OUTPUT_JAVA = NO
1591
1592 # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
1593-# sources only. Doxygen will then generate output that is more tailored for
1594-# Fortran.
1595+# sources. Doxygen will then generate output that is tailored for Fortran.
1596+# The default value is: NO.
1597
1598 OPTIMIZE_FOR_FORTRAN = NO
1599
1600 # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
1601-# sources. Doxygen will then generate output that is tailored for
1602-# VHDL.
1603+# sources. Doxygen will then generate output that is tailored for VHDL.
1604+# The default value is: NO.
1605
1606 OPTIMIZE_OUTPUT_VHDL = NO
1607
1608 # Doxygen selects the parser to use depending on the extension of the files it
1609 # parses. With this tag you can assign which parser to use for a given
1610 # extension. Doxygen has a built-in mapping, but you can override or extend it
1611-# using this tag. The format is ext=language, where ext is a file extension,
1612-# and language is one of the parsers supported by doxygen: IDL, Java,
1613-# Javascript, CSharp, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL, C,
1614-# C++. For instance to make doxygen treat .inc files as Fortran files (default
1615-# is PHP), and .f files as C (default is Fortran), use: inc=Fortran f=C. Note
1616-# that for custom extensions you also need to set FILE_PATTERNS otherwise the
1617-# files are not read by doxygen.
1618+# using this tag. The format is ext=language, where ext is a file extension, and
1619+# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
1620+# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
1621+# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
1622+# Fortran. In the later case the parser tries to guess whether the code is fixed
1623+# or free formatted code, this is the default for Fortran type files), VHDL. For
1624+# instance to make doxygen treat .inc files as Fortran files (default is PHP),
1625+# and .f files as C (default is Fortran), use: inc=Fortran f=C.
1626+#
1627+# Note: For files without extension you can use no_extension as a placeholder.
1628+#
1629+# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
1630+# the files are not read by doxygen.
1631
1632 EXTENSION_MAPPING =
1633
1634-# If MARKDOWN_SUPPORT is enabled (the default) then doxygen pre-processes all
1635-# comments according to the Markdown format, which allows for more readable
1636+# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
1637+# according to the Markdown format, which allows for more readable
1638 # documentation. See http://daringfireball.net/projects/markdown/ for details.
1639-# The output of markdown processing is further processed by doxygen, so you
1640-# can mix doxygen, HTML, and XML commands with Markdown formatting.
1641-# Disable only in case of backward compatibilities issues.
1642+# The output of markdown processing is further processed by doxygen, so you can
1643+# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
1644+# case of backward compatibilities issues.
1645+# The default value is: YES.
1646
1647 MARKDOWN_SUPPORT = YES
1648
1649 # When enabled doxygen tries to link words that correspond to documented
1650 # classes, or namespaces to their corresponding documentation. Such a link can
1651-# be prevented in individual cases by by putting a % sign in front of the word
1652-# or globally by setting AUTOLINK_SUPPORT to NO.
1653+# be prevented in individual cases by putting a % sign in front of the word or
1654+# globally by setting AUTOLINK_SUPPORT to NO.
1655+# The default value is: YES.
1656
1657 AUTOLINK_SUPPORT = YES
1658
1659 # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
1660-# to include (a tag file for) the STL sources as input, then you should
1661-# set this tag to YES in order to let doxygen match functions declarations and
1662-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
1663-# func(std::string) {}). This also makes the inheritance and collaboration
1664+# to include (a tag file for) the STL sources as input, then you should set this
1665+# tag to YES in order to let doxygen match functions declarations and
1666+# definitions whose arguments contain STL classes (e.g. func(std::string);
1667+# versus func(std::string) {}). This also make the inheritance and collaboration
1668 # diagrams that involve STL classes more complete and accurate.
1669+# The default value is: NO.
1670
1671 BUILTIN_STL_SUPPORT = YES
1672
1673 # If you use Microsoft's C++/CLI language, you should set this option to YES to
1674 # enable parsing support.
1675+# The default value is: NO.
1676
1677 CPP_CLI_SUPPORT = NO
1678
1679-# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
1680-# Doxygen will parse them like normal C++ but will assume all classes use public
1681-# instead of private inheritance when no explicit protection keyword is present.
1682+# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
1683+# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
1684+# will parse them like normal C++ but will assume all classes use public instead
1685+# of private inheritance when no explicit protection keyword is present.
1686+# The default value is: NO.
1687
1688 SIP_SUPPORT = NO
1689
1690 # For Microsoft's IDL there are propget and propput attributes to indicate
1691-# getter and setter methods for a property. Setting this option to YES (the
1692-# default) will make doxygen replace the get and set methods by a property in
1693-# the documentation. This will only work if the methods are indeed getting or
1694-# setting a simple type. If this is not the case, or you want to show the
1695-# methods anyway, you should set this option to NO.
1696+# getter and setter methods for a property. Setting this option to YES will make
1697+# doxygen to replace the get and set methods by a property in the documentation.
1698+# This will only work if the methods are indeed getting or setting a simple
1699+# type. If this is not the case, or you want to show the methods anyway, you
1700+# should set this option to NO.
1701+# The default value is: YES.
1702
1703 IDL_PROPERTY_SUPPORT = YES
1704
1705 # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
1706-# tag is set to YES, then doxygen will reuse the documentation of the first
1707+# tag is set to YES then doxygen will reuse the documentation of the first
1708 # member in the group (if any) for the other members of the group. By default
1709 # all members of a group must be documented explicitly.
1710+# The default value is: NO.
1711
1712 DISTRIBUTE_GROUP_DOC = NO
1713
1714-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
1715-# the same type (for instance a group of public functions) to be put as a
1716-# subgroup of that type (e.g. under the Public Functions section). Set it to
1717-# NO to prevent subgrouping. Alternatively, this can be done per class using
1718-# the \nosubgrouping command.
1719+# If one adds a struct or class to a group and this option is enabled, then also
1720+# any nested class or struct is added to the same group. By default this option
1721+# is disabled and one has to add nested compounds explicitly via \ingroup.
1722+# The default value is: NO.
1723+
1724+GROUP_NESTED_COMPOUNDS = NO
1725+
1726+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
1727+# (for instance a group of public functions) to be put as a subgroup of that
1728+# type (e.g. under the Public Functions section). Set it to NO to prevent
1729+# subgrouping. Alternatively, this can be done per class using the
1730+# \nosubgrouping command.
1731+# The default value is: YES.
1732
1733 SUBGROUPING = YES
1734
1735-# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and
1736-# unions are shown inside the group in which they are included (e.g. using
1737-# @ingroup) instead of on a separate page (for HTML and Man pages) or
1738-# section (for LaTeX and RTF).
1739+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
1740+# are shown inside the group in which they are included (e.g. using \ingroup)
1741+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
1742+# and RTF).
1743+#
1744+# Note that this feature does not work in combination with
1745+# SEPARATE_MEMBER_PAGES.
1746+# The default value is: NO.
1747
1748 INLINE_GROUPED_CLASSES = NO
1749
1750-# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and
1751-# unions with only public data fields or simple typedef fields will be shown
1752-# inline in the documentation of the scope in which they are defined (i.e. file,
1753+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
1754+# with only public data fields or simple typedef fields will be shown inline in
1755+# the documentation of the scope in which they are defined (i.e. file,
1756 # namespace, or group documentation), provided this scope is documented. If set
1757-# to NO (the default), structs, classes, and unions are shown on a separate
1758-# page (for HTML and Man pages) or section (for LaTeX and RTF).
1759+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
1760+# Man pages) or section (for LaTeX and RTF).
1761+# The default value is: NO.
1762
1763 INLINE_SIMPLE_STRUCTS = NO
1764
1765-# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
1766-# is documented as struct, union, or enum with the name of the typedef. So
1767+# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
1768+# enum is documented as struct, union, or enum with the name of the typedef. So
1769 # typedef struct TypeS {} TypeT, will appear in the documentation as a struct
1770 # with name TypeT. When disabled the typedef will appear as a member of a file,
1771-# namespace, or class. And the struct will be named TypeS. This can typically
1772-# be useful for C code in case the coding convention dictates that all compound
1773+# namespace, or class. And the struct will be named TypeS. This can typically be
1774+# useful for C code in case the coding convention dictates that all compound
1775 # types are typedef'ed and only the typedef is referenced, never the tag name.
1776+# The default value is: NO.
1777
1778 TYPEDEF_HIDES_STRUCT = NO
1779
1780 # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
1781-# cache is used to resolve symbols given their name and scope. Since this can
1782-# be an expensive process and often the same symbol appear multiple times in
1783-# the code, doxygen keeps a cache of pre-resolved symbols. If the cache is too
1784-# small doxygen will become slower. If the cache is too large, memory is wasted.
1785-# The cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid
1786-# range is 0..9, the default is 0, corresponding to a cache size of 2^16 = 65536
1787-# symbols.
1788+# cache is used to resolve symbols given their name and scope. Since this can be
1789+# an expensive process and often the same symbol appears multiple times in the
1790+# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
1791+# doxygen will become slower. If the cache is too large, memory is wasted. The
1792+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
1793+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
1794+# symbols. At the end of a run doxygen will report the cache usage and suggest
1795+# the optimal cache size from a speed point of view.
1796+# Minimum value: 0, maximum value: 9, default value: 0.
1797
1798 LOOKUP_CACHE_SIZE = 0
1799
1800@@ -356,337 +418,398 @@
1801 # Build related configuration options
1802 #---------------------------------------------------------------------------
1803
1804-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
1805-# documentation are documented, even if no documentation was available.
1806-# Private class members and static file members will be hidden unless
1807-# the EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES
1808+# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
1809+# documentation are documented, even if no documentation was available. Private
1810+# class members and static file members will be hidden unless the
1811+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
1812+# Note: This will also disable the warnings about undocumented members that are
1813+# normally produced when WARNINGS is set to YES.
1814+# The default value is: NO.
1815
1816 EXTRACT_ALL = YES
1817
1818-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
1819-# will be included in the documentation.
1820+# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
1821+# be included in the documentation.
1822+# The default value is: NO.
1823
1824 EXTRACT_PRIVATE = NO
1825
1826-# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
1827+# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
1828 # scope will be included in the documentation.
1829+# The default value is: NO.
1830
1831 EXTRACT_PACKAGE = NO
1832
1833-# If the EXTRACT_STATIC tag is set to YES all static members of a file
1834-# will be included in the documentation.
1835+# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
1836+# included in the documentation.
1837+# The default value is: NO.
1838
1839 EXTRACT_STATIC = NO
1840
1841-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
1842-# defined locally in source files will be included in the documentation.
1843-# If set to NO only classes defined in header files are included.
1844+# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
1845+# locally in source files will be included in the documentation. If set to NO,
1846+# only classes defined in header files are included. Does not have any effect
1847+# for Java sources.
1848+# The default value is: YES.
1849
1850 EXTRACT_LOCAL_CLASSES = NO
1851
1852-# This flag is only useful for Objective-C code. When set to YES local
1853-# methods, which are defined in the implementation section but not in
1854-# the interface are included in the documentation.
1855-# If set to NO (the default) only methods in the interface are included.
1856+# This flag is only useful for Objective-C code. If set to YES, local methods,
1857+# which are defined in the implementation section but not in the interface are
1858+# included in the documentation. If set to NO, only methods in the interface are
1859+# included.
1860+# The default value is: NO.
1861
1862 EXTRACT_LOCAL_METHODS = NO
1863
1864 # If this flag is set to YES, the members of anonymous namespaces will be
1865 # extracted and appear in the documentation as a namespace called
1866-# 'anonymous_namespace{file}', where file will be replaced with the base
1867-# name of the file that contains the anonymous namespace. By default
1868-# anonymous namespaces are hidden.
1869+# 'anonymous_namespace{file}', where file will be replaced with the base name of
1870+# the file that contains the anonymous namespace. By default anonymous namespace
1871+# are hidden.
1872+# The default value is: NO.
1873
1874 EXTRACT_ANON_NSPACES = NO
1875
1876-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
1877-# undocumented members of documented classes, files or namespaces.
1878-# If set to NO (the default) these members will be included in the
1879-# various overviews, but no documentation section is generated.
1880-# This option has no effect if EXTRACT_ALL is enabled.
1881+# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
1882+# undocumented members inside documented classes or files. If set to NO these
1883+# members will be included in the various overviews, but no documentation
1884+# section is generated. This option has no effect if EXTRACT_ALL is enabled.
1885+# The default value is: NO.
1886
1887 HIDE_UNDOC_MEMBERS = NO
1888
1889-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
1890-# undocumented classes that are normally visible in the class hierarchy.
1891-# If set to NO (the default) these classes will be included in the various
1892-# overviews. This option has no effect if EXTRACT_ALL is enabled.
1893+# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
1894+# undocumented classes that are normally visible in the class hierarchy. If set
1895+# to NO, these classes will be included in the various overviews. This option
1896+# has no effect if EXTRACT_ALL is enabled.
1897+# The default value is: NO.
1898
1899 HIDE_UNDOC_CLASSES = NO
1900
1901-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
1902-# friend (class|struct|union) declarations.
1903-# If set to NO (the default) these declarations will be included in the
1904-# documentation.
1905+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
1906+# (class|struct|union) declarations. If set to NO, these declarations will be
1907+# included in the documentation.
1908+# The default value is: NO.
1909
1910 HIDE_FRIEND_COMPOUNDS = NO
1911
1912-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
1913-# documentation blocks found inside the body of a function.
1914-# If set to NO (the default) these blocks will be appended to the
1915-# function's detailed documentation block.
1916+# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
1917+# documentation blocks found inside the body of a function. If set to NO, these
1918+# blocks will be appended to the function's detailed documentation block.
1919+# The default value is: NO.
1920
1921 HIDE_IN_BODY_DOCS = NO
1922
1923-# The INTERNAL_DOCS tag determines if documentation
1924-# that is typed after a \internal command is included. If the tag is set
1925-# to NO (the default) then the documentation will be excluded.
1926-# Set it to YES to include the internal documentation.
1927+# The INTERNAL_DOCS tag determines if documentation that is typed after a
1928+# \internal command is included. If the tag is set to NO then the documentation
1929+# will be excluded. Set it to YES to include the internal documentation.
1930+# The default value is: NO.
1931
1932 INTERNAL_DOCS = NO
1933
1934-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
1935-# file names in lower-case letters. If set to YES upper-case letters are also
1936+# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
1937+# names in lower-case letters. If set to YES, upper-case letters are also
1938 # allowed. This is useful if you have classes or files whose names only differ
1939 # in case and if your file system supports case sensitive file names. Windows
1940 # and Mac users are advised to set this option to NO.
1941+# The default value is: system dependent.
1942
1943 CASE_SENSE_NAMES = NO
1944
1945-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
1946-# will show members with their full class and namespace scopes in the
1947-# documentation. If set to YES the scope will be hidden.
1948+# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
1949+# their full class and namespace scopes in the documentation. If set to YES, the
1950+# scope will be hidden.
1951+# The default value is: NO.
1952
1953 HIDE_SCOPE_NAMES = NO
1954
1955-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
1956-# will put a list of the files that are included by a file in the documentation
1957-# of that file.
1958+# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
1959+# append additional text to a page's title, such as Class Reference. If set to
1960+# YES the compound reference will be hidden.
1961+# The default value is: NO.
1962+
1963+HIDE_COMPOUND_REFERENCE= NO
1964+
1965+# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
1966+# the files that are included by a file in the documentation of that file.
1967+# The default value is: YES.
1968
1969 SHOW_INCLUDE_FILES = YES
1970
1971-# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
1972-# will list include files with double quotes in the documentation
1973-# rather than with sharp brackets.
1974+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
1975+# grouped member an include statement to the documentation, telling the reader
1976+# which file to include in order to use the member.
1977+# The default value is: NO.
1978+
1979+SHOW_GROUPED_MEMB_INC = NO
1980+
1981+# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
1982+# files with double quotes in the documentation rather than with sharp brackets.
1983+# The default value is: NO.
1984
1985 FORCE_LOCAL_INCLUDES = NO
1986
1987-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
1988-# is inserted in the documentation for inline members.
1989+# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
1990+# documentation for inline members.
1991+# The default value is: YES.
1992
1993 INLINE_INFO = YES
1994
1995-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
1996-# will sort the (detailed) documentation of file and class members
1997-# alphabetically by member name. If set to NO the members will appear in
1998-# declaration order.
1999+# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
2000+# (detailed) documentation of file and class members alphabetically by member
2001+# name. If set to NO, the members will appear in declaration order.
2002+# The default value is: YES.
2003
2004 SORT_MEMBER_DOCS = YES
2005
2006-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
2007-# brief documentation of file, namespace and class members alphabetically
2008-# by member name. If set to NO (the default) the members will appear in
2009-# declaration order.
2010+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
2011+# descriptions of file, namespace and class members alphabetically by member
2012+# name. If set to NO, the members will appear in declaration order. Note that
2013+# this will also influence the order of the classes in the class list.
2014+# The default value is: NO.
2015
2016 SORT_BRIEF_DOCS = NO
2017
2018-# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
2019-# will sort the (brief and detailed) documentation of class members so that
2020-# constructors and destructors are listed first. If set to NO (the default)
2021-# the constructors will appear in the respective orders defined by
2022-# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
2023-# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
2024-# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
2025+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
2026+# (brief and detailed) documentation of class members so that constructors and
2027+# destructors are listed first. If set to NO the constructors will appear in the
2028+# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
2029+# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
2030+# member documentation.
2031+# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
2032+# detailed member documentation.
2033+# The default value is: NO.
2034
2035 SORT_MEMBERS_CTORS_1ST = NO
2036
2037-# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
2038-# hierarchy of group names into alphabetical order. If set to NO (the default)
2039-# the group names will appear in their defined order.
2040+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
2041+# of group names into alphabetical order. If set to NO the group names will
2042+# appear in their defined order.
2043+# The default value is: NO.
2044
2045 SORT_GROUP_NAMES = NO
2046
2047-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
2048-# sorted by fully-qualified names, including namespaces. If set to
2049-# NO (the default), the class list will be sorted only by class name,
2050-# not including the namespace part.
2051+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
2052+# fully-qualified names, including namespaces. If set to NO, the class list will
2053+# be sorted only by class name, not including the namespace part.
2054 # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
2055-# Note: This option applies only to the class list, not to the
2056-# alphabetical list.
2057+# Note: This option applies only to the class list, not to the alphabetical
2058+# list.
2059+# The default value is: NO.
2060
2061 SORT_BY_SCOPE_NAME = NO
2062
2063-# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to
2064-# do proper type resolution of all parameters of a function it will reject a
2065-# match between the prototype and the implementation of a member function even
2066-# if there is only one candidate or it is obvious which candidate to choose
2067-# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen
2068-# will still accept a match between prototype and implementation in such cases.
2069+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
2070+# type resolution of all parameters of a function it will reject a match between
2071+# the prototype and the implementation of a member function even if there is
2072+# only one candidate or it is obvious which candidate to choose by doing a
2073+# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
2074+# accept a match between prototype and implementation in such cases.
2075+# The default value is: NO.
2076
2077 STRICT_PROTO_MATCHING = NO
2078
2079-# The GENERATE_TODOLIST tag can be used to enable (YES) or
2080-# disable (NO) the todo list. This list is created by putting \todo
2081-# commands in the documentation.
2082+# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
2083+# list. This list is created by putting \todo commands in the documentation.
2084+# The default value is: YES.
2085
2086 GENERATE_TODOLIST = YES
2087
2088-# The GENERATE_TESTLIST tag can be used to enable (YES) or
2089-# disable (NO) the test list. This list is created by putting \test
2090-# commands in the documentation.
2091+# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
2092+# list. This list is created by putting \test commands in the documentation.
2093+# The default value is: YES.
2094
2095 GENERATE_TESTLIST = YES
2096
2097-# The GENERATE_BUGLIST tag can be used to enable (YES) or
2098-# disable (NO) the bug list. This list is created by putting \bug
2099-# commands in the documentation.
2100+# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
2101+# list. This list is created by putting \bug commands in the documentation.
2102+# The default value is: YES.
2103
2104 GENERATE_BUGLIST = YES
2105
2106-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
2107-# disable (NO) the deprecated list. This list is created by putting
2108-# \deprecated commands in the documentation.
2109+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
2110+# the deprecated list. This list is created by putting \deprecated commands in
2111+# the documentation.
2112+# The default value is: YES.
2113
2114 GENERATE_DEPRECATEDLIST= YES
2115
2116-# The ENABLED_SECTIONS tag can be used to enable conditional
2117-# documentation sections, marked by \if section-label ... \endif
2118-# and \cond section-label ... \endcond blocks.
2119+# The ENABLED_SECTIONS tag can be used to enable conditional documentation
2120+# sections, marked by \if <section_label> ... \endif and \cond <section_label>
2121+# ... \endcond blocks.
2122
2123 ENABLED_SECTIONS =
2124
2125-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
2126-# the initial value of a variable or macro consists of for it to appear in
2127-# the documentation. If the initializer consists of more lines than specified
2128-# here it will be hidden. Use a value of 0 to hide initializers completely.
2129-# The appearance of the initializer of individual variables and macros in the
2130-# documentation can be controlled using \showinitializer or \hideinitializer
2131-# command in the documentation regardless of this setting.
2132+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
2133+# initial value of a variable or macro / define can have for it to appear in the
2134+# documentation. If the initializer consists of more lines than specified here
2135+# it will be hidden. Use a value of 0 to hide initializers completely. The
2136+# appearance of the value of individual variables and macros / defines can be
2137+# controlled using \showinitializer or \hideinitializer command in the
2138+# documentation regardless of this setting.
2139+# Minimum value: 0, maximum value: 10000, default value: 30.
2140
2141 MAX_INITIALIZER_LINES = 30
2142
2143-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
2144-# at the bottom of the documentation of classes and structs. If set to YES the
2145+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
2146+# the bottom of the documentation of classes and structs. If set to YES, the
2147 # list will mention the files that were used to generate the documentation.
2148+# The default value is: YES.
2149
2150 SHOW_USED_FILES = YES
2151
2152-# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
2153-# This will remove the Files entry from the Quick Index and from the
2154-# Folder Tree View (if specified). The default is YES.
2155+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
2156+# will remove the Files entry from the Quick Index and from the Folder Tree View
2157+# (if specified).
2158+# The default value is: YES.
2159
2160 SHOW_FILES = YES
2161
2162-# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
2163-# Namespaces page.
2164-# This will remove the Namespaces entry from the Quick Index
2165-# and from the Folder Tree View (if specified). The default is YES.
2166+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
2167+# page. This will remove the Namespaces entry from the Quick Index and from the
2168+# Folder Tree View (if specified).
2169+# The default value is: YES.
2170
2171 SHOW_NAMESPACES = YES
2172
2173 # The FILE_VERSION_FILTER tag can be used to specify a program or script that
2174 # doxygen should invoke to get the current version for each file (typically from
2175 # the version control system). Doxygen will invoke the program by executing (via
2176-# popen()) the command <command> <input-file>, where <command> is the value of
2177-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
2178-# provided by doxygen. Whatever the program writes to standard output
2179-# is used as the file version. See the manual for examples.
2180+# popen()) the command command input-file, where command is the value of the
2181+# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
2182+# by doxygen. Whatever the program writes to standard output is used as the file
2183+# version. For an example see the documentation.
2184
2185 FILE_VERSION_FILTER =
2186
2187 # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
2188 # by doxygen. The layout file controls the global structure of the generated
2189 # output files in an output format independent way. To create the layout file
2190-# that represents doxygen's defaults, run doxygen with the -l option.
2191-# You can optionally specify a file name after the option, if omitted
2192-# DoxygenLayout.xml will be used as the name of the layout file.
2193+# that represents doxygen's defaults, run doxygen with the -l option. You can
2194+# optionally specify a file name after the option, if omitted DoxygenLayout.xml
2195+# will be used as the name of the layout file.
2196+#
2197+# Note that if you run doxygen from a directory containing a file called
2198+# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
2199+# tag is left empty.
2200
2201 LAYOUT_FILE =
2202
2203-# The CITE_BIB_FILES tag can be used to specify one or more bib files
2204-# containing the references data. This must be a list of .bib files. The
2205-# .bib extension is automatically appended if omitted. Using this command
2206-# requires the bibtex tool to be installed. See also
2207-# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style
2208-# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this
2209-# feature you need bibtex and perl available in the search path. Do not use
2210-# file names with spaces, bibtex cannot handle them.
2211+# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
2212+# the reference definitions. This must be a list of .bib files. The .bib
2213+# extension is automatically appended if omitted. This requires the bibtex tool
2214+# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
2215+# For LaTeX the style of the bibliography can be controlled using
2216+# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
2217+# search path. See also \cite for info how to create references.
2218
2219 CITE_BIB_FILES =
2220
2221 #---------------------------------------------------------------------------
2222-# configuration options related to warning and progress messages
2223+# Configuration options related to warning and progress messages
2224 #---------------------------------------------------------------------------
2225
2226-# The QUIET tag can be used to turn on/off the messages that are generated
2227-# by doxygen. Possible values are YES and NO. If left blank NO is used.
2228+# The QUIET tag can be used to turn on/off the messages that are generated to
2229+# standard output by doxygen. If QUIET is set to YES this implies that the
2230+# messages are off.
2231+# The default value is: NO.
2232
2233 QUIET = NO
2234
2235 # The WARNINGS tag can be used to turn on/off the warning messages that are
2236-# generated by doxygen. Possible values are YES and NO. If left blank
2237-# NO is used.
2238+# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
2239+# this implies that the warnings are on.
2240+#
2241+# Tip: Turn warnings on while writing the documentation.
2242+# The default value is: YES.
2243
2244 WARNINGS = YES
2245
2246-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
2247-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
2248-# automatically be disabled.
2249+# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
2250+# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
2251+# will automatically be disabled.
2252+# The default value is: YES.
2253
2254 WARN_IF_UNDOCUMENTED = YES
2255
2256-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
2257-# potential errors in the documentation, such as not documenting some
2258-# parameters in a documented function, or documenting parameters that
2259-# don't exist or using markup commands wrongly.
2260+# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
2261+# potential errors in the documentation, such as not documenting some parameters
2262+# in a documented function, or documenting parameters that don't exist or using
2263+# markup commands wrongly.
2264+# The default value is: YES.
2265
2266 WARN_IF_DOC_ERROR = YES
2267
2268-# The WARN_NO_PARAMDOC option can be enabled to get warnings for
2269-# functions that are documented, but have no documentation for their parameters
2270-# or return value. If set to NO (the default) doxygen will only warn about
2271-# wrong or incomplete parameter documentation, but not about the absence of
2272-# documentation.
2273+# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
2274+# are documented, but have no documentation for their parameters or return
2275+# value. If set to NO, doxygen will only warn about wrong or incomplete
2276+# parameter documentation, but not about the absence of documentation.
2277+# The default value is: NO.
2278
2279 WARN_NO_PARAMDOC = NO
2280
2281-# The WARN_FORMAT tag determines the format of the warning messages that
2282-# doxygen can produce. The string should contain the $file, $line, and $text
2283-# tags, which will be replaced by the file and line number from which the
2284-# warning originated and the warning text. Optionally the format may contain
2285-# $version, which will be replaced by the version of the file (if it could
2286-# be obtained via FILE_VERSION_FILTER)
2287+# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
2288+# a warning is encountered.
2289+# The default value is: NO.
2290+
2291+WARN_AS_ERROR = NO
2292+
2293+# The WARN_FORMAT tag determines the format of the warning messages that doxygen
2294+# can produce. The string should contain the $file, $line, and $text tags, which
2295+# will be replaced by the file and line number from which the warning originated
2296+# and the warning text. Optionally the format may contain $version, which will
2297+# be replaced by the version of the file (if it could be obtained via
2298+# FILE_VERSION_FILTER)
2299+# The default value is: $file:$line: $text.
2300
2301 WARN_FORMAT = "$file:$line: $text"
2302
2303-# The WARN_LOGFILE tag can be used to specify a file to which warning
2304-# and error messages should be written. If left blank the output is written
2305-# to stderr.
2306+# The WARN_LOGFILE tag can be used to specify a file to which warning and error
2307+# messages should be written. If left blank the output is written to standard
2308+# error (stderr).
2309
2310 WARN_LOGFILE =
2311
2312 #---------------------------------------------------------------------------
2313-# configuration options related to the input files
2314+# Configuration options related to the input files
2315 #---------------------------------------------------------------------------
2316
2317-# The INPUT tag can be used to specify the files and/or directories that contain
2318-# documented source files. You may enter file names like "myfile.cpp" or
2319-# directories like "/usr/src/myproject". Separate the files or directories
2320-# with spaces.
2321+# The INPUT tag is used to specify the files and/or directories that contain
2322+# documented source files. You may enter file names like myfile.cpp or
2323+# directories like /usr/src/myproject. Separate the files or directories with
2324+# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
2325+# Note: If this tag is empty the current directory is searched.
2326
2327 INPUT = @CMAKE_CURRENT_SOURCE_DIR@/README.md \
2328 @CMAKE_CURRENT_SOURCE_DIR@/HACKING.md \
2329 @CMAKE_CURRENT_SOURCE_DIR@/doc \
2330- @CMAKE_CURRENT_SOURCE_DIR@/src \
2331 @CMAKE_CURRENT_SOURCE_DIR@/examples \
2332 @CMAKE_CURRENT_SOURCE_DIR@/include \
2333 @MIR_GENERATED_INCLUDE_DIRECTORIES@
2334
2335 # This tag can be used to specify the character encoding of the source files
2336-# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
2337-# also the default input encoding. Doxygen uses libiconv (or the iconv built
2338-# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
2339-# the list of possible encodings.
2340+# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
2341+# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
2342+# documentation (see: http://www.gnu.org/software/libiconv) for the list of
2343+# possible encodings.
2344+# The default value is: UTF-8.
2345
2346 INPUT_ENCODING = UTF-8
2347
2348 # If the value of the INPUT tag contains directories, you can use the
2349-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
2350-# and *.h) to filter out the source-files in the directories. If left
2351-# blank the following patterns are tested:
2352-# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
2353-# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
2354-# *.f90 *.f *.for *.vhd *.vhdl
2355+# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
2356+# *.h) to filter out the source-files in the directories.
2357+#
2358+# Note that for custom extensions or not directly supported extensions you also
2359+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
2360+# read by doxygen.
2361+#
2362+# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
2363+# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
2364+# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
2365+# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f, *.for, *.tcl,
2366+# *.vhd, *.vhdl, *.ucf, *.qsf, *.as and *.js.
2367
2368 FILE_PATTERNS = *.c \
2369 *.cc \
2370@@ -723,15 +846,16 @@
2371 *.vhd \
2372 *.vhdl
2373
2374-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
2375-# should be searched for input files as well. Possible values are YES and NO.
2376-# If left blank NO is used.
2377+# The RECURSIVE tag can be used to specify whether or not subdirectories should
2378+# be searched for input files as well.
2379+# The default value is: NO.
2380
2381 RECURSIVE = YES
2382
2383 # The EXCLUDE tag can be used to specify files and/or directories that should be
2384 # excluded from the INPUT source files. This way you can easily exclude a
2385 # subdirectory from a directory tree whose root is specified with the INPUT tag.
2386+#
2387 # Note that relative paths are relative to the directory from which doxygen is
2388 # run.
2389
2390@@ -740,234 +864,323 @@
2391 # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
2392 # directories that are symbolic links (a Unix file system feature) are excluded
2393 # from the input.
2394+# The default value is: NO.
2395
2396 EXCLUDE_SYMLINKS = NO
2397
2398 # If the value of the INPUT tag contains directories, you can use the
2399 # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
2400-# certain files from those directories. Note that the wildcards are matched
2401-# against the file with absolute path, so to exclude all test directories
2402-# for example use the pattern */test/*
2403+# certain files from those directories.
2404+#
2405+# Note that the wildcards are matched against the file with absolute path, so to
2406+# exclude all test directories for example use the pattern */test/*
2407
2408-EXCLUDE_PATTERNS = */include/test/* */3rd_party/*
2409+EXCLUDE_PATTERNS = */include/test/* \
2410+ */3rd_party/*
2411
2412 # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
2413 # (namespaces, classes, functions, etc.) that should be excluded from the
2414 # output. The symbol name can be a fully qualified name, a word, or if the
2415 # wildcard * is used, a substring. Examples: ANamespace, AClass,
2416 # AClass::ANamespace, ANamespace::*Test
2417+#
2418+# Note that the wildcards are matched against the file with absolute path, so to
2419+# exclude all test directories use the pattern */test/*
2420
2421 EXCLUDE_SYMBOLS = google \
2422 mfd \
2423 mgg \
2424 mp
2425
2426-# The EXAMPLE_PATH tag can be used to specify one or more files or
2427-# directories that contain example code fragments that are included (see
2428-# the \include command).
2429+# The EXAMPLE_PATH tag can be used to specify one or more files or directories
2430+# that contain example code fragments that are included (see the \include
2431+# command).
2432
2433 EXAMPLE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/examples
2434
2435 # If the value of the EXAMPLE_PATH tag contains directories, you can use the
2436-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
2437-# and *.h) to filter out the source-files in the directories. If left
2438-# blank all files are included.
2439+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
2440+# *.h) to filter out the source-files in the directories. If left blank all
2441+# files are included.
2442
2443 EXAMPLE_PATTERNS = *
2444
2445 # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
2446-# searched for input files to be used with the \include or \dontinclude
2447-# commands irrespective of the value of the RECURSIVE tag.
2448-# Possible values are YES and NO. If left blank NO is used.
2449+# searched for input files to be used with the \include or \dontinclude commands
2450+# irrespective of the value of the RECURSIVE tag.
2451+# The default value is: NO.
2452
2453 EXAMPLE_RECURSIVE = NO
2454
2455-# The IMAGE_PATH tag can be used to specify one or more files or
2456-# directories that contain image that are included in the documentation (see
2457-# the \image command).
2458+# The IMAGE_PATH tag can be used to specify one or more files or directories
2459+# that contain images that are to be included in the documentation (see the
2460+# \image command).
2461
2462 IMAGE_PATH =
2463
2464 # The INPUT_FILTER tag can be used to specify a program that doxygen should
2465 # invoke to filter for each input file. Doxygen will invoke the filter program
2466-# by executing (via popen()) the command <filter> <input-file>, where <filter>
2467-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
2468-# input file. Doxygen will then use the output that the filter program writes
2469-# to standard output.
2470-# If FILTER_PATTERNS is specified, this tag will be ignored.
2471+# by executing (via popen()) the command:
2472+#
2473+# <filter> <input-file>
2474+#
2475+# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
2476+# name of an input file. Doxygen will then use the output that the filter
2477+# program writes to standard output. If FILTER_PATTERNS is specified, this tag
2478+# will be ignored.
2479+#
2480 # Note that the filter must not add or remove lines; it is applied before the
2481 # code is scanned, but not when the output code is generated. If lines are added
2482 # or removed, the anchors will not be placed correctly.
2483+#
2484+# Note that for custom extensions or not directly supported extensions you also
2485+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
2486+# properly processed by doxygen.
2487
2488 INPUT_FILTER =
2489
2490 # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
2491-# basis.
2492-# Doxygen will compare the file name with each pattern and apply the
2493-# filter if there is a match.
2494-# The filters are a list of the form:
2495-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
2496-# info on how filters are used. If FILTER_PATTERNS is empty or if
2497-# non of the patterns match the file name, INPUT_FILTER is applied.
2498+# basis. Doxygen will compare the file name with each pattern and apply the
2499+# filter if there is a match. The filters are a list of the form: pattern=filter
2500+# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
2501+# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
2502+# patterns match the file name, INPUT_FILTER is applied.
2503+#
2504+# Note that for custom extensions or not directly supported extensions you also
2505+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
2506+# properly processed by doxygen.
2507
2508 FILTER_PATTERNS =
2509
2510 # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
2511-# INPUT_FILTER) will be used to filter the input files when producing source
2512-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
2513+# INPUT_FILTER) will also be used to filter the input files that are used for
2514+# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
2515+# The default value is: NO.
2516
2517 FILTER_SOURCE_FILES = NO
2518
2519 # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
2520-# pattern. A pattern will override the setting for FILTER_PATTERN (if any)
2521-# and it is also possible to disable source filtering for a specific pattern
2522-# using *.ext= (so without naming a filter). This option only has effect when
2523-# FILTER_SOURCE_FILES is enabled.
2524+# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
2525+# it is also possible to disable source filtering for a specific pattern using
2526+# *.ext= (so without naming a filter).
2527+# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
2528
2529 FILTER_SOURCE_PATTERNS =
2530
2531-# If the USE_MD_FILE_AS_MAINPAGE tag refers to the name of a markdown file that
2532+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
2533 # is part of the input, its contents will be placed on the main page
2534 # (index.html). This can be useful if you have a project on for instance GitHub
2535-# and want reuse the introduction page also for the doxygen output.
2536+# and want to reuse the introduction page also for the doxygen output.
2537
2538 USE_MDFILE_AS_MAINPAGE =
2539
2540 #---------------------------------------------------------------------------
2541-# configuration options related to source browsing
2542+# Configuration options related to source browsing
2543 #---------------------------------------------------------------------------
2544
2545-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
2546-# be generated. Documented entities will be cross-referenced with these sources.
2547-# Note: To get rid of all source code in the generated output, make sure also
2548-# VERBATIM_HEADERS is set to NO.
2549+# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
2550+# generated. Documented entities will be cross-referenced with these sources.
2551+#
2552+# Note: To get rid of all source code in the generated output, make sure that
2553+# also VERBATIM_HEADERS is set to NO.
2554+# The default value is: NO.
2555
2556 SOURCE_BROWSER = NO
2557
2558-# Setting the INLINE_SOURCES tag to YES will include the body
2559-# of functions and classes directly in the documentation.
2560+# Setting the INLINE_SOURCES tag to YES will include the body of functions,
2561+# classes and enums directly into the documentation.
2562+# The default value is: NO.
2563
2564 INLINE_SOURCES = NO
2565
2566-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
2567-# doxygen to hide any special comment blocks from generated source code
2568-# fragments. Normal C, C++ and Fortran comments will always remain visible.
2569+# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
2570+# special comment blocks from generated source code fragments. Normal C, C++ and
2571+# Fortran comments will always remain visible.
2572+# The default value is: YES.
2573
2574 STRIP_CODE_COMMENTS = YES
2575
2576-# If the REFERENCED_BY_RELATION tag is set to YES
2577-# then for each documented function all documented
2578-# functions referencing it will be listed.
2579+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
2580+# function all documented functions referencing it will be listed.
2581+# The default value is: NO.
2582
2583 REFERENCED_BY_RELATION = NO
2584
2585-# If the REFERENCES_RELATION tag is set to YES
2586-# then for each documented function all documented entities
2587-# called/used by that function will be listed.
2588+# If the REFERENCES_RELATION tag is set to YES then for each documented function
2589+# all documented entities called/used by that function will be listed.
2590+# The default value is: NO.
2591
2592 REFERENCES_RELATION = NO
2593
2594-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
2595-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
2596-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
2597-# link to the source code.
2598-# Otherwise they will link to the documentation.
2599+# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
2600+# to YES then the hyperlinks from functions in REFERENCES_RELATION and
2601+# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
2602+# link to the documentation.
2603+# The default value is: YES.
2604
2605 REFERENCES_LINK_SOURCE = YES
2606
2607-# If the USE_HTAGS tag is set to YES then the references to source code
2608-# will point to the HTML generated by the htags(1) tool instead of doxygen
2609-# built-in source browser. The htags tool is part of GNU's global source
2610-# tagging system (see http://www.gnu.org/software/global/global.html). You
2611-# will need version 4.8.6 or higher.
2612+# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
2613+# source code will show a tooltip with additional information such as prototype,
2614+# brief description and links to the definition and documentation. Since this
2615+# will make the HTML file larger and loading of large files a bit slower, you
2616+# can opt to disable this feature.
2617+# The default value is: YES.
2618+# This tag requires that the tag SOURCE_BROWSER is set to YES.
2619+
2620+SOURCE_TOOLTIPS = YES
2621+
2622+# If the USE_HTAGS tag is set to YES then the references to source code will
2623+# point to the HTML generated by the htags(1) tool instead of doxygen built-in
2624+# source browser. The htags tool is part of GNU's global source tagging system
2625+# (see http://www.gnu.org/software/global/global.html). You will need version
2626+# 4.8.6 or higher.
2627+#
2628+# To use it do the following:
2629+# - Install the latest version of global
2630+# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
2631+# - Make sure the INPUT points to the root of the source tree
2632+# - Run doxygen as normal
2633+#
2634+# Doxygen will invoke htags (and that will in turn invoke gtags), so these
2635+# tools must be available from the command line (i.e. in the search path).
2636+#
2637+# The result: instead of the source browser generated by doxygen, the links to
2638+# source code will now point to the output of htags.
2639+# The default value is: NO.
2640+# This tag requires that the tag SOURCE_BROWSER is set to YES.
2641
2642 USE_HTAGS = NO
2643
2644-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
2645-# will generate a verbatim copy of the header file for each class for
2646-# which an include is specified. Set to NO to disable this.
2647+# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
2648+# verbatim copy of the header file for each class for which an include is
2649+# specified. Set to NO to disable this.
2650+# See also: Section \class.
2651+# The default value is: YES.
2652
2653 VERBATIM_HEADERS = YES
2654
2655-#---------------------------------------------------------------------------
2656-# configuration options related to the alphabetical class index
2657-#---------------------------------------------------------------------------
2658-
2659-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
2660-# of all compounds will be generated. Enable this if the project
2661-# contains a lot of classes, structs, unions or interfaces.
2662+# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the
2663+# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
2664+# cost of reduced performance. This can be particularly helpful with template
2665+# rich C++ code for which doxygen's built-in parser lacks the necessary type
2666+# information.
2667+# Note: The availability of this option depends on whether or not doxygen was
2668+# generated with the -Duse-libclang=ON option for CMake.
2669+# The default value is: NO.
2670+
2671+CLANG_ASSISTED_PARSING = NO
2672+
2673+# If clang assisted parsing is enabled you can provide the compiler with command
2674+# line options that you would normally use when invoking the compiler. Note that
2675+# the include paths will already be set by doxygen for the files and directories
2676+# specified with INPUT and INCLUDE_PATH.
2677+# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
2678+
2679+CLANG_OPTIONS =
2680+
2681+#---------------------------------------------------------------------------
2682+# Configuration options related to the alphabetical class index
2683+#---------------------------------------------------------------------------
2684+
2685+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
2686+# compounds will be generated. Enable this if the project contains a lot of
2687+# classes, structs, unions or interfaces.
2688+# The default value is: YES.
2689
2690 ALPHABETICAL_INDEX = YES
2691
2692-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
2693-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
2694-# in which this list will be split (can be a number in the range [1..20])
2695+# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
2696+# which the alphabetical index list will be split.
2697+# Minimum value: 1, maximum value: 20, default value: 5.
2698+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
2699
2700 COLS_IN_ALPHA_INDEX = 5
2701
2702-# In case all classes in a project start with a common prefix, all
2703-# classes will be put under the same header in the alphabetical index.
2704-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
2705-# should be ignored while generating the index headers.
2706+# In case all classes in a project start with a common prefix, all classes will
2707+# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
2708+# can be used to specify a prefix (or a list of prefixes) that should be ignored
2709+# while generating the index headers.
2710+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
2711
2712 IGNORE_PREFIX =
2713
2714 #---------------------------------------------------------------------------
2715-# configuration options related to the HTML output
2716+# Configuration options related to the HTML output
2717 #---------------------------------------------------------------------------
2718
2719-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
2720-# generate HTML output.
2721+# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
2722+# The default value is: YES.
2723
2724 GENERATE_HTML = YES
2725
2726-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
2727-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
2728-# put in front of it. If left blank `html' will be used as the default path.
2729+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
2730+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
2731+# it.
2732+# The default directory is: html.
2733+# This tag requires that the tag GENERATE_HTML is set to YES.
2734
2735 HTML_OUTPUT = html
2736
2737-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
2738-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
2739-# doxygen will generate files with .html extension.
2740+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
2741+# generated HTML page (for example: .htm, .php, .asp).
2742+# The default value is: .html.
2743+# This tag requires that the tag GENERATE_HTML is set to YES.
2744
2745 HTML_FILE_EXTENSION = .html
2746
2747-# The HTML_HEADER tag can be used to specify a personal HTML header for
2748-# each generated HTML page. If it is left blank doxygen will generate a
2749-# standard header. Note that when using a custom header you are responsible
2750-# for the proper inclusion of any scripts and style sheets that doxygen
2751-# needs, which is dependent on the configuration options used.
2752-# It is advised to generate a default header using "doxygen -w html
2753-# header.html footer.html stylesheet.css YourConfigFile" and then modify
2754-# that header. Note that the header is subject to change so you typically
2755-# have to redo this when upgrading to a newer version of doxygen or when
2756-# changing the value of configuration settings such as GENERATE_TREEVIEW!
2757+# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
2758+# each generated HTML page. If the tag is left blank doxygen will generate a
2759+# standard header.
2760+#
2761+# To get valid HTML the header file that includes any scripts and style sheets
2762+# that doxygen needs, which is dependent on the configuration options used (e.g.
2763+# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
2764+# default header using
2765+# doxygen -w html new_header.html new_footer.html new_stylesheet.css
2766+# YourConfigFile
2767+# and then modify the file new_header.html. See also section "Doxygen usage"
2768+# for information on how to generate the default header that doxygen normally
2769+# uses.
2770+# Note: The header is subject to change so you typically have to regenerate the
2771+# default header when upgrading to a newer version of doxygen. For a description
2772+# of the possible markers and block names see the documentation.
2773+# This tag requires that the tag GENERATE_HTML is set to YES.
2774
2775 HTML_HEADER =
2776
2777-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
2778-# each generated HTML page. If it is left blank doxygen will generate a
2779-# standard footer.
2780+# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
2781+# generated HTML page. If the tag is left blank doxygen will generate a standard
2782+# footer. See HTML_HEADER for more information on how to generate a default
2783+# footer and what special commands can be used inside the footer. See also
2784+# section "Doxygen usage" for information on how to generate the default footer
2785+# that doxygen normally uses.
2786+# This tag requires that the tag GENERATE_HTML is set to YES.
2787
2788 HTML_FOOTER = @CMAKE_BINARY_DIR@/doc/footer.html
2789
2790-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
2791-# style sheet that is used by each HTML page. It can be used to
2792-# fine-tune the look of the HTML output. If left blank doxygen will
2793-# generate a default style sheet. Note that it is recommended to use
2794-# HTML_EXTRA_STYLESHEET instead of this one, as it is more robust and this
2795-# tag will in the future become obsolete.
2796+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
2797+# sheet that is used by each HTML page. It can be used to fine-tune the look of
2798+# the HTML output. If left blank doxygen will generate a default style sheet.
2799+# See also section "Doxygen usage" for information on how to generate the style
2800+# sheet that doxygen normally uses.
2801+# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
2802+# it is more robust and this tag (HTML_STYLESHEET) will in the future become
2803+# obsolete.
2804+# This tag requires that the tag GENERATE_HTML is set to YES.
2805
2806 HTML_STYLESHEET =
2807
2808-# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional
2809-# user-defined cascading style sheet that is included after the standard
2810-# style sheets created by doxygen. Using this option one can overrule
2811-# certain style aspects. This is preferred over using HTML_STYLESHEET
2812-# since it does not replace the standard style sheet and is therefor more
2813-# robust against future updates. Doxygen will copy the style sheet file to
2814-# the output directory.
2815+# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
2816+# cascading style sheets that are included after the standard style sheets
2817+# created by doxygen. Using this option one can overrule certain style aspects.
2818+# This is preferred over using HTML_STYLESHEET since it does not replace the
2819+# standard style sheet and is therefore more robust against future updates.
2820+# Doxygen will copy the style sheet files to the output directory.
2821+# Note: The order of the extra style sheet files is of importance (e.g. the last
2822+# style sheet in the list overrules the setting of the previous ones in the
2823+# list). For an example see the documentation.
2824+# This tag requires that the tag GENERATE_HTML is set to YES.
2825
2826 HTML_EXTRA_STYLESHEET = @CMAKE_BINARY_DIR@/doc/extra.css
2827
2828@@ -975,632 +1188,847 @@
2829 # other source files which should be copied to the HTML output directory. Note
2830 # that these files will be copied to the base HTML output directory. Use the
2831 # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
2832-# files. In the HTML_STYLESHEET file, use the file name only. Also note that
2833-# the files will be copied as-is; there are no commands or markers available.
2834+# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
2835+# files will be copied as-is; there are no commands or markers available.
2836+# This tag requires that the tag GENERATE_HTML is set to YES.
2837
2838 HTML_EXTRA_FILES =
2839
2840-# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
2841-# Doxygen will adjust the colors in the style sheet and background images
2842-# according to this color. Hue is specified as an angle on a colorwheel,
2843-# see http://en.wikipedia.org/wiki/Hue for more information.
2844-# For instance the value 0 represents red, 60 is yellow, 120 is green,
2845-# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
2846-# The allowed range is 0 to 359.
2847+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
2848+# will adjust the colors in the style sheet and background images according to
2849+# this color. Hue is specified as an angle on a colorwheel, see
2850+# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
2851+# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
2852+# purple, and 360 is red again.
2853+# Minimum value: 0, maximum value: 359, default value: 220.
2854+# This tag requires that the tag GENERATE_HTML is set to YES.
2855
2856 HTML_COLORSTYLE_HUE = 16
2857
2858-# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
2859-# the colors in the HTML output. For a value of 0 the output will use
2860-# grayscales only. A value of 255 will produce the most vivid colors.
2861+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
2862+# in the HTML output. For a value of 0 the output will use grayscales only. A
2863+# value of 255 will produce the most vivid colors.
2864+# Minimum value: 0, maximum value: 255, default value: 100.
2865+# This tag requires that the tag GENERATE_HTML is set to YES.
2866
2867 HTML_COLORSTYLE_SAT = 240
2868
2869-# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
2870-# the luminance component of the colors in the HTML output. Values below
2871-# 100 gradually make the output lighter, whereas values above 100 make
2872-# the output darker. The value divided by 100 is the actual gamma applied,
2873-# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
2874-# and 100 does not change the gamma.
2875+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
2876+# luminance component of the colors in the HTML output. Values below 100
2877+# gradually make the output lighter, whereas values above 100 make the output
2878+# darker. The value divided by 100 is the actual gamma applied, so 80 represents
2879+# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
2880+# change the gamma.
2881+# Minimum value: 40, maximum value: 240, default value: 80.
2882+# This tag requires that the tag GENERATE_HTML is set to YES.
2883
2884 HTML_COLORSTYLE_GAMMA = 80
2885
2886 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
2887-# page will contain the date and time when the page was generated. Setting
2888-# this to NO can help when comparing the output of multiple runs.
2889+# page will contain the date and time when the page was generated. Setting this
2890+# to YES can help to show when doxygen was last run and thus if the
2891+# documentation is up to date.
2892+# The default value is: NO.
2893+# This tag requires that the tag GENERATE_HTML is set to YES.
2894
2895 HTML_TIMESTAMP = YES
2896
2897 # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
2898 # documentation will contain sections that can be hidden and shown after the
2899 # page has loaded.
2900+# The default value is: NO.
2901+# This tag requires that the tag GENERATE_HTML is set to YES.
2902
2903 HTML_DYNAMIC_SECTIONS = NO
2904
2905-# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of
2906-# entries shown in the various tree structured indices initially; the user
2907-# can expand and collapse entries dynamically later on. Doxygen will expand
2908-# the tree to such a level that at most the specified number of entries are
2909-# visible (unless a fully collapsed tree already exceeds this amount).
2910-# So setting the number of entries 1 will produce a full collapsed tree by
2911-# default. 0 is a special value representing an infinite number of entries
2912-# and will result in a full expanded tree by default.
2913+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
2914+# shown in the various tree structured indices initially; the user can expand
2915+# and collapse entries dynamically later on. Doxygen will expand the tree to
2916+# such a level that at most the specified number of entries are visible (unless
2917+# a fully collapsed tree already exceeds this amount). So setting the number of
2918+# entries 1 will produce a full collapsed tree by default. 0 is a special value
2919+# representing an infinite number of entries and will result in a full expanded
2920+# tree by default.
2921+# Minimum value: 0, maximum value: 9999, default value: 100.
2922+# This tag requires that the tag GENERATE_HTML is set to YES.
2923
2924 HTML_INDEX_NUM_ENTRIES = 100
2925
2926-# If the GENERATE_DOCSET tag is set to YES, additional index files
2927-# will be generated that can be used as input for Apple's Xcode 3
2928-# integrated development environment, introduced with OSX 10.5 (Leopard).
2929-# To create a documentation set, doxygen will generate a Makefile in the
2930-# HTML output directory. Running make will produce the docset in that
2931-# directory and running "make install" will install the docset in
2932-# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
2933-# it at startup.
2934-# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
2935+# If the GENERATE_DOCSET tag is set to YES, additional index files will be
2936+# generated that can be used as input for Apple's Xcode 3 integrated development
2937+# environment (see: http://developer.apple.com/tools/xcode/), introduced with
2938+# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
2939+# Makefile in the HTML output directory. Running make will produce the docset in
2940+# that directory and running make install will install the docset in
2941+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
2942+# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
2943 # for more information.
2944+# The default value is: NO.
2945+# This tag requires that the tag GENERATE_HTML is set to YES.
2946
2947 GENERATE_DOCSET = NO
2948
2949-# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
2950-# feed. A documentation feed provides an umbrella under which multiple
2951-# documentation sets from a single provider (such as a company or product suite)
2952-# can be grouped.
2953+# This tag determines the name of the docset feed. A documentation feed provides
2954+# an umbrella under which multiple documentation sets from a single provider
2955+# (such as a company or product suite) can be grouped.
2956+# The default value is: Doxygen generated docs.
2957+# This tag requires that the tag GENERATE_DOCSET is set to YES.
2958
2959 DOCSET_FEEDNAME = "Doxygen generated docs"
2960
2961-# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
2962-# should uniquely identify the documentation set bundle. This should be a
2963-# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
2964-# will append .docset to the name.
2965+# This tag specifies a string that should uniquely identify the documentation
2966+# set bundle. This should be a reverse domain-name style string, e.g.
2967+# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
2968+# The default value is: org.doxygen.Project.
2969+# This tag requires that the tag GENERATE_DOCSET is set to YES.
2970
2971 DOCSET_BUNDLE_ID = org.doxygen.Project
2972
2973-# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely
2974-# identify the documentation publisher. This should be a reverse domain-name
2975-# style string, e.g. com.mycompany.MyDocSet.documentation.
2976+# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
2977+# the documentation publisher. This should be a reverse domain-name style
2978+# string, e.g. com.mycompany.MyDocSet.documentation.
2979+# The default value is: org.doxygen.Publisher.
2980+# This tag requires that the tag GENERATE_DOCSET is set to YES.
2981
2982 DOCSET_PUBLISHER_ID = org.doxygen.Publisher
2983
2984-# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
2985+# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
2986+# The default value is: Publisher.
2987+# This tag requires that the tag GENERATE_DOCSET is set to YES.
2988
2989 DOCSET_PUBLISHER_NAME = Publisher
2990
2991-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
2992-# will be generated that can be used as input for tools like the
2993-# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
2994-# of the generated HTML documentation.
2995+# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
2996+# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
2997+# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
2998+# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
2999+# Windows.
3000+#
3001+# The HTML Help Workshop contains a compiler that can convert all HTML output
3002+# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
3003+# files are now used as the Windows 98 help format, and will replace the old
3004+# Windows help format (.hlp) on all Windows platforms in the future. Compressed
3005+# HTML files also contain an index, a table of contents, and you can search for
3006+# words in the documentation. The HTML workshop also contains a viewer for
3007+# compressed HTML files.
3008+# The default value is: NO.
3009+# This tag requires that the tag GENERATE_HTML is set to YES.
3010
3011 GENERATE_HTMLHELP = NO
3012
3013-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
3014-# be used to specify the file name of the resulting .chm file. You
3015-# can add a path in front of the file if the result should not be
3016+# The CHM_FILE tag can be used to specify the file name of the resulting .chm
3017+# file. You can add a path in front of the file if the result should not be
3018 # written to the html output directory.
3019+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
3020
3021 CHM_FILE =
3022
3023-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
3024-# be used to specify the location (absolute path including file name) of
3025-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
3026-# the HTML help compiler on the generated index.hhp.
3027+# The HHC_LOCATION tag can be used to specify the location (absolute path
3028+# including file name) of the HTML help compiler (hhc.exe). If non-empty,
3029+# doxygen will try to run the HTML help compiler on the generated index.hhp.
3030+# The file has to be specified with full path.
3031+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
3032
3033 HHC_LOCATION =
3034
3035-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
3036-# controls if a separate .chi index file is generated (YES) or that
3037-# it should be included in the master .chm file (NO).
3038+# The GENERATE_CHI flag controls if a separate .chi index file is generated
3039+# (YES) or that it should be included in the master .chm file (NO).
3040+# The default value is: NO.
3041+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
3042
3043 GENERATE_CHI = NO
3044
3045-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
3046-# is used to encode HtmlHelp index (hhk), content (hhc) and project file
3047-# content.
3048+# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
3049+# and project file content.
3050+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
3051
3052 CHM_INDEX_ENCODING =
3053
3054-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
3055-# controls whether a binary table of contents is generated (YES) or a
3056-# normal table of contents (NO) in the .chm file.
3057+# The BINARY_TOC flag controls whether a binary table of contents is generated
3058+# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
3059+# enables the Previous and Next buttons.
3060+# The default value is: NO.
3061+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
3062
3063 BINARY_TOC = NO
3064
3065-# The TOC_EXPAND flag can be set to YES to add extra items for group members
3066-# to the contents of the HTML help documentation and to the tree view.
3067+# The TOC_EXPAND flag can be set to YES to add extra items for group members to
3068+# the table of contents of the HTML help documentation and to the tree view.
3069+# The default value is: NO.
3070+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
3071
3072 TOC_EXPAND = NO
3073
3074 # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
3075-# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
3076-# that can be used as input for Qt's qhelpgenerator to generate a
3077-# Qt Compressed Help (.qch) of the generated HTML documentation.
3078+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
3079+# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
3080+# (.qch) of the generated HTML documentation.
3081+# The default value is: NO.
3082+# This tag requires that the tag GENERATE_HTML is set to YES.
3083
3084 GENERATE_QHP = NO
3085
3086-# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
3087-# be used to specify the file name of the resulting .qch file.
3088-# The path specified is relative to the HTML output folder.
3089+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
3090+# the file name of the resulting .qch file. The path specified is relative to
3091+# the HTML output folder.
3092+# This tag requires that the tag GENERATE_QHP is set to YES.
3093
3094 QCH_FILE =
3095
3096-# The QHP_NAMESPACE tag specifies the namespace to use when generating
3097-# Qt Help Project output. For more information please see
3098-# http://doc.trolltech.com/qthelpproject.html#namespace
3099+# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
3100+# Project output. For more information please see Qt Help Project / Namespace
3101+# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
3102+# The default value is: org.doxygen.Project.
3103+# This tag requires that the tag GENERATE_QHP is set to YES.
3104
3105 QHP_NAMESPACE = org.doxygen.Project
3106
3107-# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
3108-# Qt Help Project output. For more information please see
3109-# http://doc.trolltech.com/qthelpproject.html#virtual-folders
3110+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
3111+# Help Project output. For more information please see Qt Help Project / Virtual
3112+# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
3113+# folders).
3114+# The default value is: doc.
3115+# This tag requires that the tag GENERATE_QHP is set to YES.
3116
3117 QHP_VIRTUAL_FOLDER = doc
3118
3119-# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
3120-# add. For more information please see
3121-# http://doc.trolltech.com/qthelpproject.html#custom-filters
3122+# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
3123+# filter to add. For more information please see Qt Help Project / Custom
3124+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
3125+# filters).
3126+# This tag requires that the tag GENERATE_QHP is set to YES.
3127
3128 QHP_CUST_FILTER_NAME =
3129
3130-# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
3131-# custom filter to add. For more information please see
3132-# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
3133-# Qt Help Project / Custom Filters</a>.
3134+# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
3135+# custom filter to add. For more information please see Qt Help Project / Custom
3136+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
3137+# filters).
3138+# This tag requires that the tag GENERATE_QHP is set to YES.
3139
3140 QHP_CUST_FILTER_ATTRS =
3141
3142 # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
3143-# project's
3144-# filter section matches.
3145-# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
3146-# Qt Help Project / Filter Attributes</a>.
3147+# project's filter section matches. Qt Help Project / Filter Attributes (see:
3148+# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
3149+# This tag requires that the tag GENERATE_QHP is set to YES.
3150
3151 QHP_SECT_FILTER_ATTRS =
3152
3153-# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
3154-# be used to specify the location of Qt's qhelpgenerator.
3155-# If non-empty doxygen will try to run qhelpgenerator on the generated
3156-# .qhp file.
3157+# The QHG_LOCATION tag can be used to specify the location of Qt's
3158+# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
3159+# generated .qhp file.
3160+# This tag requires that the tag GENERATE_QHP is set to YES.
3161
3162 QHG_LOCATION =
3163
3164-# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
3165-# will be generated, which together with the HTML files, form an Eclipse help
3166-# plugin. To install this plugin and make it available under the help contents
3167-# menu in Eclipse, the contents of the directory containing the HTML and XML
3168-# files needs to be copied into the plugins directory of eclipse. The name of
3169-# the directory within the plugins directory should be the same as
3170-# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
3171-# the help appears.
3172+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
3173+# generated, together with the HTML files, they form an Eclipse help plugin. To
3174+# install this plugin and make it available under the help contents menu in
3175+# Eclipse, the contents of the directory containing the HTML and XML files needs
3176+# to be copied into the plugins directory of eclipse. The name of the directory
3177+# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
3178+# After copying Eclipse needs to be restarted before the help appears.
3179+# The default value is: NO.
3180+# This tag requires that the tag GENERATE_HTML is set to YES.
3181
3182 GENERATE_ECLIPSEHELP = NO
3183
3184-# A unique identifier for the eclipse help plugin. When installing the plugin
3185-# the directory name containing the HTML and XML files should also have
3186-# this name.
3187+# A unique identifier for the Eclipse help plugin. When installing the plugin
3188+# the directory name containing the HTML and XML files should also have this
3189+# name. Each documentation set should have its own identifier.
3190+# The default value is: org.doxygen.Project.
3191+# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
3192
3193 ECLIPSE_DOC_ID = org.doxygen.Project
3194
3195-# The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs)
3196-# at top of each HTML page. The value NO (the default) enables the index and
3197-# the value YES disables it. Since the tabs have the same information as the
3198-# navigation tree you can set this option to NO if you already set
3199-# GENERATE_TREEVIEW to YES.
3200+# If you want full control over the layout of the generated HTML pages it might
3201+# be necessary to disable the index and replace it with your own. The
3202+# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
3203+# of each HTML page. A value of NO enables the index and the value YES disables
3204+# it. Since the tabs in the index contain the same information as the navigation
3205+# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
3206+# The default value is: NO.
3207+# This tag requires that the tag GENERATE_HTML is set to YES.
3208
3209 DISABLE_INDEX = NO
3210
3211 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
3212-# structure should be generated to display hierarchical information.
3213-# If the tag value is set to YES, a side panel will be generated
3214-# containing a tree-like index structure (just like the one that
3215-# is generated for HTML Help). For this to work a browser that supports
3216-# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
3217-# Windows users are probably better off using the HTML help feature.
3218-# Since the tree basically has the same information as the tab index you
3219-# could consider to set DISABLE_INDEX to NO when enabling this option.
3220+# structure should be generated to display hierarchical information. If the tag
3221+# value is set to YES, a side panel will be generated containing a tree-like
3222+# index structure (just like the one that is generated for HTML Help). For this
3223+# to work a browser that supports JavaScript, DHTML, CSS and frames is required
3224+# (i.e. any modern browser). Windows users are probably better off using the
3225+# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
3226+# further fine-tune the look of the index. As an example, the default style
3227+# sheet generated by doxygen has an example that shows how to put an image at
3228+# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
3229+# the same information as the tab index, you could consider setting
3230+# DISABLE_INDEX to YES when enabling this option.
3231+# The default value is: NO.
3232+# This tag requires that the tag GENERATE_HTML is set to YES.
3233
3234 GENERATE_TREEVIEW = NO
3235
3236-# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values
3237-# (range [0,1..20]) that doxygen will group on one line in the generated HTML
3238-# documentation. Note that a value of 0 will completely suppress the enum
3239-# values from appearing in the overview section.
3240+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
3241+# doxygen will group on one line in the generated HTML documentation.
3242+#
3243+# Note that a value of 0 will completely suppress the enum values from appearing
3244+# in the overview section.
3245+# Minimum value: 0, maximum value: 20, default value: 4.
3246+# This tag requires that the tag GENERATE_HTML is set to YES.
3247
3248 ENUM_VALUES_PER_LINE = 4
3249
3250-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
3251-# used to set the initial width (in pixels) of the frame in which the tree
3252-# is shown.
3253+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
3254+# to set the initial width (in pixels) of the frame in which the tree is shown.
3255+# Minimum value: 0, maximum value: 1500, default value: 250.
3256+# This tag requires that the tag GENERATE_HTML is set to YES.
3257
3258 TREEVIEW_WIDTH = 250
3259
3260-# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
3261-# links to external symbols imported via tag files in a separate window.
3262+# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
3263+# external symbols imported via tag files in a separate window.
3264+# The default value is: NO.
3265+# This tag requires that the tag GENERATE_HTML is set to YES.
3266
3267 EXT_LINKS_IN_WINDOW = NO
3268
3269-# Use this tag to change the font size of Latex formulas included
3270-# as images in the HTML documentation. The default is 10. Note that
3271-# when you change the font size after a successful doxygen run you need
3272-# to manually remove any form_*.png images from the HTML output directory
3273-# to force them to be regenerated.
3274+# Use this tag to change the font size of LaTeX formulas included as images in
3275+# the HTML documentation. When you change the font size after a successful
3276+# doxygen run you need to manually remove any form_*.png images from the HTML
3277+# output directory to force them to be regenerated.
3278+# Minimum value: 8, maximum value: 50, default value: 10.
3279+# This tag requires that the tag GENERATE_HTML is set to YES.
3280
3281 FORMULA_FONTSIZE = 10
3282
3283 # Use the FORMULA_TRANPARENT tag to determine whether or not the images
3284-# generated for formulas are transparent PNGs. Transparent PNGs are
3285-# not supported properly for IE 6.0, but are supported on all modern browsers.
3286-# Note that when changing this option you need to delete any form_*.png files
3287-# in the HTML output before the changes have effect.
3288+# generated for formulas are transparent PNGs. Transparent PNGs are not
3289+# supported properly for IE 6.0, but are supported on all modern browsers.
3290+#
3291+# Note that when changing this option you need to delete any form_*.png files in
3292+# the HTML output directory before the changes have effect.
3293+# The default value is: YES.
3294+# This tag requires that the tag GENERATE_HTML is set to YES.
3295
3296 FORMULA_TRANSPARENT = YES
3297
3298-# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
3299-# (see http://www.mathjax.org) which uses client side Javascript for the
3300-# rendering instead of using prerendered bitmaps. Use this if you do not
3301-# have LaTeX installed or if you want to formulas look prettier in the HTML
3302-# output. When enabled you may also need to install MathJax separately and
3303-# configure the path to it using the MATHJAX_RELPATH option.
3304+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
3305+# http://www.mathjax.org) which uses client side Javascript for the rendering
3306+# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
3307+# installed or if you want to formulas look prettier in the HTML output. When
3308+# enabled you may also need to install MathJax separately and configure the path
3309+# to it using the MATHJAX_RELPATH option.
3310+# The default value is: NO.
3311+# This tag requires that the tag GENERATE_HTML is set to YES.
3312
3313 USE_MATHJAX = NO
3314
3315 # When MathJax is enabled you can set the default output format to be used for
3316-# the MathJax output. Supported types are HTML-CSS, NativeMML (i.e. MathML) and
3317-# SVG. The default value is HTML-CSS, which is slower, but has the best
3318-# compatibility.
3319+# the MathJax output. See the MathJax site (see:
3320+# http://docs.mathjax.org/en/latest/output.html) for more details.
3321+# Possible values are: HTML-CSS (which is slower, but has the best
3322+# compatibility), NativeMML (i.e. MathML) and SVG.
3323+# The default value is: HTML-CSS.
3324+# This tag requires that the tag USE_MATHJAX is set to YES.
3325
3326 MATHJAX_FORMAT = HTML-CSS
3327
3328-# When MathJax is enabled you need to specify the location relative to the
3329-# HTML output directory using the MATHJAX_RELPATH option. The destination
3330-# directory should contain the MathJax.js script. For instance, if the mathjax
3331-# directory is located at the same level as the HTML output directory, then
3332-# MATHJAX_RELPATH should be ../mathjax. The default value points to
3333-# the MathJax Content Delivery Network so you can quickly see the result without
3334-# installing MathJax.
3335-# However, it is strongly recommended to install a local
3336-# copy of MathJax from http://www.mathjax.org before deployment.
3337+# When MathJax is enabled you need to specify the location relative to the HTML
3338+# output directory using the MATHJAX_RELPATH option. The destination directory
3339+# should contain the MathJax.js script. For instance, if the mathjax directory
3340+# is located at the same level as the HTML output directory, then
3341+# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
3342+# Content Delivery Network so you can quickly see the result without installing
3343+# MathJax. However, it is strongly recommended to install a local copy of
3344+# MathJax from http://www.mathjax.org before deployment.
3345+# The default value is: http://cdn.mathjax.org/mathjax/latest.
3346+# This tag requires that the tag USE_MATHJAX is set to YES.
3347
3348 MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
3349
3350-# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension
3351-# names that should be enabled during MathJax rendering.
3352+# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
3353+# extension names that should be enabled during MathJax rendering. For example
3354+# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
3355+# This tag requires that the tag USE_MATHJAX is set to YES.
3356
3357 MATHJAX_EXTENSIONS =
3358
3359-# The MATHJAX_CODEFILE tag can be used to specify a file with javascript
3360-# pieces of code that will be used on startup of the MathJax code.
3361+# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
3362+# of code that will be used on startup of the MathJax code. See the MathJax site
3363+# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
3364+# example see the documentation.
3365+# This tag requires that the tag USE_MATHJAX is set to YES.
3366
3367 MATHJAX_CODEFILE =
3368
3369-# When the SEARCHENGINE tag is enabled doxygen will generate a search box
3370-# for the HTML output. The underlying search engine uses javascript
3371-# and DHTML and should work on any modern browser. Note that when using
3372-# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
3373-# (GENERATE_DOCSET) there is already a search function so this one should
3374-# typically be disabled. For large projects the javascript based search engine
3375-# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
3376+# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
3377+# the HTML output. The underlying search engine uses javascript and DHTML and
3378+# should work on any modern browser. Note that when using HTML help
3379+# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
3380+# there is already a search function so this one should typically be disabled.
3381+# For large projects the javascript based search engine can be slow, then
3382+# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
3383+# search using the keyboard; to jump to the search box use <access key> + S
3384+# (what the <access key> is depends on the OS and browser, but it is typically
3385+# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
3386+# key> to jump into the search results window, the results can be navigated
3387+# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
3388+# the search. The filter options can be selected when the cursor is inside the
3389+# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
3390+# to select a filter and <Enter> or <escape> to activate or cancel the filter
3391+# option.
3392+# The default value is: YES.
3393+# This tag requires that the tag GENERATE_HTML is set to YES.
3394
3395 SEARCHENGINE = YES
3396
3397 # When the SERVER_BASED_SEARCH tag is enabled the search engine will be
3398-# implemented using a web server instead of a web client using Javascript.
3399-# There are two flavours of web server based search depending on the
3400-# EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for
3401-# searching and an index file used by the script. When EXTERNAL_SEARCH is
3402-# enabled the indexing and searching needs to be provided by external tools.
3403-# See the manual for details.
3404+# implemented using a web server instead of a web client using Javascript. There
3405+# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
3406+# setting. When disabled, doxygen will generate a PHP script for searching and
3407+# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
3408+# and searching needs to be provided by external tools. See the section
3409+# "External Indexing and Searching" for details.
3410+# The default value is: NO.
3411+# This tag requires that the tag SEARCHENGINE is set to YES.
3412
3413 SERVER_BASED_SEARCH = NO
3414
3415-# When EXTERNAL_SEARCH is enabled doxygen will no longer generate the PHP
3416+# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
3417 # script for searching. Instead the search results are written to an XML file
3418 # which needs to be processed by an external indexer. Doxygen will invoke an
3419-# external search engine pointed to by the SEARCHENGINE_URL option to obtain
3420-# the search results. Doxygen ships with an example indexer (doxyindexer) and
3421-# search engine (doxysearch.cgi) which are based on the open source search
3422-# engine library Xapian. See the manual for configuration details.
3423+# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
3424+# search results.
3425+#
3426+# Doxygen ships with an example indexer (doxyindexer) and search engine
3427+# (doxysearch.cgi) which are based on the open source search engine library
3428+# Xapian (see: http://xapian.org/).
3429+#
3430+# See the section "External Indexing and Searching" for details.
3431+# The default value is: NO.
3432+# This tag requires that the tag SEARCHENGINE is set to YES.
3433
3434 EXTERNAL_SEARCH = NO
3435
3436 # The SEARCHENGINE_URL should point to a search engine hosted by a web server
3437-# which will returned the search results when EXTERNAL_SEARCH is enabled.
3438-# Doxygen ships with an example search engine (doxysearch) which is based on
3439-# the open source search engine library Xapian. See the manual for configuration
3440-# details.
3441+# which will return the search results when EXTERNAL_SEARCH is enabled.
3442+#
3443+# Doxygen ships with an example indexer (doxyindexer) and search engine
3444+# (doxysearch.cgi) which are based on the open source search engine library
3445+# Xapian (see: http://xapian.org/). See the section "External Indexing and
3446+# Searching" for details.
3447+# This tag requires that the tag SEARCHENGINE is set to YES.
3448
3449 SEARCHENGINE_URL =
3450
3451 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
3452 # search data is written to a file for indexing by an external tool. With the
3453 # SEARCHDATA_FILE tag the name of this file can be specified.
3454+# The default file is: searchdata.xml.
3455+# This tag requires that the tag SEARCHENGINE is set to YES.
3456
3457 SEARCHDATA_FILE = searchdata.xml
3458
3459-# When SERVER_BASED_SEARCH AND EXTERNAL_SEARCH are both enabled the
3460+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
3461 # EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
3462 # useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
3463 # projects and redirect the results back to the right project.
3464+# This tag requires that the tag SEARCHENGINE is set to YES.
3465
3466 EXTERNAL_SEARCH_ID =
3467
3468 # The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
3469 # projects other than the one defined by this configuration file, but that are
3470 # all added to the same external search index. Each project needs to have a
3471-# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id
3472-# of to a relative location where the documentation can be found.
3473-# The format is: EXTRA_SEARCH_MAPPINGS = id1=loc1 id2=loc2 ...
3474+# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
3475+# to a relative location where the documentation can be found. The format is:
3476+# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
3477+# This tag requires that the tag SEARCHENGINE is set to YES.
3478
3479 EXTRA_SEARCH_MAPPINGS =
3480
3481 #---------------------------------------------------------------------------
3482-# configuration options related to the LaTeX output
3483+# Configuration options related to the LaTeX output
3484 #---------------------------------------------------------------------------
3485
3486-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
3487-# generate Latex output.
3488+# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
3489+# The default value is: YES.
3490
3491 GENERATE_LATEX = NO
3492
3493-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
3494-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
3495-# put in front of it. If left blank `latex' will be used as the default path.
3496+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
3497+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
3498+# it.
3499+# The default directory is: latex.
3500+# This tag requires that the tag GENERATE_LATEX is set to YES.
3501
3502 LATEX_OUTPUT = latex
3503
3504 # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
3505-# invoked. If left blank `latex' will be used as the default command name.
3506-# Note that when enabling USE_PDFLATEX this option is only used for
3507-# generating bitmaps for formulas in the HTML output, but not in the
3508-# Makefile that is written to the output directory.
3509+# invoked.
3510+#
3511+# Note that when enabling USE_PDFLATEX this option is only used for generating
3512+# bitmaps for formulas in the HTML output, but not in the Makefile that is
3513+# written to the output directory.
3514+# The default file is: latex.
3515+# This tag requires that the tag GENERATE_LATEX is set to YES.
3516
3517 LATEX_CMD_NAME = latex
3518
3519-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
3520-# generate index for LaTeX. If left blank `makeindex' will be used as the
3521-# default command name.
3522+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
3523+# index for LaTeX.
3524+# The default file is: makeindex.
3525+# This tag requires that the tag GENERATE_LATEX is set to YES.
3526
3527 MAKEINDEX_CMD_NAME = makeindex
3528
3529-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
3530-# LaTeX documents. This may be useful for small projects and may help to
3531-# save some trees in general.
3532+# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
3533+# documents. This may be useful for small projects and may help to save some
3534+# trees in general.
3535+# The default value is: NO.
3536+# This tag requires that the tag GENERATE_LATEX is set to YES.
3537
3538 COMPACT_LATEX = NO
3539
3540-# The PAPER_TYPE tag can be used to set the paper type that is used
3541-# by the printer. Possible values are: a4, letter, legal and
3542-# executive. If left blank a4 will be used.
3543+# The PAPER_TYPE tag can be used to set the paper type that is used by the
3544+# printer.
3545+# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
3546+# 14 inches) and executive (7.25 x 10.5 inches).
3547+# The default value is: a4.
3548+# This tag requires that the tag GENERATE_LATEX is set to YES.
3549
3550 PAPER_TYPE = a4
3551
3552-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
3553-# packages that should be included in the LaTeX output.
3554+# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
3555+# that should be included in the LaTeX output. The package can be specified just
3556+# by its name or with the correct syntax as to be used with the LaTeX
3557+# \usepackage command. To get the times font for instance you can specify :
3558+# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
3559+# To use the option intlimits with the amsmath package you can specify:
3560+# EXTRA_PACKAGES=[intlimits]{amsmath}
3561+# If left blank no extra packages will be included.
3562+# This tag requires that the tag GENERATE_LATEX is set to YES.
3563
3564 EXTRA_PACKAGES =
3565
3566-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
3567-# the generated latex document. The header should contain everything until
3568-# the first chapter. If it is left blank doxygen will generate a
3569-# standard header. Notice: only use this tag if you know what you are doing!
3570+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
3571+# generated LaTeX document. The header should contain everything until the first
3572+# chapter. If it is left blank doxygen will generate a standard header. See
3573+# section "Doxygen usage" for information on how to let doxygen write the
3574+# default header to a separate file.
3575+#
3576+# Note: Only use a user-defined header if you know what you are doing! The
3577+# following commands have a special meaning inside the header: $title,
3578+# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
3579+# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
3580+# string, for the replacement values of the other commands the user is referred
3581+# to HTML_HEADER.
3582+# This tag requires that the tag GENERATE_LATEX is set to YES.
3583
3584 LATEX_HEADER =
3585
3586-# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for
3587-# the generated latex document. The footer should contain everything after
3588-# the last chapter. If it is left blank doxygen will generate a
3589-# standard footer. Notice: only use this tag if you know what you are doing!
3590+# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
3591+# generated LaTeX document. The footer should contain everything after the last
3592+# chapter. If it is left blank doxygen will generate a standard footer. See
3593+# LATEX_HEADER for more information on how to generate a default footer and what
3594+# special commands can be used inside the footer.
3595+#
3596+# Note: Only use a user-defined footer if you know what you are doing!
3597+# This tag requires that the tag GENERATE_LATEX is set to YES.
3598
3599 LATEX_FOOTER =
3600
3601-# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images
3602-# or other source files which should be copied to the LaTeX output directory.
3603-# Note that the files will be copied as-is; there are no commands or markers
3604-# available.
3605+# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
3606+# LaTeX style sheets that are included after the standard style sheets created
3607+# by doxygen. Using this option one can overrule certain style aspects. Doxygen
3608+# will copy the style sheet files to the output directory.
3609+# Note: The order of the extra style sheet files is of importance (e.g. the last
3610+# style sheet in the list overrules the setting of the previous ones in the
3611+# list).
3612+# This tag requires that the tag GENERATE_LATEX is set to YES.
3613+
3614+LATEX_EXTRA_STYLESHEET =
3615+
3616+# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
3617+# other source files which should be copied to the LATEX_OUTPUT output
3618+# directory. Note that the files will be copied as-is; there are no commands or
3619+# markers available.
3620+# This tag requires that the tag GENERATE_LATEX is set to YES.
3621
3622 LATEX_EXTRA_FILES =
3623
3624-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
3625-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
3626-# contain links (just like the HTML output) instead of page references
3627-# This makes the output suitable for online browsing using a pdf viewer.
3628+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
3629+# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
3630+# contain links (just like the HTML output) instead of page references. This
3631+# makes the output suitable for online browsing using a PDF viewer.
3632+# The default value is: YES.
3633+# This tag requires that the tag GENERATE_LATEX is set to YES.
3634
3635 PDF_HYPERLINKS = YES
3636
3637-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
3638-# plain latex in the generated Makefile. Set this option to YES to get a
3639+# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
3640+# the PDF file directly from the LaTeX files. Set this option to YES, to get a
3641 # higher quality PDF documentation.
3642+# The default value is: YES.
3643+# This tag requires that the tag GENERATE_LATEX is set to YES.
3644
3645 USE_PDFLATEX = YES
3646
3647-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
3648-# command to the generated LaTeX files. This will instruct LaTeX to keep
3649-# running if errors occur, instead of asking the user for help.
3650-# This option is also used when generating formulas in HTML.
3651+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
3652+# command to the generated LaTeX files. This will instruct LaTeX to keep running
3653+# if errors occur, instead of asking the user for help. This option is also used
3654+# when generating formulas in HTML.
3655+# The default value is: NO.
3656+# This tag requires that the tag GENERATE_LATEX is set to YES.
3657
3658 LATEX_BATCHMODE = NO
3659
3660-# If LATEX_HIDE_INDICES is set to YES then doxygen will not
3661-# include the index chapters (such as File Index, Compound Index, etc.)
3662-# in the output.
3663+# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
3664+# index chapters (such as File Index, Compound Index, etc.) in the output.
3665+# The default value is: NO.
3666+# This tag requires that the tag GENERATE_LATEX is set to YES.
3667
3668 LATEX_HIDE_INDICES = NO
3669
3670-# If LATEX_SOURCE_CODE is set to YES then doxygen will include
3671-# source code with syntax highlighting in the LaTeX output.
3672-# Note that which sources are shown also depends on other settings
3673-# such as SOURCE_BROWSER.
3674+# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
3675+# code with syntax highlighting in the LaTeX output.
3676+#
3677+# Note that which sources are shown also depends on other settings such as
3678+# SOURCE_BROWSER.
3679+# The default value is: NO.
3680+# This tag requires that the tag GENERATE_LATEX is set to YES.
3681
3682 LATEX_SOURCE_CODE = NO
3683
3684 # The LATEX_BIB_STYLE tag can be used to specify the style to use for the
3685-# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See
3686-# http://en.wikipedia.org/wiki/BibTeX for more info.
3687+# bibliography, e.g. plainnat, or ieeetr. See
3688+# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
3689+# The default value is: plain.
3690+# This tag requires that the tag GENERATE_LATEX is set to YES.
3691
3692 LATEX_BIB_STYLE = plain
3693
3694-#---------------------------------------------------------------------------
3695-# configuration options related to the RTF output
3696-#---------------------------------------------------------------------------
3697-
3698-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
3699-# The RTF output is optimized for Word 97 and may not look very pretty with
3700-# other RTF readers or editors.
3701+# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated
3702+# page will contain the date and time when the page was generated. Setting this
3703+# to NO can help when comparing the output of multiple runs.
3704+# The default value is: NO.
3705+# This tag requires that the tag GENERATE_LATEX is set to YES.
3706+
3707+LATEX_TIMESTAMP = NO
3708+
3709+#---------------------------------------------------------------------------
3710+# Configuration options related to the RTF output
3711+#---------------------------------------------------------------------------
3712+
3713+# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The
3714+# RTF output is optimized for Word 97 and may not look too pretty with other RTF
3715+# readers/editors.
3716+# The default value is: NO.
3717
3718 GENERATE_RTF = NO
3719
3720-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
3721-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
3722-# put in front of it. If left blank `rtf' will be used as the default path.
3723+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
3724+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
3725+# it.
3726+# The default directory is: rtf.
3727+# This tag requires that the tag GENERATE_RTF is set to YES.
3728
3729 RTF_OUTPUT = rtf
3730
3731-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
3732-# RTF documents. This may be useful for small projects and may help to
3733-# save some trees in general.
3734+# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF
3735+# documents. This may be useful for small projects and may help to save some
3736+# trees in general.
3737+# The default value is: NO.
3738+# This tag requires that the tag GENERATE_RTF is set to YES.
3739
3740 COMPACT_RTF = NO
3741
3742-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
3743-# will contain hyperlink fields. The RTF file will
3744-# contain links (just like the HTML output) instead of page references.
3745-# This makes the output suitable for online browsing using WORD or other
3746-# programs which support those fields.
3747-# Note: wordpad (write) and others do not support links.
3748+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
3749+# contain hyperlink fields. The RTF file will contain links (just like the HTML
3750+# output) instead of page references. This makes the output suitable for online
3751+# browsing using Word or some other Word compatible readers that support those
3752+# fields.
3753+#
3754+# Note: WordPad (write) and others do not support links.
3755+# The default value is: NO.
3756+# This tag requires that the tag GENERATE_RTF is set to YES.
3757
3758 RTF_HYPERLINKS = NO
3759
3760-# Load style sheet definitions from file. Syntax is similar to doxygen's
3761-# config file, i.e. a series of assignments. You only have to provide
3762-# replacements, missing definitions are set to their default value.
3763+# Load stylesheet definitions from file. Syntax is similar to doxygen's config
3764+# file, i.e. a series of assignments. You only have to provide replacements,
3765+# missing definitions are set to their default value.
3766+#
3767+# See also section "Doxygen usage" for information on how to generate the
3768+# default style sheet that doxygen normally uses.
3769+# This tag requires that the tag GENERATE_RTF is set to YES.
3770
3771 RTF_STYLESHEET_FILE =
3772
3773-# Set optional variables used in the generation of an rtf document.
3774-# Syntax is similar to doxygen's config file.
3775+# Set optional variables used in the generation of an RTF document. Syntax is
3776+# similar to doxygen's config file. A template extensions file can be generated
3777+# using doxygen -e rtf extensionFile.
3778+# This tag requires that the tag GENERATE_RTF is set to YES.
3779
3780 RTF_EXTENSIONS_FILE =
3781
3782-#---------------------------------------------------------------------------
3783-# configuration options related to the man page output
3784-#---------------------------------------------------------------------------
3785-
3786-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
3787-# generate man pages
3788+# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
3789+# with syntax highlighting in the RTF output.
3790+#
3791+# Note that which sources are shown also depends on other settings such as
3792+# SOURCE_BROWSER.
3793+# The default value is: NO.
3794+# This tag requires that the tag GENERATE_RTF is set to YES.
3795+
3796+RTF_SOURCE_CODE = NO
3797+
3798+#---------------------------------------------------------------------------
3799+# Configuration options related to the man page output
3800+#---------------------------------------------------------------------------
3801+
3802+# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for
3803+# classes and files.
3804+# The default value is: NO.
3805
3806 GENERATE_MAN = NO
3807
3808-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
3809-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
3810-# put in front of it. If left blank `man' will be used as the default path.
3811+# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
3812+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
3813+# it. A directory man3 will be created inside the directory specified by
3814+# MAN_OUTPUT.
3815+# The default directory is: man.
3816+# This tag requires that the tag GENERATE_MAN is set to YES.
3817
3818 MAN_OUTPUT = man
3819
3820-# The MAN_EXTENSION tag determines the extension that is added to
3821-# the generated man pages (default is the subroutine's section .3)
3822+# The MAN_EXTENSION tag determines the extension that is added to the generated
3823+# man pages. In case the manual section does not start with a number, the number
3824+# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
3825+# optional.
3826+# The default value is: .3.
3827+# This tag requires that the tag GENERATE_MAN is set to YES.
3828
3829 MAN_EXTENSION = .3
3830
3831-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
3832-# then it will generate one additional man file for each entity
3833-# documented in the real man page(s). These additional files
3834-# only source the real man page, but without them the man command
3835-# would be unable to find the correct page. The default is NO.
3836+# The MAN_SUBDIR tag determines the name of the directory created within
3837+# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
3838+# MAN_EXTENSION with the initial . removed.
3839+# This tag requires that the tag GENERATE_MAN is set to YES.
3840+
3841+MAN_SUBDIR =
3842+
3843+# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
3844+# will generate one additional man file for each entity documented in the real
3845+# man page(s). These additional files only source the real man page, but without
3846+# them the man command would be unable to find the correct page.
3847+# The default value is: NO.
3848+# This tag requires that the tag GENERATE_MAN is set to YES.
3849
3850 MAN_LINKS = NO
3851
3852 #---------------------------------------------------------------------------
3853-# configuration options related to the XML output
3854+# Configuration options related to the XML output
3855 #---------------------------------------------------------------------------
3856
3857-# If the GENERATE_XML tag is set to YES Doxygen will
3858-# generate an XML file that captures the structure of
3859-# the code including all documentation.
3860+# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
3861+# captures the structure of the code including all documentation.
3862+# The default value is: NO.
3863
3864 GENERATE_XML = YES
3865
3866-# The XML_OUTPUT tag is used to specify where the XML pages will be put.
3867-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
3868-# put in front of it. If left blank `xml' will be used as the default path.
3869+# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
3870+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
3871+# it.
3872+# The default directory is: xml.
3873+# This tag requires that the tag GENERATE_XML is set to YES.
3874
3875 XML_OUTPUT = xml
3876
3877-# The XML_SCHEMA tag can be used to specify an XML schema,
3878-# which can be used by a validating XML parser to check the
3879-# syntax of the XML files.
3880-
3881-XML_SCHEMA =
3882-
3883-# The XML_DTD tag can be used to specify an XML DTD,
3884-# which can be used by a validating XML parser to check the
3885-# syntax of the XML files.
3886-
3887-XML_DTD =
3888-
3889-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
3890-# dump the program listings (including syntax highlighting
3891-# and cross-referencing information) to the XML output. Note that
3892-# enabling this will significantly increase the size of the XML output.
3893+# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
3894+# listings (including syntax highlighting and cross-referencing information) to
3895+# the XML output. Note that enabling this will significantly increase the size
3896+# of the XML output.
3897+# The default value is: YES.
3898+# This tag requires that the tag GENERATE_XML is set to YES.
3899
3900 XML_PROGRAMLISTING = YES
3901
3902 #---------------------------------------------------------------------------
3903-# configuration options related to the DOCBOOK output
3904+# Configuration options related to the DOCBOOK output
3905 #---------------------------------------------------------------------------
3906
3907-# If the GENERATE_DOCBOOK tag is set to YES Doxygen will generate DOCBOOK files
3908+# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files
3909 # that can be used to generate PDF.
3910+# The default value is: NO.
3911
3912 GENERATE_DOCBOOK = NO
3913
3914-# The DOCBOOK_OUTPUT tag is used to specify where the DOCBOOK pages will be put.
3915+# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
3916 # If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
3917-# front of it. If left blank docbook will be used as the default path.
3918+# front of it.
3919+# The default directory is: docbook.
3920+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
3921
3922 DOCBOOK_OUTPUT = docbook
3923
3924-#---------------------------------------------------------------------------
3925-# configuration options for the AutoGen Definitions output
3926-#---------------------------------------------------------------------------
3927-
3928-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
3929-# generate an AutoGen Definitions (see autogen.sf.net) file
3930-# that captures the structure of the code including all
3931-# documentation. Note that this feature is still experimental
3932-# and incomplete at the moment.
3933+# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
3934+# program listings (including syntax highlighting and cross-referencing
3935+# information) to the DOCBOOK output. Note that enabling this will significantly
3936+# increase the size of the DOCBOOK output.
3937+# The default value is: NO.
3938+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
3939+
3940+DOCBOOK_PROGRAMLISTING = NO
3941+
3942+#---------------------------------------------------------------------------
3943+# Configuration options for the AutoGen Definitions output
3944+#---------------------------------------------------------------------------
3945+
3946+# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
3947+# AutoGen Definitions (see http://autogen.sf.net) file that captures the
3948+# structure of the code including all documentation. Note that this feature is
3949+# still experimental and incomplete at the moment.
3950+# The default value is: NO.
3951
3952 GENERATE_AUTOGEN_DEF = NO
3953
3954 #---------------------------------------------------------------------------
3955-# configuration options related to the Perl module output
3956+# Configuration options related to the Perl module output
3957 #---------------------------------------------------------------------------
3958
3959-# If the GENERATE_PERLMOD tag is set to YES Doxygen will
3960-# generate a Perl module file that captures the structure of
3961-# the code including all documentation. Note that this
3962-# feature is still experimental and incomplete at the
3963-# moment.
3964+# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module
3965+# file that captures the structure of the code including all documentation.
3966+#
3967+# Note that this feature is still experimental and incomplete at the moment.
3968+# The default value is: NO.
3969
3970 GENERATE_PERLMOD = NO
3971
3972-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
3973-# the necessary Makefile rules, Perl scripts and LaTeX code to be able
3974-# to generate PDF and DVI output from the Perl module output.
3975+# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary
3976+# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
3977+# output from the Perl module output.
3978+# The default value is: NO.
3979+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
3980
3981 PERLMOD_LATEX = NO
3982
3983-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
3984-# nicely formatted so it can be parsed by a human reader.
3985-# This is useful
3986-# if you want to understand what is going on.
3987-# On the other hand, if this
3988-# tag is set to NO the size of the Perl module output will be much smaller
3989-# and Perl will parse it just the same.
3990+# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely
3991+# formatted so it can be parsed by a human reader. This is useful if you want to
3992+# understand what is going on. On the other hand, if this tag is set to NO, the
3993+# size of the Perl module output will be much smaller and Perl will parse it
3994+# just the same.
3995+# The default value is: YES.
3996+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
3997
3998 PERLMOD_PRETTY = YES
3999
4000-# The names of the make variables in the generated doxyrules.make file
4001-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
4002-# This is useful so different doxyrules.make files included by the same
4003-# Makefile don't overwrite each other's variables.
4004+# The names of the make variables in the generated doxyrules.make file are
4005+# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
4006+# so different doxyrules.make files included by the same Makefile don't
4007+# overwrite each other's variables.
4008+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
4009
4010 PERLMOD_MAKEVAR_PREFIX =
4011
4012@@ -1608,112 +2036,129 @@
4013 # Configuration options related to the preprocessor
4014 #---------------------------------------------------------------------------
4015
4016-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
4017-# evaluate all C-preprocessor directives found in the sources and include
4018-# files.
4019+# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
4020+# C-preprocessor directives found in the sources and include files.
4021+# The default value is: YES.
4022
4023 ENABLE_PREPROCESSING = YES
4024
4025-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
4026-# names in the source code. If set to NO (the default) only conditional
4027-# compilation will be performed. Macro expansion can be done in a controlled
4028-# way by setting EXPAND_ONLY_PREDEF to YES.
4029+# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
4030+# in the source code. If set to NO, only conditional compilation will be
4031+# performed. Macro expansion can be done in a controlled way by setting
4032+# EXPAND_ONLY_PREDEF to YES.
4033+# The default value is: NO.
4034+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
4035
4036 MACRO_EXPANSION = NO
4037
4038-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
4039-# then the macro expansion is limited to the macros specified with the
4040-# PREDEFINED and EXPAND_AS_DEFINED tags.
4041+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
4042+# the macro expansion is limited to the macros specified with the PREDEFINED and
4043+# EXPAND_AS_DEFINED tags.
4044+# The default value is: NO.
4045+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
4046
4047 EXPAND_ONLY_PREDEF = NO
4048
4049-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
4050-# pointed to by INCLUDE_PATH will be searched when a #include is found.
4051+# If the SEARCH_INCLUDES tag is set to YES, the include files in the
4052+# INCLUDE_PATH will be searched if a #include is found.
4053+# The default value is: YES.
4054+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
4055
4056 SEARCH_INCLUDES = YES
4057
4058 # The INCLUDE_PATH tag can be used to specify one or more directories that
4059-# contain include files that are not input files but should be processed by
4060-# the preprocessor.
4061+# contain include files that are not input files but should be processed by the
4062+# preprocessor.
4063+# This tag requires that the tag SEARCH_INCLUDES is set to YES.
4064
4065 INCLUDE_PATH =
4066
4067 # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
4068 # patterns (like *.h and *.hpp) to filter out the header-files in the
4069-# directories. If left blank, the patterns specified with FILE_PATTERNS will
4070-# be used.
4071+# directories. If left blank, the patterns specified with FILE_PATTERNS will be
4072+# used.
4073+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
4074
4075 INCLUDE_FILE_PATTERNS =
4076
4077-# The PREDEFINED tag can be used to specify one or more macro names that
4078-# are defined before the preprocessor is started (similar to the -D option of
4079-# gcc). The argument of the tag is a list of macros of the form: name
4080-# or name=definition (no spaces). If the definition and the = are
4081-# omitted =1 is assumed. To prevent a macro definition from being
4082-# undefined via #undef or recursively expanded use the := operator
4083-# instead of the = operator.
4084+# The PREDEFINED tag can be used to specify one or more macro names that are
4085+# defined before the preprocessor is started (similar to the -D option of e.g.
4086+# gcc). The argument of the tag is a list of macros of the form: name or
4087+# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
4088+# is assumed. To prevent a macro definition from being undefined via #undef or
4089+# recursively expanded use the := operator instead of the = operator.
4090+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
4091
4092 PREDEFINED = __cplusplus
4093
4094-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
4095-# this tag can be used to specify a list of macro names that should be expanded.
4096-# The macro definition that is found in the sources will be used.
4097-# Use the PREDEFINED tag if you want to use a different macro definition that
4098-# overrules the definition found in the source code.
4099+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
4100+# tag can be used to specify a list of macro names that should be expanded. The
4101+# macro definition that is found in the sources will be used. Use the PREDEFINED
4102+# tag if you want to use a different macro definition that overrules the
4103+# definition found in the source code.
4104+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
4105
4106 EXPAND_AS_DEFINED =
4107
4108-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
4109-# doxygen's preprocessor will remove all references to function-like macros
4110-# that are alone on a line, have an all uppercase name, and do not end with a
4111-# semicolon, because these will confuse the parser if not removed.
4112+# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
4113+# remove all references to function-like macros that are alone on a line, have
4114+# an all uppercase name, and do not end with a semicolon. Such function macros
4115+# are typically used for boiler-plate code, and will confuse the parser if not
4116+# removed.
4117+# The default value is: YES.
4118+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
4119
4120 SKIP_FUNCTION_MACROS = YES
4121
4122 #---------------------------------------------------------------------------
4123-# Configuration::additions related to external references
4124+# Configuration options related to external references
4125 #---------------------------------------------------------------------------
4126
4127-# The TAGFILES option can be used to specify one or more tagfiles. For each
4128-# tag file the location of the external documentation should be added. The
4129-# format of a tag file without this location is as follows:
4130-#
4131+# The TAGFILES tag can be used to specify one or more tag files. For each tag
4132+# file the location of the external documentation should be added. The format of
4133+# a tag file without this location is as follows:
4134 # TAGFILES = file1 file2 ...
4135 # Adding location for the tag files is done as follows:
4136-#
4137 # TAGFILES = file1=loc1 "file2 = loc2" ...
4138-# where "loc1" and "loc2" can be relative or absolute paths
4139-# or URLs. Note that each tag file must have a unique name (where the name does
4140-# NOT include the path). If a tag file is not located in the directory in which
4141-# doxygen is run, you must also specify the path to the tagfile here.
4142+# where loc1 and loc2 can be relative or absolute paths or URLs. See the
4143+# section "Linking to external documentation" for more information about the use
4144+# of tag files.
4145+# Note: Each tag file must have a unique name (where the name does NOT include
4146+# the path). If a tag file is not located in the directory in which doxygen is
4147+# run, you must also specify the path to the tagfile here.
4148
4149 TAGFILES =
4150
4151-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
4152-# a tag file that is based on the input files it reads.
4153+# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
4154+# tag file that is based on the input files it reads. See section "Linking to
4155+# external documentation" for more information about the usage of tag files.
4156
4157 GENERATE_TAGFILE =
4158
4159-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
4160-# in the class index. If set to NO only the inherited external classes
4161-# will be listed.
4162+# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
4163+# the class index. If set to NO, only the inherited external classes will be
4164+# listed.
4165+# The default value is: NO.
4166
4167 ALLEXTERNALS = NO
4168
4169-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
4170-# in the modules index. If set to NO, only the current project's groups will
4171+# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
4172+# in the modules index. If set to NO, only the current project's groups will be
4173+# listed.
4174+# The default value is: YES.
4175+
4176+EXTERNAL_GROUPS = YES
4177+
4178+# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in
4179+# the related pages index. If set to NO, only the current project's pages will
4180 # be listed.
4181-
4182-EXTERNAL_GROUPS = YES
4183-
4184-# If the EXTERNAL_PAGES tag is set to YES all external pages will be listed
4185-# in the related pages index. If set to NO, only the current project's
4186-# pages will be listed.
4187+# The default value is: YES.
4188
4189 EXTERNAL_PAGES = YES
4190
4191 # The PERL_PATH should be the absolute path and name of the perl script
4192-# interpreter (i.e. the result of `which perl').
4193+# interpreter (i.e. the result of 'which perl').
4194+# The default file (with absolute path) is: /usr/bin/perl.
4195
4196 PERL_PATH = /usr/bin/perl
4197
4198@@ -1721,222 +2166,314 @@
4199 # Configuration options related to the dot tool
4200 #---------------------------------------------------------------------------
4201
4202-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
4203-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
4204-# or super classes. Setting the tag to NO turns the diagrams off. Note that
4205-# this option also works with HAVE_DOT disabled, but it is recommended to
4206-# install and use dot, since it yields more powerful graphs.
4207+# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
4208+# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
4209+# NO turns the diagrams off. Note that this option also works with HAVE_DOT
4210+# disabled, but it is recommended to install and use dot, since it yields more
4211+# powerful graphs.
4212+# The default value is: YES.
4213
4214 CLASS_DIAGRAMS = YES
4215
4216 # You can define message sequence charts within doxygen comments using the \msc
4217-# command. Doxygen will then run the mscgen tool (see
4218-# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
4219+# command. Doxygen will then run the mscgen tool (see:
4220+# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
4221 # documentation. The MSCGEN_PATH tag allows you to specify the directory where
4222 # the mscgen tool resides. If left empty the tool is assumed to be found in the
4223 # default search path.
4224
4225 MSCGEN_PATH =
4226
4227-# If set to YES, the inheritance and collaboration graphs will hide
4228-# inheritance and usage relations if the target is undocumented
4229-# or is not a class.
4230+# You can include diagrams made with dia in doxygen documentation. Doxygen will
4231+# then run dia to produce the diagram and insert it in the documentation. The
4232+# DIA_PATH tag allows you to specify the directory where the dia binary resides.
4233+# If left empty dia is assumed to be found in the default search path.
4234+
4235+DIA_PATH =
4236+
4237+# If set to YES the inheritance and collaboration graphs will hide inheritance
4238+# and usage relations if the target is undocumented or is not a class.
4239+# The default value is: YES.
4240
4241 HIDE_UNDOC_RELATIONS = YES
4242
4243 # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
4244-# available from the path. This tool is part of Graphviz, a graph visualization
4245-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
4246-# have no effect if this option is set to NO (the default)
4247+# available from the path. This tool is part of Graphviz (see:
4248+# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
4249+# Bell Labs. The other options in this section have no effect if this option is
4250+# set to NO
4251+# The default value is: YES.
4252
4253 HAVE_DOT = @DOXYGEN_DOT_FOUND@
4254
4255-# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
4256-# allowed to run in parallel. When set to 0 (the default) doxygen will
4257-# base this on the number of processors available in the system. You can set it
4258-# explicitly to a value larger than 0 to get control over the balance
4259-# between CPU load and processing speed.
4260+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
4261+# to run in parallel. When set to 0 doxygen will base this on the number of
4262+# processors available in the system. You can set it explicitly to a value
4263+# larger than 0 to get control over the balance between CPU load and processing
4264+# speed.
4265+# Minimum value: 0, maximum value: 32, default value: 0.
4266+# This tag requires that the tag HAVE_DOT is set to YES.
4267
4268 DOT_NUM_THREADS = 0
4269
4270-# By default doxygen will use the Helvetica font for all dot files that
4271-# doxygen generates. When you want a differently looking font you can specify
4272-# the font name using DOT_FONTNAME. You need to make sure dot is able to find
4273-# the font, which can be done by putting it in a standard location or by setting
4274-# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the
4275-# directory containing the font.
4276+# When you want a differently looking font in the dot files that doxygen
4277+# generates you can specify the font name using DOT_FONTNAME. You need to make
4278+# sure dot is able to find the font, which can be done by putting it in a
4279+# standard location or by setting the DOTFONTPATH environment variable or by
4280+# setting DOT_FONTPATH to the directory containing the font.
4281+# The default value is: Helvetica.
4282+# This tag requires that the tag HAVE_DOT is set to YES.
4283
4284 DOT_FONTNAME = Arial
4285
4286-# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
4287-# The default size is 10pt.
4288+# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
4289+# dot graphs.
4290+# Minimum value: 4, maximum value: 24, default value: 10.
4291+# This tag requires that the tag HAVE_DOT is set to YES.
4292
4293 DOT_FONTSIZE = 10
4294
4295-# By default doxygen will tell dot to use the Helvetica font.
4296-# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to
4297-# set the path where dot can find it.
4298+# By default doxygen will tell dot to use the default font as specified with
4299+# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
4300+# the path where dot can find it using this tag.
4301+# This tag requires that the tag HAVE_DOT is set to YES.
4302
4303 DOT_FONTPATH =
4304
4305-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
4306-# will generate a graph for each documented class showing the direct and
4307-# indirect inheritance relations. Setting this tag to YES will force the
4308-# CLASS_DIAGRAMS tag to NO.
4309+# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
4310+# each documented class showing the direct and indirect inheritance relations.
4311+# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
4312+# The default value is: YES.
4313+# This tag requires that the tag HAVE_DOT is set to YES.
4314
4315 CLASS_GRAPH = YES
4316
4317-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
4318-# will generate a graph for each documented class showing the direct and
4319-# indirect implementation dependencies (inheritance, containment, and
4320-# class references variables) of the class with other documented classes.
4321+# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
4322+# graph for each documented class showing the direct and indirect implementation
4323+# dependencies (inheritance, containment, and class references variables) of the
4324+# class with other documented classes.
4325+# The default value is: YES.
4326+# This tag requires that the tag HAVE_DOT is set to YES.
4327
4328 COLLABORATION_GRAPH = NO
4329
4330-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
4331-# will generate a graph for groups, showing the direct groups dependencies
4332+# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
4333+# groups, showing the direct groups dependencies.
4334+# The default value is: YES.
4335+# This tag requires that the tag HAVE_DOT is set to YES.
4336
4337 GROUP_GRAPHS = YES
4338
4339-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
4340+# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
4341 # collaboration diagrams in a style similar to the OMG's Unified Modeling
4342 # Language.
4343+# The default value is: NO.
4344+# This tag requires that the tag HAVE_DOT is set to YES.
4345
4346 UML_LOOK = NO
4347
4348-# If the UML_LOOK tag is enabled, the fields and methods are shown inside
4349-# the class node. If there are many fields or methods and many nodes the
4350-# graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS
4351-# threshold limits the number of items for each type to make the size more
4352-# manageable. Set this to 0 for no limit. Note that the threshold may be
4353-# exceeded by 50% before the limit is enforced.
4354+# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
4355+# class node. If there are many fields or methods and many nodes the graph may
4356+# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
4357+# number of items for each type to make the size more manageable. Set this to 0
4358+# for no limit. Note that the threshold may be exceeded by 50% before the limit
4359+# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
4360+# but if the number exceeds 15, the total amount of fields shown is limited to
4361+# 10.
4362+# Minimum value: 0, maximum value: 100, default value: 10.
4363+# This tag requires that the tag HAVE_DOT is set to YES.
4364
4365 UML_LIMIT_NUM_FIELDS = 10
4366
4367-# If set to YES, the inheritance and collaboration graphs will show the
4368-# relations between templates and their instances.
4369+# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
4370+# collaboration graphs will show the relations between templates and their
4371+# instances.
4372+# The default value is: NO.
4373+# This tag requires that the tag HAVE_DOT is set to YES.
4374
4375 TEMPLATE_RELATIONS = NO
4376
4377-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
4378-# tags are set to YES then doxygen will generate a graph for each documented
4379-# file showing the direct and indirect include dependencies of the file with
4380-# other documented files.
4381+# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
4382+# YES then doxygen will generate a graph for each documented file showing the
4383+# direct and indirect include dependencies of the file with other documented
4384+# files.
4385+# The default value is: YES.
4386+# This tag requires that the tag HAVE_DOT is set to YES.
4387
4388 INCLUDE_GRAPH = YES
4389
4390-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
4391-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
4392-# documented header file showing the documented files that directly or
4393-# indirectly include this file.
4394+# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
4395+# set to YES then doxygen will generate a graph for each documented file showing
4396+# the direct and indirect include dependencies of the file with other documented
4397+# files.
4398+# The default value is: YES.
4399+# This tag requires that the tag HAVE_DOT is set to YES.
4400
4401 INCLUDED_BY_GRAPH = YES
4402
4403-# If the CALL_GRAPH and HAVE_DOT options are set to YES then
4404-# doxygen will generate a call dependency graph for every global function
4405-# or class method. Note that enabling this option will significantly increase
4406-# the time of a run. So in most cases it will be better to enable call graphs
4407-# for selected functions only using the \callgraph command.
4408+# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
4409+# dependency graph for every global function or class method.
4410+#
4411+# Note that enabling this option will significantly increase the time of a run.
4412+# So in most cases it will be better to enable call graphs for selected
4413+# functions only using the \callgraph command. Disabling a call graph can be
4414+# accomplished by means of the command \hidecallgraph.
4415+# The default value is: NO.
4416+# This tag requires that the tag HAVE_DOT is set to YES.
4417
4418 CALL_GRAPH = NO
4419
4420-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
4421-# doxygen will generate a caller dependency graph for every global function
4422-# or class method. Note that enabling this option will significantly increase
4423-# the time of a run. So in most cases it will be better to enable caller
4424-# graphs for selected functions only using the \callergraph command.
4425+# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
4426+# dependency graph for every global function or class method.
4427+#
4428+# Note that enabling this option will significantly increase the time of a run.
4429+# So in most cases it will be better to enable caller graphs for selected
4430+# functions only using the \callergraph command. Disabling a caller graph can be
4431+# accomplished by means of the command \hidecallergraph.
4432+# The default value is: NO.
4433+# This tag requires that the tag HAVE_DOT is set to YES.
4434
4435 CALLER_GRAPH = NO
4436
4437-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
4438-# will generate a graphical hierarchy of all classes instead of a textual one.
4439+# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
4440+# hierarchy of all classes instead of a textual one.
4441+# The default value is: YES.
4442+# This tag requires that the tag HAVE_DOT is set to YES.
4443
4444 GRAPHICAL_HIERARCHY = YES
4445
4446-# If the DIRECTORY_GRAPH and HAVE_DOT tags are set to YES
4447-# then doxygen will show the dependencies a directory has on other directories
4448-# in a graphical way. The dependency relations are determined by the #include
4449-# relations between the files in the directories.
4450+# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
4451+# dependencies a directory has on other directories in a graphical way. The
4452+# dependency relations are determined by the #include relations between the
4453+# files in the directories.
4454+# The default value is: YES.
4455+# This tag requires that the tag HAVE_DOT is set to YES.
4456
4457 DIRECTORY_GRAPH = YES
4458
4459 # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
4460-# generated by dot. Possible values are svg, png, jpg, or gif.
4461-# If left blank png will be used. If you choose svg you need to set
4462-# HTML_FILE_EXTENSION to xhtml in order to make the SVG files
4463-# visible in IE 9+ (other browsers do not have this requirement).
4464+# generated by dot. For an explanation of the image formats see the section
4465+# output formats in the documentation of the dot tool (Graphviz (see:
4466+# http://www.graphviz.org/)).
4467+# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
4468+# to make the SVG files visible in IE 9+ (other browsers do not have this
4469+# requirement).
4470+# Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd,
4471+# png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo,
4472+# gif:cairo:gd, gif:gd, gif:gd:gd, svg, png:gd, png:gd:gd, png:cairo,
4473+# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
4474+# png:gdiplus:gdiplus.
4475+# The default value is: png.
4476+# This tag requires that the tag HAVE_DOT is set to YES.
4477
4478 DOT_IMAGE_FORMAT = svg
4479
4480 # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
4481 # enable generation of interactive SVG images that allow zooming and panning.
4482-# Note that this requires a modern browser other than Internet Explorer.
4483-# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you
4484-# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files
4485-# visible. Older versions of IE do not have SVG support.
4486+#
4487+# Note that this requires a modern browser other than Internet Explorer. Tested
4488+# and working are Firefox, Chrome, Safari, and Opera.
4489+# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
4490+# the SVG files visible. Older versions of IE do not have SVG support.
4491+# The default value is: NO.
4492+# This tag requires that the tag HAVE_DOT is set to YES.
4493
4494 INTERACTIVE_SVG = NO
4495
4496-# The tag DOT_PATH can be used to specify the path where the dot tool can be
4497+# The DOT_PATH tag can be used to specify the path where the dot tool can be
4498 # found. If left blank, it is assumed the dot tool can be found in the path.
4499+# This tag requires that the tag HAVE_DOT is set to YES.
4500
4501 DOT_PATH =
4502
4503 # The DOTFILE_DIRS tag can be used to specify one or more directories that
4504-# contain dot files that are included in the documentation (see the
4505-# \dotfile command).
4506+# contain dot files that are included in the documentation (see the \dotfile
4507+# command).
4508+# This tag requires that the tag HAVE_DOT is set to YES.
4509
4510 DOTFILE_DIRS =
4511
4512 # The MSCFILE_DIRS tag can be used to specify one or more directories that
4513-# contain msc files that are included in the documentation (see the
4514-# \mscfile command).
4515+# contain msc files that are included in the documentation (see the \mscfile
4516+# command).
4517
4518 MSCFILE_DIRS =
4519
4520-# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
4521-# nodes that will be shown in the graph. If the number of nodes in a graph
4522-# becomes larger than this value, doxygen will truncate the graph, which is
4523-# visualized by representing a node as a red box. Note that doxygen if the
4524-# number of direct children of the root node in a graph is already larger than
4525-# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
4526-# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
4527+# The DIAFILE_DIRS tag can be used to specify one or more directories that
4528+# contain dia files that are included in the documentation (see the \diafile
4529+# command).
4530+
4531+DIAFILE_DIRS =
4532+
4533+# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
4534+# path where java can find the plantuml.jar file. If left blank, it is assumed
4535+# PlantUML is not used or called during a preprocessing step. Doxygen will
4536+# generate a warning when it encounters a \startuml command in this case and
4537+# will not generate output for the diagram.
4538+
4539+PLANTUML_JAR_PATH =
4540+
4541+# When using plantuml, the specified paths are searched for files specified by
4542+# the !include statement in a plantuml block.
4543+
4544+PLANTUML_INCLUDE_PATH =
4545+
4546+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
4547+# that will be shown in the graph. If the number of nodes in a graph becomes
4548+# larger than this value, doxygen will truncate the graph, which is visualized
4549+# by representing a node as a red box. Note that doxygen if the number of direct
4550+# children of the root node in a graph is already larger than
4551+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
4552+# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
4553+# Minimum value: 0, maximum value: 10000, default value: 50.
4554+# This tag requires that the tag HAVE_DOT is set to YES.
4555
4556 DOT_GRAPH_MAX_NODES = 50
4557
4558-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
4559-# graphs generated by dot. A depth value of 3 means that only nodes reachable
4560-# from the root by following a path via at most 3 edges will be shown. Nodes
4561-# that lay further from the root node will be omitted. Note that setting this
4562-# option to 1 or 2 may greatly reduce the computation time needed for large
4563-# code bases. Also note that the size of a graph can be further restricted by
4564+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
4565+# generated by dot. A depth value of 3 means that only nodes reachable from the
4566+# root by following a path via at most 3 edges will be shown. Nodes that lay
4567+# further from the root node will be omitted. Note that setting this option to 1
4568+# or 2 may greatly reduce the computation time needed for large code bases. Also
4569+# note that the size of a graph can be further restricted by
4570 # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
4571+# Minimum value: 0, maximum value: 1000, default value: 0.
4572+# This tag requires that the tag HAVE_DOT is set to YES.
4573
4574 MAX_DOT_GRAPH_DEPTH = 0
4575
4576 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
4577-# background. This is disabled by default, because dot on Windows does not
4578-# seem to support this out of the box. Warning: Depending on the platform used,
4579-# enabling this option may lead to badly anti-aliased labels on the edges of
4580-# a graph (i.e. they become hard to read).
4581+# background. This is disabled by default, because dot on Windows does not seem
4582+# to support this out of the box.
4583+#
4584+# Warning: Depending on the platform used, enabling this option may lead to
4585+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
4586+# read).
4587+# The default value is: NO.
4588+# This tag requires that the tag HAVE_DOT is set to YES.
4589
4590 DOT_TRANSPARENT = NO
4591
4592-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
4593+# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
4594 # files in one run (i.e. multiple -o and -T options on the command line). This
4595-# makes dot run faster, but since only newer versions of dot (>1.8.10)
4596-# support this, this feature is disabled by default.
4597+# makes dot run faster, but since only newer versions of dot (>1.8.10) support
4598+# this, this feature is disabled by default.
4599+# The default value is: NO.
4600+# This tag requires that the tag HAVE_DOT is set to YES.
4601
4602 DOT_MULTI_TARGETS = NO
4603
4604-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
4605-# generate a legend page explaining the meaning of the various boxes and
4606-# arrows in the dot generated graphs.
4607+# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
4608+# explaining the meaning of the various boxes and arrows in the dot generated
4609+# graphs.
4610+# The default value is: YES.
4611+# This tag requires that the tag HAVE_DOT is set to YES.
4612
4613 GENERATE_LEGEND = YES
4614
4615-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
4616-# remove the intermediate dot files that are used to generate
4617-# the various graphs.
4618+# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
4619+# files that are used to generate the various graphs.
4620+# The default value is: YES.
4621+# This tag requires that the tag HAVE_DOT is set to YES.
4622
4623 DOT_CLEANUP = YES
4624
4625=== modified file 'doc/abi_compatibility_tools.md'
4626--- doc/abi_compatibility_tools.md 2016-05-03 06:55:25 +0000
4627+++ doc/abi_compatibility_tools.md 2017-06-05 10:47:45 +0000
4628@@ -11,7 +11,7 @@
4629
4630 Compiles all the public libraries in the current tree and checks their ABI against the latest released archive version
4631
4632-* **make abi-check-<library>**
4633+* **make abi-check-\<library>**
4634
4635 Compiles only the specified library in the current tree and checks its ABI against the latest released archive version
4636
4637
4638=== modified file 'doc/building_source_for_arm.md'
4639--- doc/building_source_for_arm.md 2016-01-29 08:18:22 +0000
4640+++ doc/building_source_for_arm.md 2017-06-05 10:47:45 +0000
4641@@ -71,7 +71,7 @@
4642 Emulated sbuild package generation
4643 ----------------------------------
4644
4645-This uses qemu to compile the package. Substitute <version_string> for the .dsc
4646+This uses qemu to compile the package. Substitute \<version_string> for the .dsc
4647 file name generated by the debuild command.
4648
4649 $ cd mir_source_dir
4650@@ -85,11 +85,11 @@
4651 This uses a cross-compile toolchain to compile the package, and generally
4652 should be faster than the emulated sbuild package generation.
4653
4654-Substitute <version_string> for the .dsc file name generated by the debuild
4655+Substitute \<version_string> for the .dsc file name generated by the debuild
4656 command.
4657
4658 $ cd mir_source_dir
4659 $ debuild -S -uc -us
4660 $ cd ..
4661- $ sbuild -d vivid --host armhf --build amd64 mir_<version_string>.dsc
4662+ $ sbuild -d vivid --host armhf --build amd64 mir_\<version_string>.dsc
4663
4664
4665=== modified file 'doc/building_source_for_pc.md'
4666--- doc/building_source_for_pc.md 2016-01-29 08:18:22 +0000
4667+++ doc/building_source_for_pc.md 2017-06-05 10:47:45 +0000
4668@@ -54,7 +54,7 @@
4669 The binaries created in the bin subdirectory of the project directory can be
4670 used directly. For example,
4671
4672- $ bin/mir_demo_server --launch_client bin/mir_demo_client_multiwin
4673+ $ bin/mir_demo_server --launch-client bin/mir_demo_client_multiwin
4674
4675 Other examples described elsewhere in this documentation assume you're using the
4676 installed version and simply need "bin/" adding to specify the local build.
4677
4678=== modified file 'doc/component_reports.md'
4679--- doc/component_reports.md 2015-04-28 07:54:10 +0000
4680+++ doc/component_reports.md 2017-06-05 10:47:45 +0000
4681@@ -23,6 +23,7 @@
4682 display-report | log,lttng
4683 input-report | log,lttng
4684 legacy-input-report | log
4685+seat-report | log
4686 msg-processor-report | log,lttng
4687 session-mediator-report | log,lttng
4688 scene-report | log,lttng
4689
4690=== modified file 'doc/demo_server_controls.md'
4691--- doc/demo_server_controls.md 2016-01-29 08:18:22 +0000
4692+++ doc/demo_server_controls.md 2017-06-05 10:47:45 +0000
4693@@ -33,16 +33,16 @@
4694 - Close surface: *Ctrl-F4*
4695 - Move window: *Alt-leftmousebutton* drag
4696 - Resize window: *Alt-middle_button* drag
4697- - Maximize/restore current window: Alt-F11
4698- - Maximize/restore current window: Shift-F11
4699- - Maximize/restore current window: Ctrl-F11
4700+ - Maximize/restore current window: *Alt-F11*
4701+ - Vertically maximize/restore current window: *Shift-F11*
4702+ - Horizontally maximize/restore current window: *Ctrl-F11*
4703
4704 For those writing client code request to set the surface attribute
4705 `mir_surface_attrib_state` are honoured:
4706- - `mir_surface_state_restored`: restores the window
4707- - `mir_surface_state_maximized`: maximizes size
4708- - `mir_surface_state_vertmaximized`: maximizes height
4709- - `mir_surface_state_horizmaximized`: maximizes width
4710+ - `mir_window_state_restored`: restores the window
4711+ - `mir_window_state_maximized`: maximizes size
4712+ - `mir_window_state_vertmaximized`: maximizes height
4713+ - `mir_window_state_horizmaximized`: maximizes width
4714
4715 For a quick demo try:
4716
4717
4718=== modified file 'doc/footer.html.in'
4719--- doc/footer.html.in 2015-06-17 05:20:42 +0000
4720+++ doc/footer.html.in 2017-06-05 10:47:45 +0000
4721@@ -1,5 +1,5 @@
4722 <hr>
4723-<p align="center">Copyright &copy; 2012-2015 Canonical Ltd. <br />
4724+<p align="center">Copyright &copy; 2012-2016 Canonical Ltd. <br />
4725 Generated on @DATE_TODAY@</p>
4726 </body>
4727 </html>
4728
4729=== modified file 'doc/mainpage.md'
4730--- doc/mainpage.md 2016-05-03 06:55:25 +0000
4731+++ doc/mainpage.md 2017-06-05 10:47:45 +0000
4732@@ -47,8 +47,8 @@
4733 Getting involved
4734 ----------------
4735
4736-The best place to ask questions and discuss about the Mir project is the
4737-#ubuntu-mir IRC channel on freenode.
4738+The best place to ask questions and discuss about the Mir project is
4739+the \#ubuntu-mir IRC channel on freenode.
4740
4741 The Mir project is hosted on Launchpad: https://launchpad.net/mir
4742
4743@@ -98,8 +98,6 @@
4744 "server_example_window_management.cpp: simple window management examples"
4745 - \subpage server_example_canonical_window_manager.cpp
4746 "server_example_canonical_window_manager.cpp: canonical window management policy"
4747- - \subpage server_example_tiling_window_manager.cpp
4748- "server_example_tiling_window_manager.cpp: an alternative window management policy"
4749 - \subpage server_example_custom_compositor.cpp
4750 "server_example_custom_compositor.cpp: demonstrate writing an alternative GL rendering code"
4751
4752@@ -112,5 +110,5 @@
4753 - \ref component_reports
4754 - \ref dso_versioning_guide
4755 - \ref abi_compatibility_tools
4756- - \ref mir_performance_framework
4757+ - \ref performance_framework
4758 - \ref latency "Measuring visual latency"
4759
4760=== modified file 'doc/measuring_latency.md'
4761--- doc/measuring_latency.md 2016-04-07 03:13:18 +0000
4762+++ doc/measuring_latency.md 2017-06-05 10:47:45 +0000
4763@@ -22,3 +22,31 @@
4764 4. Run `mirvanity`
4765 5. Wait until the output (in the console/stdout for now) shows that the
4766 test is complete (which means enough data has been gathered).
4767+
4768+Accuracy
4769+--------
4770+
4771+A common question is how accurate mirvanity's results are. An LCD monitor
4772+typically refreshes at 60Hz on an interval of about 16.6ms, and you have
4773+the added variability of the camera which even at high speed has a frame
4774+interval of about 5ms. So surely you have at least 22ms of variability?
4775+
4776+Yes indeed instantaneous measurements will have wide variability that is
4777+the sum of the display and camera frame intervals. However both of these
4778+devices are very precise even though they're not in phase. So using
4779+many samples over a short period of time, `mirvanity` calculates the
4780+expected variability and compares it to the measured variability. After
4781+the expectation starts to match the measurement you have a good estimate of
4782+the baseline latency and estimated error range. `mirvanity` prints out this
4783+error and for a typical 60Hz monitor and common 187Hz PlayStation Eye camera,
4784+we observe pretty much the variability expected of around 22ms.
4785+
4786+Knowing this variability is the sum of both waves, you can simply take the
4787+trough (or peak) as your measurement and thus eliminate the variability of
4788+the display and camera from the results. If you take the trough, you are
4789+excluding all display and camera latency. If you take the peak then you are
4790+including worst case display and camera latency. `mirvanity` reports all of
4791+these numbers for completeness. This is based on the
4792+[Superposition Principle](https://en.wikipedia.org/wiki/Superposition_principle)
4793+and typically yields a stable measurement with approximately 3ms or less
4794+random variation.
4795
4796=== modified file 'doc/setup_vmware_for_mir.md'
4797--- doc/setup_vmware_for_mir.md 2016-01-29 08:18:22 +0000
4798+++ doc/setup_vmware_for_mir.md 2017-06-05 10:47:45 +0000
4799@@ -6,7 +6,7 @@
4800 1. Go to https://my.vmware.com/web/vmware/downloads and download
4801 VMware Player (last in Desktop & End-User Computing section).
4802
4803-2. Install VMware player with: sudo bash VMware-Player-<VERSION>.x86_64.bundle
4804+2. Install VMware player with: sudo bash VMware-Player-\<VERSION>.x86_64.bundle
4805
4806 3. Get the latest vivid daily iso (*not* the unity-next iso!).
4807
4808
4809=== modified file 'examples/CMakeLists.txt'
4810--- examples/CMakeLists.txt 2016-06-02 05:33:50 +0000
4811+++ examples/CMakeLists.txt 2017-06-05 10:47:45 +0000
4812@@ -70,6 +70,12 @@
4813 target_link_libraries(mir_demo_client_target
4814 eglapp
4815 )
4816+mir_add_wrapped_executable(mir_demo_client_pointer_confinement
4817+ pointer_confinement.c
4818+)
4819+target_link_libraries(mir_demo_client_pointer_confinement
4820+ eglapp
4821+)
4822 mir_add_wrapped_executable(mir_demo_client_camera
4823 camera.c
4824 )
4825@@ -180,6 +186,7 @@
4826 ${PROJECT_SOURCE_DIR}/include/client
4827 ${PROJECT_SOURCE_DIR}/include/platform
4828 ${PROJECT_SOURCE_DIR}/include/renderers/gl
4829+ ${PROJECT_SOURCE_DIR}/include/renderers/sw
4830 ${GL_INCLUDE_DIRS}
4831 )
4832
4833
4834=== modified file 'examples/animated_cursor_demo_client.c'
4835--- examples/animated_cursor_demo_client.c 2016-05-03 06:55:25 +0000
4836+++ examples/animated_cursor_demo_client.c 2017-06-05 10:47:45 +0000
4837@@ -66,7 +66,7 @@
4838 mir_buffer_stream_swap_buffers_sync(stream);
4839 }
4840
4841-MirBufferStream* make_cursor_stream(MirConnection *connection, MirSurface *surface)
4842+MirBufferStream* make_cursor_stream(MirConnection *connection, MirWindow *surface)
4843 {
4844 MirBufferStream* stream = mir_connection_create_buffer_stream_sync(connection,
4845 24, 24, mir_pixel_format_argb_8888, mir_buffer_usage_software);
4846@@ -74,7 +74,7 @@
4847 animate_cursor(stream);
4848
4849 MirCursorConfiguration* conf = mir_cursor_configuration_from_buffer_stream(stream, 0, 0);
4850- mir_wait_for(mir_surface_configure_cursor(surface, conf));
4851+ mir_window_configure_cursor(surface, conf);
4852 mir_cursor_configuration_destroy(conf);
4853
4854 return stream;
4855@@ -84,7 +84,7 @@
4856 {
4857 unsigned int width = 128, height = 128;
4858
4859- if (!mir_eglapp_init(argc, argv, &width, &height))
4860+ if (!mir_eglapp_init(argc, argv, &width, &height, NULL))
4861 return 1;
4862
4863 glClearColor(0.5, 0.5, 0.5, mir_eglapp_background_opacity);
4864@@ -92,14 +92,14 @@
4865 mir_eglapp_swap_buffers();
4866
4867 MirBufferStream* stream = make_cursor_stream(mir_eglapp_native_connection(),
4868- mir_eglapp_native_surface());
4869+ mir_eglapp_native_window());
4870
4871 while (mir_eglapp_running())
4872 {
4873 animate_cursor(stream);
4874 }
4875
4876- mir_eglapp_shutdown();
4877+ mir_eglapp_cleanup();
4878
4879 return 0;
4880 }
4881
4882=== modified file 'examples/basic.c'
4883--- examples/basic.c 2016-01-29 08:18:22 +0000
4884+++ examples/basic.c 2017-06-05 10:47:45 +0000
4885@@ -17,6 +17,7 @@
4886 */
4887
4888 #include "mir_toolkit/mir_client_library.h"
4889+#include "mir_toolkit/extensions/graphics_module.h"
4890
4891 #include <assert.h>
4892 #include <string.h>
4893@@ -56,42 +57,20 @@
4894 typedef struct MirDemoState
4895 {
4896 MirConnection *connection;
4897- MirSurface *surface;
4898+ MirWindow* window;
4899 } MirDemoState;
4900 ///\internal [MirDemoState_tag]
4901
4902-///\internal [Callback_tag]
4903-// Callback to update MirDemoState on connection
4904-static void connection_callback(MirConnection *new_connection, void *context)
4905-{
4906- ((MirDemoState*)context)->connection = new_connection;
4907-}
4908-
4909-// Callback to update MirDemoState on surface_create
4910-static void surface_create_callback(MirSurface *new_surface, void *context)
4911-{
4912- ((MirDemoState*)context)->surface = new_surface;
4913-}
4914-
4915-// Callback to update MirDemoState on surface_release
4916-static void surface_release_callback(MirSurface *old_surface, void *context)
4917-{
4918- (void)old_surface;
4919- ((MirDemoState*)context)->surface = 0;
4920-}
4921-///\internal [Callback_tag]
4922-
4923 int demo_client(const char* server, int buffer_swap_count)
4924 {
4925 MirDemoState mcd;
4926 mcd.connection = 0;
4927- mcd.surface = 0;
4928+ mcd.window = 0;
4929
4930 puts("Starting");
4931
4932 ///\internal [connect_tag]
4933- // Call mir_connect and wait for callback to complete.
4934- mir_wait_for(mir_connect(server, __FILE__, connection_callback, &mcd));
4935+ mcd.connection = mir_connect_sync(server, __FILE__);
4936 puts("Connected");
4937 ///\internal [connect_tag]
4938
4939@@ -106,21 +85,13 @@
4940 return 1;
4941 }
4942
4943- // We can query information about the platform we're running on
4944- {
4945- MirPlatformPackage platform_package;
4946- platform_package.data_items = -1;
4947- platform_package.fd_items = -1;
4948-
4949- mir_connection_get_platform(mcd.connection, &platform_package);
4950- assert(0 <= platform_package.data_items);
4951- assert(0 <= platform_package.fd_items);
4952- }
4953-
4954 {
4955 MirModuleProperties properties = { NULL, -1, -1, -1, NULL };
4956
4957- mir_connection_get_graphics_module(mcd.connection, &properties);
4958+ MirExtensionGraphicsModuleV1 const* ext = mir_extension_graphics_module_v1(mcd.connection);
4959+ assert(ext);
4960+
4961+ ext->graphics_module(mcd.connection, &properties);
4962
4963 assert(NULL != properties.name);
4964 assert(0 <= properties.major_version);
4965@@ -134,34 +105,34 @@
4966 unsigned int valid_formats;
4967 mir_connection_get_available_surface_formats(mcd.connection, &pixel_format, 1, &valid_formats);
4968
4969- MirSurfaceSpec *spec =
4970- mir_connection_create_spec_for_normal_surface(mcd.connection, 640, 480, pixel_format);
4971+ MirWindowSpec *spec = mir_create_normal_window_spec(mcd.connection, 640, 480);
4972 assert(spec != NULL);
4973- mir_surface_spec_set_name(spec, __FILE__);
4974-
4975- ///\internal [surface_create_tag]
4976- // ...we create a surface using that format and wait for callback to complete.
4977- mir_wait_for(mir_surface_create(spec, surface_create_callback, &mcd));
4978- puts("Surface created");
4979- ///\internal [surface_create_tag]
4980-
4981- mir_surface_spec_release(spec);
4982+ mir_window_spec_set_pixel_format(spec, pixel_format);
4983+ mir_window_spec_set_name(spec, __FILE__);
4984+
4985+ ///\internal [surface_create_tag]
4986+ // ...we create a surface using that format.
4987+ mcd.window = mir_create_window_sync(spec);
4988+ puts("Window created");
4989+ ///\internal [surface_create_tag]
4990+
4991+ mir_window_spec_release(spec);
4992
4993 // We expect a surface handle;
4994 // we expect it to be valid; and,
4995 // we don't expect an error description
4996- assert(mcd.surface != NULL);
4997- if(!mir_surface_is_valid(mcd.surface))
4998+ assert(mcd.window != NULL);
4999+ if (!mir_window_is_valid(mcd.window))
5000 {
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to all changes: