Mir

Merge lp:mir/0.25 into lp:mir/ubuntu

Proposed by Brandon Schaefer
Status: Merged
Approved by: Brandon Schaefer
Approved revision: 3817
Merged at revision: 1293
Proposed branch: lp:mir/0.25
Merge into: lp:mir/ubuntu
Diff against target: 61613 lines (+22843/-14637)
874 files modified
.bzrignore (+2/-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)
cmake/FindGtestGmock.cmake (+29/-10)
cmake/MirCommon.cmake (+0/-18)
cross-compile-chroot.sh (+5/-0)
debian/changelog (+103/-0)
debian/control (+62/-17)
debian/copyright (+1/-1)
debian/libmircommon7.install (+1/-1)
debian/libmircore-dev.install (+3/-0)
debian/libmircore1.install (+1/-0)
debian/libmirplatform14.install (+1/-1)
debian/libmirrenderer-dev.install (+2/-0)
debian/libmirserver42.install (+1/-1)
debian/mir-platform-graphics-android11.install (+1/-1)
debian/mir-platform-graphics-mesa-kms11.install (+1/-1)
debian/mir-platform-graphics-mesa-x11.install (+1/-1)
debian/mir-platform-input-evdev6.install (+1/-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/component_reports.md (+1/-0)
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 (+2/-2)
examples/camera.c (+44/-14)
examples/client_touch_validator.cpp (+2/-2)
examples/cursors_demo_client.c (+2/-2)
examples/demo_client_display_config.c (+2/-2)
examples/eglapp.c (+208/-161)
examples/eglapp.h (+18/-4)
examples/eglcounter.cpp (+2/-2)
examples/eglflash.c (+2/-2)
examples/eglplasma.c (+2/-2)
examples/eglstateswitcher.c (+2/-2)
examples/egltriangle.c (+2/-2)
examples/multi_stream.cpp (+17/-10)
examples/pointer_confinement.c (+283/-0)
examples/prompt_session.c (+2/-2)
examples/render_surfaces.cpp (+16/-2)
examples/scroll.cpp (+2/-2)
examples/server_example_adorning_compositor.cpp (+1/-1)
examples/server_example_canonical_window_manager.cpp (+6/-2)
examples/server_example_input_device_config.cpp (+0/-3)
examples/server_example_window_management_info.cpp (+6/-2)
examples/target.c (+2/-2)
examples/tooltip.c (+4/-4)
include/client/mir/event_printer.h (+2/-1)
include/client/mir/events/event_builders.h (+18/-8)
include/client/mir_toolkit/client_types.h (+30/-36)
include/client/mir_toolkit/cursors.h (+4/-2)
include/client/mir_toolkit/events/event.h (+43/-26)
include/client/mir_toolkit/events/input/input_event.h (+11/-9)
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 (+3/-3)
include/client/mir_toolkit/events/input_device_state_event.h (+9/-8)
include/client/mir_toolkit/events/keymap_event.h (+1/-2)
include/client/mir_toolkit/events/prompt_session_event.h (+1/-1)
include/client/mir_toolkit/events/surface_event.h (+4/-4)
include/client/mir_toolkit/events/surface_output_event.h (+11/-0)
include/client/mir_toolkit/events/surface_placement.h (+47/-0)
include/client/mir_toolkit/mir_buffer_stream.h (+62/-15)
include/client/mir_toolkit/mir_connection.h (+20/-3)
include/client/mir_toolkit/mir_cookie.h (+7/-6)
include/client/mir_toolkit/mir_cursor_configuration.h (+1/-1)
include/client/mir_toolkit/mir_display_configuration.h (+97/-0)
include/client/mir_toolkit/mir_input_device.h (+1/-1)
include/client/mir_toolkit/mir_surface.h (+81/-13)
include/client/mir_toolkit/mir_wait.h (+3/-2)
include/client/mir_toolkit/version.h (+2/-2)
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 (+1/-1)
include/common/mir/graphics/native_buffer.h (+8/-12)
include/common/mir/input/keymap.h (+6/-0)
include/common/mir/posix_rw_mutex.h (+69/-0)
include/common/mir/time/posix_timestamp.h (+59/-0)
include/cookie/mir/cookie/authority.h (+1/-1)
include/core/mir/geometry/rectangle.h (+5/-0)
include/core/mir_toolkit/common.h (+141/-1)
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 (+29/-16)
include/platform/mir/graphics/frame.h (+47/-0)
include/platform/mir/graphics/gamma_curves.h (+49/-0)
include/platform/mir/graphics/gl_context.h (+0/-44)
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/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/session.h (+3/-0)
include/server/mir/frontend/session_mediator_report.h (+0/-2)
include/server/mir/input/seat_report.h (+55/-0)
include/server/mir/main_loop.h (+6/-2)
include/server/mir/observer_registrar.h (+92/-0)
include/server/mir/scene/null_surface_observer.h (+1/-0)
include/server/mir/scene/prompt_session.h (+4/-4)
include/server/mir/scene/surface.h (+3/-1)
include/server/mir/scene/surface_creation_parameters.h (+6/-1)
include/server/mir/scene/surface_observer.h (+2/-0)
include/server/mir/server.h (+7/-0)
include/server/mir/server_status_listener.h (+2/-0)
include/server/mir/shell/abstract_shell.h (+4/-0)
include/server/mir/shell/shell_report.h (+2/-0)
include/server/mir/shell/surface_specification.h (+6/-1)
include/test/mir/test/doubles/fake_display.h (+4/-2)
include/test/mir/test/doubles/mock_display_configuration.h (+4/-4)
include/test/mir/test/doubles/mock_egl.h (+4/-0)
include/test/mir/test/doubles/mock_seat_report.h (+52/-0)
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_session.h (+5/-3)
include/test/mir/test/doubles/stub_surface.h (+1/-0)
include/test/mir/test/event_matchers.h (+8/-24)
include/test/mir_test_framework/any_surface.h (+3/-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/placement_applying_shell.h (+3/-0)
include/test/mir_test_framework/stub_server_platform_factory.h (+2/-10)
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 (+1/-1)
playground/demo-shell/window_manager.h (+1/-1)
playground/diamond.c (+134/-0)
playground/diamond.h (+40/-0)
playground/egldiamond_render_surface.c (+173/-0)
playground/mir_egl_platform_shim.c (+103/-0)
playground/mir_egl_platform_shim.h (+37/-0)
playground/render_surface.cpp (+252/-0)
src/CMakeLists.txt (+5/-2)
src/capnproto/CMakeLists.txt (+29/-0)
src/capnproto/mir_event.capnp (+238/-0)
src/client/CMakeLists.txt (+9/-13)
src/client/atomic_callback.h (+3/-3)
src/client/buffer.cpp (+2/-7)
src/client/buffer.h (+3/-3)
src/client/buffer_stream.cpp (+70/-251)
src/client/buffer_stream.h (+9/-3)
src/client/buffer_vault.cpp (+33/-19)
src/client/buffer_vault.h (+2/-2)
src/client/client_buffer_depository.cpp (+0/-92)
src/client/client_buffer_depository.h (+0/-78)
src/client/client_buffer_stream.h (+4/-0)
src/client/connection_configuration.h (+2/-0)
src/client/connection_surface_map.cpp (+31/-7)
src/client/connection_surface_map.h (+5/-1)
src/client/default_connection_configuration.cpp (+13/-2)
src/client/default_connection_configuration.h (+2/-0)
src/client/display_configuration_api.cpp (+113/-1)
src/client/error_buffer.cpp (+2/-3)
src/client/error_buffer.h (+2/-3)
src/client/error_handler.h (+35/-0)
src/client/error_stream.cpp (+123/-1)
src/client/error_stream.h (+50/-1)
src/client/event.cpp (+96/-71)
src/client/event_printer.cpp (+18/-5)
src/client/events/event_builders.cpp (+77/-42)
src/client/handle_event_exception.h (+30/-0)
src/client/input/android/android_input_receiver.cpp (+27/-16)
src/client/input/input_event.cpp (+59/-66)
src/client/input/xkb_mapper.cpp (+151/-28)
src/client/mir_buffer.h (+4/-3)
src/client/mir_buffer_api.cpp (+40/-20)
src/client/mir_buffer_stream_api.cpp (+90/-3)
src/client/mir_connection.cpp (+90/-23)
src/client/mir_connection.h (+35/-9)
src/client/mir_connection_api.cpp (+16/-1)
src/client/mir_cookie.cpp (+10/-9)
src/client/mir_cookie.h (+6/-4)
src/client/mir_cursor_api.cpp (+16/-15)
src/client/mir_render_surface.h (+59/-0)
src/client/mir_render_surface_api.cpp (+183/-0)
src/client/mir_surface.cpp (+7/-2)
src/client/mir_surface.h (+6/-2)
src/client/mir_surface_api.cpp (+64/-2)
src/client/mirclient.pc.in (+3/-4)
src/client/no_tls_future-inl.h (+356/-73)
src/client/probing_client_platform_factory.cpp (+5/-3)
src/client/probing_client_platform_factory.h (+3/-1)
src/client/render_surface.cpp (+181/-0)
src/client/render_surface.h (+115/-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_display_server.cpp (+7/-7)
src/client/rpc/mir_display_server.h (+4/-4)
src/client/rpc/mir_protobuf_rpc_channel.cpp (+19/-1)
src/client/rpc/mir_protobuf_rpc_channel.h (+3/-0)
src/client/screencast_stream.cpp (+29/-9)
src/client/screencast_stream.h (+5/-3)
src/client/symbols.map (+46/-3)
src/common/CMakeLists.txt (+11/-8)
src/common/dispatch/CMakeLists.txt (+0/-1)
src/common/dispatch/legacy_readable_fd.cpp (+0/-34)
src/common/dispatch/multiplexing_dispatchable.cpp (+8/-78)
src/common/events/CMakeLists.txt (+4/-0)
src/common/events/close_surface_event.cpp (+4/-4)
src/common/events/event.cpp (+71/-106)
src/common/events/input_configuration_event.cpp (+8/-8)
src/common/events/input_device_state_event.cpp (+31/-128)
src/common/events/input_event.cpp (+0/-5)
src/common/events/keyboard_event.cpp (+31/-26)
src/common/events/keymap_event.cpp (+11/-113)
src/common/events/motion_event.cpp (+130/-109)
src/common/events/orientation_event.cpp (+6/-6)
src/common/events/prompt_session_event.cpp (+4/-4)
src/common/events/resize_event.cpp (+8/-8)
src/common/events/surface_event.cpp (+8/-8)
src/common/events/surface_output_event.cpp (+22/-12)
src/common/events/surface_placement_event.cpp (+55/-0)
src/common/fatal/CMakeLists.txt (+0/-3)
src/common/geometry/CMakeLists.txt (+0/-27)
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 (+101/-112)
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 (+8/-3)
src/include/client/mir/client_platform.h (+2/-1)
src/include/client/mir/client_platform_factory.h (+16/-2)
src/include/client/mir_toolkit/client_types_nbs.h (+1/-1)
src/include/client/mir_toolkit/mir_buffer.h (+17/-20)
src/include/client/mir_toolkit/mir_buffer_private.h (+51/-0)
src/include/client/mir_toolkit/mir_presentation_chain.h (+1/-0)
src/include/client/mir_toolkit/mir_render_surface.h (+160/-0)
src/include/common/mir/events/close_surface_event.h (+0/-3)
src/include/common/mir/events/event.h (+9/-63)
src/include/common/mir/events/input_configuration_event.h (+2/-7)
src/include/common/mir/events/input_device_state_event.h (+4/-25)
src/include/common/mir/events/input_event.h (+0/-1)
src/include/common/mir/events/keyboard_event.h (+3/-15)
src/include/common/mir/events/keymap_event.h (+0/-18)
src/include/common/mir/events/motion_event.h (+9/-40)
src/include/common/mir/events/orientation_event.h (+0/-4)
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 (+0/-5)
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/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 (+4/-4)
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/options/configuration.h (+2/-0)
src/include/server/mir/compositor/buffer_stream.h (+1/-0)
src/include/server/mir/default_server_configuration.h (+10/-4)
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 (+2/-0)
src/include/server/mir/frontend/event_sink.h (+2/-0)
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 (+1/-0)
src/include/server/mir/scene/surface_observers.h (+1/-0)
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 (+6/-30)
src/platform/graphics/gamma_curves.cpp (+38/-0)
src/platform/mirplatform.pc.in (+1/-0)
src/platform/options/default_configuration.cpp (+7/-3)
src/platform/symbols.map (+11/-12)
src/platforms/CMakeLists.txt (+5/-6)
src/platforms/android/client/CMakeLists.txt (+2/-4)
src/platforms/android/client/android_client_platform.cpp (+21/-10)
src/platforms/android/client/android_client_platform.h (+6/-3)
src/platforms/android/client/buffer.cpp (+60/-24)
src/platforms/android/client/buffer.h (+9/-4)
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 (+5/-6)
src/platforms/android/client/egl_native_surface_interpreter.h (+18/-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 (+30/-0)
src/platforms/android/common/mir_native_window.cpp (+6/-0)
src/platforms/android/common/syncfence.cpp (+17/-0)
src/platforms/android/include/android_format_conversion-inl.h (+1/-0)
src/platforms/android/include/android_native_buffer.h (+3/-1)
src/platforms/android/include/fence.h (+3/-0)
src/platforms/android/include/mir_native_window.h (+2/-1)
src/platforms/android/include/native_buffer.h (+11/-7)
src/platforms/android/include/sync_fence.h (+5/-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 (+5/-1)
src/platforms/android/server/fb_device.cpp (+6/-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 (+2/-4)
src/platforms/android/server/gralloc_module.cpp (+3/-3)
src/platforms/android/server/graphic_buffer_allocator.cpp (+0/-19)
src/platforms/android/server/graphic_buffer_allocator.h (+1/-2)
src/platforms/android/server/hal_component_factory.cpp (+4/-1)
src/platforms/android/server/hwc_blanking_control.cpp (+19/-7)
src/platforms/android/server/hwc_configuration.h (+6/-4)
src/platforms/android/server/hwc_device.cpp (+2/-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 (+10/-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 (+2/-2)
src/platforms/android/server/server_render_window.h (+1/-1)
src/platforms/android/utils/CMakeLists.txt (+1/-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 (+22/-8)
src/platforms/common/server/CMakeLists.txt (+4/-1)
src/platforms/common/server/kms-utils/CMakeLists.txt (+6/-2)
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 (+26/-15)
src/platforms/eglstream-kms/client/client_buffer.h (+7/-5)
src/platforms/eglstream-kms/client/client_platform.cpp (+9/-3)
src/platforms/eglstream-kms/client/client_platform.h (+1/-0)
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 (+3/-4)
src/platforms/eglstream-kms/server/buffer_allocator.cpp (+3/-5)
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 (+0/-2)
src/platforms/eglstream-kms/server/platform.cpp (+9/-3)
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 (+45/-19)
src/platforms/mesa/client/client_buffer.h (+9/-5)
src/platforms/mesa/client/client_platform.cpp (+11/-21)
src/platforms/mesa/client/client_platform.h (+2/-2)
src/platforms/mesa/client/client_platform_factory.cpp (+3/-1)
src/platforms/mesa/client/native_surface.cpp (+27/-9)
src/platforms/mesa/client/native_surface.h (+3/-2)
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 (+42/-0)
src/platforms/mesa/server/CMakeLists.txt (+2/-0)
src/platforms/mesa/server/buffer_allocator.cpp (+6/-35)
src/platforms/mesa/server/buffer_allocator.h (+1/-2)
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 (+2/-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 (+39/-10)
src/platforms/mesa/server/kms/display.h (+11/-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/kms_output.h (+3/-0)
src/platforms/mesa/server/kms/kms_page_flipper.cpp (+36/-10)
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/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 (+54/-1)
src/platforms/mesa/server/kms/real_kms_display_configuration.h (+1/-0)
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 (+115/-132)
src/platforms/mesa/server/x11/graphics/display.h (+32/-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 (+7/-2)
src/platforms/mesa/server/x11/graphics/display_configuration.h (+2/-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 (+19/-0)
src/protobuf/mir_protobuf_wire.proto (+1/-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 (+8/-4)
src/server/compositor/buffer_map.h (+3/-1)
src/server/compositor/buffer_queue.cpp (+0/-699)
src/server/compositor/buffer_queue.h (+0/-135)
src/server/compositor/buffer_stream_factory.cpp (+9/-24)
src/server/compositor/buffer_stream_factory.h (+1/-3)
src/server/compositor/buffer_stream_surfaces.cpp (+0/-166)
src/server/compositor/buffer_stream_surfaces.h (+0/-85)
src/server/compositor/compositing_screencast.cpp (+0/-1)
src/server/compositor/default_configuration.cpp (+2/-3)
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 (+11/-0)
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 (+11/-0)
src/server/compositor/stream.h (+2/-0)
src/server/compositor/temporary_buffers.cpp (+1/-17)
src/server/compositor/temporary_buffers.h (+0/-3)
src/server/display_server.cpp (+1/-2)
src/server/frontend/CMakeLists.txt (+0/-2)
src/server/frontend/authorizing_display_changer.cpp (+8/-0)
src/server/frontend/authorizing_display_changer.h (+2/-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/event_sender.cpp (+10/-0)
src/server/frontend/event_sender.h (+1/-0)
src/server/frontend/protobuf_buffer_packer.cpp (+13/-0)
src/server/frontend/protobuf_buffer_packer.h (+1/-0)
src/server/frontend/protobuf_message_processor.cpp (+8/-11)
src/server/frontend/protobuf_message_processor.h (+1/-1)
src/server/frontend/session_mediator.cpp (+83/-125)
src/server/frontend/session_mediator.h (+7/-8)
src/server/glib_main_loop.cpp (+16/-0)
src/server/graphics/CMakeLists.txt (+4/-1)
src/server/graphics/default_configuration.cpp (+10/-21)
src/server/graphics/nested/CMakeLists.txt (+3/-0)
src/server/graphics/nested/buffer.cpp (+200/-0)
src/server/graphics/nested/buffer.h (+59/-0)
src/server/graphics/nested/display.cpp (+30/-25)
src/server/graphics/nested/display.h (+19/-6)
src/server/graphics/nested/display_buffer.cpp (+111/-12)
src/server/graphics/nested/display_buffer.h (+28/-7)
src/server/graphics/nested/host_chain.h (+45/-0)
src/server/graphics/nested/host_connection.h (+19/-2)
src/server/graphics/nested/host_stream.h (+46/-0)
src/server/graphics/nested/host_surface.h (+2/-1)
src/server/graphics/nested/host_surface_spec.h (+49/-0)
src/server/graphics/nested/input_platform.cpp (+26/-21)
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 (+267/-4)
src/server/graphics/nested/mir_client_host_connection.h (+12/-2)
src/server/graphics/nested/native_buffer.h (+63/-0)
src/server/graphics/nested/nested_display_configuration.cpp (+13/-4)
src/server/graphics/nested/nested_display_configuration.h (+3/-0)
src/server/graphics/nested/passthrough_option.h (+35/-0)
src/server/graphics/nested/platform.cpp (+128/-0)
src/server/graphics/nested/platform.h (+66/-0)
src/server/graphics/software_cursor.cpp (+14/-4)
src/server/input/CMakeLists.txt (+1/-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/default-theme.h (+165/-165)
src/server/input/default_configuration.cpp (+4/-2)
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 (+16/-1)
src/server/input/default_input_device_hub.h (+5/-1)
src/server/input/key_repeat_dispatcher.cpp (+25/-16)
src/server/input/seat_input_device_tracker.cpp (+38/-14)
src/server/input/seat_input_device_tracker.h (+9/-2)
src/server/input/surface_input_dispatcher.cpp (+30/-48)
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/default_server_configuration.cpp (+9/-0)
src/server/report/logging/CMakeLists.txt (+1/-0)
src/server/report/logging/display_configuration_report.cpp (+18/-28)
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 (+7/-1)
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 (+0/-2)
src/server/report/logging_report_factory.h (+1/-0)
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 (+5/-0)
src/server/report/lttng/session_mediator_report.cpp (+0/-1)
src/server/report/lttng/session_mediator_report.h (+0/-1)
src/server/report/lttng/session_mediator_report_tp.h (+0/-1)
src/server/report/lttng_report_factory.h (+1/-0)
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 (+11/-0)
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 (+0/-2)
src/server/report/null_report_factory.h (+2/-0)
src/server/report/report_factory.h (+2/-0)
src/server/scene/CMakeLists.txt (+1/-0)
src/server/scene/application_session.cpp (+6/-0)
src/server/scene/application_session.h (+1/-0)
src/server/scene/basic_surface.cpp (+41/-20)
src/server/scene/basic_surface.h (+1/-3)
src/server/scene/default_configuration.cpp (+12/-2)
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 (+5/-0)
src/server/scene/global_event_sender.h (+1/-0)
src/server/scene/legacy_surface_change_notification.cpp (+4/-0)
src/server/scene/legacy_surface_change_notification.h (+1/-0)
src/server/scene/mediating_display_changer.cpp (+221/-39)
src/server/scene/mediating_display_changer.h (+7/-5)
src/server/scene/null_surface_observer.cpp (+1/-0)
src/server/scene/output_properties_cache.cpp (+1/-0)
src/server/scene/output_properties_cache.h (+1/-0)
src/server/scene/surface_allocator.cpp (+0/-8)
src/server/scene/surface_event_source.cpp (+6/-0)
src/server/scene/unsupported_coordinate_translator.cpp (+3/-2)
src/server/server.cpp (+3/-62)
src/server/shell/abstract_shell.cpp (+54/-2)
src/server/shell/canonical_window_manager.cpp (+4/-0)
src/server/symbols.map (+4/-1)
src/utils/out.c (+1/-26)
src/utils/vanity.c (+112/-18)
tests/CMakeLists.txt (+6/-12)
tests/acceptance-tests/CMakeLists.txt (+5/-1)
tests/acceptance-tests/buffer_stream_arrangement.h (+101/-0)
tests/acceptance-tests/server_configuration_options.cpp (+32/-19)
tests/acceptance-tests/staging/CMakeLists.txt (+10/-0)
tests/acceptance-tests/staging/test_buffer_stream_arrangement.cpp (+85/-0)
tests/acceptance-tests/staging/test_presentation_chain.cpp (+60/-10)
tests/acceptance-tests/staging/test_render_surface.cpp (+141/-0)
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 (+153/-195)
tests/acceptance-tests/test_client_input.cpp (+22/-21)
tests/acceptance-tests/test_client_library.cpp (+0/-31)
tests/acceptance-tests/test_client_surface_events.cpp (+22/-3)
tests/acceptance-tests/test_client_surface_visibility.cpp (+2/-0)
tests/acceptance-tests/test_client_surfaces.cpp (+22/-0)
tests/acceptance-tests/test_confined_pointer.cpp (+120/-21)
tests/acceptance-tests/test_custom_input_dispatcher.cpp (+0/-3)
tests/acceptance-tests/test_custom_window_management.cpp (+235/-1)
tests/acceptance-tests/test_latency.cpp (+36/-4)
tests/acceptance-tests/test_nested_input.cpp (+1/-1)
tests/acceptance-tests/test_nested_mir.cpp (+138/-54)
tests/acceptance-tests/test_new_display_configuration.cpp (+574/-20)
tests/acceptance-tests/test_prompt_session_client_api.cpp (+23/-17)
tests/acceptance-tests/test_server_disconnect.cpp (+6/-1)
tests/acceptance-tests/test_session_mediator_report.cpp (+1/-2)
tests/acceptance-tests/test_unresponsive_client.cpp (+7/-2)
tests/acceptance-tests/throwback/CMakeLists.txt (+0/-2)
tests/acceptance-tests/throwback/test_client_library_errors.cpp (+91/-35)
tests/include/mir/test/doubles/fake_renderable.h (+5/-0)
tests/include/mir/test/doubles/mock_android_native_buffer.h (+6/-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 (+3/-1)
tests/include/mir/test/doubles/mock_client_buffer.h (+4/-2)
tests/include/mir/test/doubles/mock_client_buffer_stream.h (+2/-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 (+7/-1)
tests/include/mir/test/doubles/mock_event_sink.h (+2/-0)
tests/include/mir/test/doubles/mock_fence.h (+2/-0)
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_mir_buffer.h (+2/-3)
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 (+2/-0)
tests/include/mir/test/doubles/mock_server_status_listener.h (+2/-0)
tests/include/mir/test/doubles/mock_surface.h (+0/-1)
tests/include/mir/test/doubles/mock_x11.h (+2/-1)
tests/include/mir/test/doubles/null_client_buffer.h (+5/-3)
tests/include/mir/test/doubles/null_display_changer.h (+4/-0)
tests/include/mir/test/doubles/null_event_sink.h (+1/-0)
tests/include/mir/test/doubles/null_prompt_session_manager.h (+13/-13)
tests/include/mir/test/doubles/stub_android_native_buffer.h (+6/-3)
tests/include/mir/test/doubles/stub_buffer.h (+18/-8)
tests/include/mir/test/doubles/stub_buffer_stream.h (+16/-12)
tests/include/mir/test/doubles/stub_client_buffer.h (+29/-15)
tests/include/mir/test/doubles/stub_client_buffer_factory.h (+1/-1)
tests/include/mir/test/doubles/stub_display_builder.h (+6/-3)
tests/include/mir/test/doubles/stub_display_server.h (+4/-0)
tests/include/mir/test/doubles/stub_driver_interpreter.h (+1/-1)
tests/include/mir/test/doubles/stub_gbm_native_buffer.h (+2/-1)
tests/include/mir/test/doubles/stub_host_connection.h (+117/-22)
tests/include/mir/test/doubles/stub_input_scene.h (+5/-5)
tests/include/mir/test/doubles/stub_renderable.h (+24/-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 (+6/-5)
tests/include/mir/test/doubles/triggered_main_loop.h (+4/-0)
tests/include/mir/test/gmock_fixes.h (+4/-0)
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/client_platform_factory.h (+2/-2)
tests/include/mir_test_framework/stub_client_platform_factory.h (+9/-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/integration-tests/CMakeLists.txt (+2/-3)
tests/integration-tests/client/test_mirsurface.cpp (+6/-6)
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/-22)
tests/integration-tests/graphics/mesa/CMakeLists.txt (+0/-2)
tests/integration-tests/input/test_single_seat_setup.cpp (+23/-21)
tests/integration-tests/surface_composition.cpp (+0/-128)
tests/integration-tests/test_buffer_scheduling.cpp (+51/-336)
tests/integration-tests/test_client_screencast.cpp (+10/-4)
tests/integration-tests/test_display_server_main_loop_events.cpp (+1/-1)
tests/integration-tests/test_protobuf.cpp (+2/-2)
tests/integration-tests/test_protobuf.proto (+1/-0)
tests/integration-tests/test_server_client_types.cpp (+2/-0)
tests/integration-tests/test_session.cpp (+2/-2)
tests/integration-tests/test_stale_frames.cpp (+5/-5)
tests/integration-tests/test_submit_buffer.cpp (+119/-177)
tests/integration-tests/test_surface_first_frame_sync.cpp (+6/-6)
tests/integration-tests/test_surface_stack_with_compositor.cpp (+44/-33)
tests/integration-tests/test_swapinterval.cpp (+32/-4)
tests/integration-tests/test_touchspot_visualization.cpp (+1/-1)
tests/mir_test/display_config_matchers.cpp (+12/-3)
tests/mir_test_doubles/CMakeLists.txt (+1/-1)
tests/mir_test_doubles/fake_display.cpp (+29/-4)
tests/mir_test_doubles/mock_drm.cpp (+15/-1)
tests/mir_test_doubles/mock_egl.cpp (+14/-0)
tests/mir_test_doubles/mock_event_sink_factory.cpp (+6/-0)
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 (+64/-11)
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 (+2/-1)
tests/mir_test_framework/any_surface.cpp (+18/-1)
tests/mir_test_framework/fake_input_device_impl.cpp (+24/-19)
tests/mir_test_framework/fake_input_device_impl.h (+12/-9)
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/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 (+46/-11)
tests/mir_test_framework/stub_client_platform_module.cpp (+3/-1)
tests/mir_test_framework/stub_input.cpp (+9/-0)
tests/mir_test_framework/stub_session.cpp (+8/-1)
tests/mir_test_framework/stub_surface.cpp (+3/-0)
tests/mir_test_framework/stubbed_graphics_platform.cpp (+43/-79)
tests/mir_test_framework/stubbed_server_configuration.cpp (+5/-5)
tests/mir_test_framework/testing_server_options.cpp (+2/-0)
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_compositor.cpp (+11/-164)
tests/unit-tests/CMakeLists.txt (+6/-28)
tests/unit-tests/client/CMakeLists.txt (+1/-9)
tests/unit-tests/client/input/test_android_input_receiver.cpp (+6/-23)
tests/unit-tests/client/input/test_xkb_mapper.cpp (+104/-0)
tests/unit-tests/client/test_aging_buffer.cpp (+21/-16)
tests/unit-tests/client/test_buffer_vault.cpp (+16/-10)
tests/unit-tests/client/test_client_buffer_depository.cpp (+0/-451)
tests/unit-tests/client/test_client_buffer_stream.cpp (+97/-126)
tests/unit-tests/client/test_client_mir_surface.cpp (+1/-10)
tests/unit-tests/client/test_client_platform.cpp (+4/-4)
tests/unit-tests/client/test_connection_resource_map.cpp (+20/-0)
tests/unit-tests/client/test_mir_buffer.cpp (+9/-22)
tests/unit-tests/client/test_mir_connection.cpp (+111/-6)
tests/unit-tests/client/test_no_tls_future.cpp (+355/-0)
tests/unit-tests/client/test_probing_client_platform_factory.cpp (+9/-9)
tests/unit-tests/client/test_protobuf_rpc_channel.cpp (+19/-16)
tests/unit-tests/client/test_screencast_stream.cpp (+50/-0)
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 (+10/-10)
tests/unit-tests/compositor/test_default_display_buffer_compositor.cpp (+8/-8)
tests/unit-tests/compositor/test_multi_monitor_arbiter.cpp (+13/-0)
tests/unit-tests/compositor/test_multi_threaded_compositor.cpp (+3/-3)
tests/unit-tests/compositor/test_screencast_display_buffer.cpp (+1/-1)
tests/unit-tests/compositor/test_stream.cpp (+6/-0)
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 (+4/-5)
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 (+72/-27)
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 (+69/-401)
tests/unit-tests/graphics/CMakeLists.txt (+3/-17)
tests/unit-tests/graphics/test_default_display_configuration_policy.cpp (+4/-1)
tests/unit-tests/graphics/test_display_configuration.cpp (+4/-1)
tests/unit-tests/graphics/test_gamma_curves.cpp (+67/-0)
tests/unit-tests/graphics/test_overlapping_output_grouping.cpp (+6/-3)
tests/unit-tests/graphics/test_platform_prober.cpp (+3/-1)
tests/unit-tests/graphics/test_shm_buffer.cpp (+26/-33)
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_default_input_device_hub.cpp (+22/-1)
tests/unit-tests/input/test_event_builders.cpp (+16/-9)
tests/unit-tests/input/test_input_platform_probing.cpp (+1/-1)
tests/unit-tests/input/test_nested_input_platform.cpp (+1/-23)
tests/unit-tests/input/test_seat_input_device_tracker.cpp (+26/-25)
tests/unit-tests/input/test_surface_input_dispatcher.cpp (+1/-45)
tests/unit-tests/input/test_validator.cpp (+32/-32)
tests/unit-tests/library_example.h (+10/-0)
tests/unit-tests/logging/test_display_report.cpp (+61/-20)
tests/unit-tests/platforms/CMakeLists.txt (+11/-0)
tests/unit-tests/platforms/android/CMakeLists.txt (+42/-0)
tests/unit-tests/platforms/android/client/CMakeLists.txt (+2/-2)
tests/unit-tests/platforms/android/client/test_android_client_platform.cpp (+15/-0)
tests/unit-tests/platforms/android/client/test_android_native_window.cpp (+19/-11)
tests/unit-tests/platforms/android/client/test_buffer.cpp (+86/-14)
tests/unit-tests/platforms/android/client/test_egl_native_surface_interpreter.cpp (+0/-10)
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 (+19/-0)
tests/unit-tests/platforms/android/server/test_display.cpp (+60/-5)
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 (+1/-1)
tests/unit-tests/platforms/android/server/test_graphic_buffer_allocator.cpp (+0/-50)
tests/unit-tests/platforms/android/server/test_graphics_platform.cpp (+6/-4)
tests/unit-tests/platforms/android/server/test_hwc_configuration.cpp (+8/-6)
tests/unit-tests/platforms/android/server/test_hwc_device.cpp (+11/-0)
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 (+7/-4)
tests/unit-tests/platforms/android/server/test_hwc_logger.cpp (+20/-16)
tests/unit-tests/platforms/android/server/test_hwc_wrapper.cpp (+15/-13)
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 (+31/-1)
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/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 (+35/-21)
tests/unit-tests/platforms/mesa/client/test_client_platform.cpp (+14/-0)
tests/unit-tests/platforms/mesa/client/test_native_surface.cpp (+64/-21)
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 (+13/-69)
tests/unit-tests/platforms/mesa/kms/test_bypass.cpp (+15/-0)
tests/unit-tests/platforms/mesa/kms/test_cursor.cpp (+37/-5)
tests/unit-tests/platforms/mesa/kms/test_display.cpp (+37/-14)
tests/unit-tests/platforms/mesa/kms/test_display_buffer.cpp (+17/-17)
tests/unit-tests/platforms/mesa/kms/test_display_configuration.cpp (+185/-9)
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_ipc_operations.cpp (+4/-3)
tests/unit-tests/platforms/mesa/kms/test_kms_page_flipper.cpp (+22/-13)
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 (+37/-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/-5)
tests/unit-tests/platforms/nested/test_buffer.cpp (+252/-0)
tests/unit-tests/platforms/nested/test_ipc_operations.cpp (+199/-0)
tests/unit-tests/platforms/nested/test_nested_display.cpp (+2/-1)
tests/unit-tests/platforms/nested/test_nested_display_buffer.cpp (+348/-15)
tests/unit-tests/platforms/test_display.h (+15/-2)
tests/unit-tests/scene/test_application_session.cpp (+82/-29)
tests/unit-tests/scene/test_basic_surface.cpp (+30/-8)
tests/unit-tests/scene/test_gl_pixel_buffer.cpp (+6/-5)
tests/unit-tests/scene/test_mediating_display_changer.cpp (+300/-39)
tests/unit-tests/scene/test_session_manager.cpp (+0/-1)
tests/unit-tests/scene/test_surface.cpp (+3/-5)
tests/unit-tests/scene/test_surface_impl.cpp (+6/-9)
tests/unit-tests/scene/test_surface_stack.cpp (+39/-51)
tests/unit-tests/test_observer_multiplexer.cpp (+608/-0)
tests/unit-tests/test_posix_rw_mutex.cpp (+311/-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/0.25
Reviewer Review Type Date Requested Status
Daniel van Vugt Approve
Mir CI Bot continuous-integration Approve
Review via email: mp+310238@code.launchpad.net

Commit message

Mir 0.25.0 release

To post a comment you must log in.
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3810
https://mir-jenkins.ubuntu.com/job/mir-ubuntu-ci/60/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/2738/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/2801
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2793
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2793
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2793
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2767/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2767
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2767/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2767
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2767/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2767
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2767/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2767
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2767/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2767
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2767/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ubuntu-ci/60/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

(1) ^^^ Don't know why that failure just started happening here.
23:34:09 /usr/bin/ld: ../../lib/libmircommon.so.7: version node not found for symbol _ZN3mir8dispatch10ReadableFdD0Ev@MIR_COMMON_5.1
23:34:09 /usr/bin/ld: failed to set dynamic section sizes: Bad value
23:34:09 clang: error: linker command failed with exit code 1 (use -v to see invocation)

(2) debian/changelog: Spelling mistakes, incorrect grammar and possibly more features need documenting.

review: Needs Fixing
lp:mir/0.25 updated
3811. By Daniel van Vugt

Expand and correct the Enhancements list

3812. By Daniel van Vugt

Revert most of r3808 which was completely wrong and causing the
build failure.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

(1) and (2) both fixed now.

Still needs more people to take a closer look at the branch though.

review: Abstain
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3811
https://mir-jenkins.ubuntu.com/job/mir-ubuntu-ci/61/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/2740/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/2803
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2795
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2795
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2795
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2769/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2769
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2769/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2769
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2769/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2769
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2769/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2769
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2769/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2769
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2769/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ubuntu-ci/61/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:3812
https://mir-jenkins.ubuntu.com/job/mir-ubuntu-ci/62/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/2741
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/2804
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2796
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2796
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2796
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2770
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2770/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2770
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2770/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2770
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2770/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2770
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2770/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2770
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2770/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2770
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2770/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ubuntu-ci/62/rebuild

review: Approve (continuous-integration)
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Failure is expected. Already fixed in r3812.

lp:mir/0.25 updated
3813. By Daniel van Vugt

Correct more grammar

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Overall diff is looking good.

review: Approve
lp:mir/0.25 updated
3814. By Daniel van Vugt

Fix another mistake from r3808: Source file added twice

Revision history for this message
Daniel van Vugt (vanvugt) :
review: Approve
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:3813
https://mir-jenkins.ubuntu.com/job/mir-ubuntu-ci/63/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/2761
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/2824
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2816
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2816
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2816
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2790
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2790/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2790
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2790/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2790
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2790/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2790
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2790/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2790
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2790/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2790
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2790/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ubuntu-ci/63/rebuild

review: Approve (continuous-integration)
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:3814
https://mir-jenkins.ubuntu.com/job/mir-ubuntu-ci/64/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/2763
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/2826
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2818
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2818
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2818
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2792
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2792/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2792
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2792/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2792
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2792/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2792
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2792/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2792
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2792/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2792
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2792/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ubuntu-ci/64/rebuild

review: Approve (continuous-integration)
lp:mir/0.25 updated
3815. By Brandon Schaefer

Cherry pick 3819 from trunk: Server::override_the_coordinate_translator() cannot be effectively used downstream

Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:3815
https://mir-jenkins.ubuntu.com/job/mir-ubuntu-ci/65/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/2801
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/2866
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2858
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2858
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2858
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2830
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2830/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2830
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2830/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2830
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2830/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2830
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2830/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2830
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2830/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2830
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2830/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ubuntu-ci/65/rebuild

review: Approve (continuous-integration)
lp:mir/0.25 updated
3816. By Brandon Schaefer

* TEST Lets turn off link time optimization

Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:3816
https://mir-jenkins.ubuntu.com/job/mir-ubuntu-ci/66/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/2804
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/2869
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2861
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2861
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2861
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2833
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2833/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2833
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2833/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2833
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2833/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2833
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2833/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2833
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2833/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2833
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2833/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ubuntu-ci/66/rebuild

review: Approve (continuous-integration)
lp:mir/0.25 updated
3817. By Brandon Schaefer

LTO causes FTBFS on s390x. Lets disable

Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:3817
https://mir-jenkins.ubuntu.com/job/mir-ubuntu-ci/67/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/2809
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/2874
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2866
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2866
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2866
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2838
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2838/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2838
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2838/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2838
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2838/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2838
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2838/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2838
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2838/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2838
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2838/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ubuntu-ci/67/rebuild

review: Approve (continuous-integration)
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Good news: Xmir builds fine against this tree (with some warnings I will fix later).

And it works too.

Revision history for this message
Daniel van Vugt (vanvugt) :
review: Approve
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Don't forget this one, eventually:
   https://code.launchpad.net/~vanvugt/mir/not-fixed-in-0.25/+merge/311455

Also if you need to rebuild zesty at all then you will hit build failures now (thanks to the new googletest package). That is fixed here:
   https://code.launchpad.net/~raof/mir/fix-googletest-zesty-build/+merge/311678

lp:mir/0.25 updated
3818. By Daniel van Vugt

Don't document bugs that aren't really fixed (these have all been
reopened in recent weeks).

3819. By Chris Halse Rogers

Fix build failures against GoogleTest 1.8 in zesty (LP: #1644062).

3820. By Daniel van Vugt

Add changelog entry for the new bug fix (assuming it makes it to 0.25.0)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file '.bzrignore'
--- .bzrignore 2016-07-14 03:26:20 +0000
+++ .bzrignore 2016-11-29 04:47:53 +0000
@@ -1,2 +1,4 @@
1.idea1.idea
2.project
2include/server/mir/version.h3include/server/mir/version.h
4build-*
35
=== removed file '3rd_party/android-input/android/frameworks/base/include/androidfw/GenericKeyMap.h'
--- 3rd_party/android-input/android/frameworks/base/include/androidfw/GenericKeyMap.h 2012-11-13 11:17:46 +0000
+++ 3rd_party/android-input/android/frameworks/base/include/androidfw/GenericKeyMap.h 1970-01-01 00:00:00 +0000
@@ -1,36 +0,0 @@
1// Copyright (C) 2010 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14//
15
16// Generic key layout file for full alphabetic US English PC style
17// external keyboards. This file is intentionally very generic and is
18// intended to support a broad rang of keyboards. Do not edit the
19// generic key layout to support a specific keyboard; instead, create
20// a new key layout file with the required keyboard configuration.
21// Taken from android source tree Generic.kl and Generic.kcm
22
23#ifndef GENERIC_KEY_MAP_H_
24#define GENERIC_KEY_MAP_H_
25
26namespace android
27{
28struct GenericKeyMap
29{
30 static const char* key_layout_contents();
31
32 static const char* keymap_contents();
33};
34}
35
36#endif // GENERIC_KEY_MAP_H_
370
=== modified file 'CMakeLists.txt'
--- CMakeLists.txt 2016-09-26 07:56:51 +0000
+++ CMakeLists.txt 2016-11-29 04:47:53 +0000
@@ -28,8 +28,8 @@
28set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)28set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
2929
30set(MIR_VERSION_MAJOR 0)30set(MIR_VERSION_MAJOR 0)
31set(MIR_VERSION_MINOR 24)31set(MIR_VERSION_MINOR 25)
32set(MIR_VERSION_PATCH 1)32set(MIR_VERSION_PATCH 0)
3333
34add_definitions(-DMIR_VERSION_MAJOR=${MIR_VERSION_MAJOR})34add_definitions(-DMIR_VERSION_MAJOR=${MIR_VERSION_MAJOR})
35add_definitions(-DMIR_VERSION_MINOR=${MIR_VERSION_MINOR})35add_definitions(-DMIR_VERSION_MINOR=${MIR_VERSION_MINOR})
@@ -66,19 +66,20 @@
66set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--as-needed")66set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--as-needed")
67set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed")67set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed")
6868
69include(CheckCXXCompilerFlag)
70check_cxx_compiler_flag(-Wmismatched-tags HAS_W_MISMATCHED_TAGS)
71
72if(HAS_W_MISMATCHED_TAGS)
73 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-mismatched-tags")
74endif()
75
69option(MIR_USE_LD_GOLD "Enables the \"gold\" linker." OFF)76option(MIR_USE_LD_GOLD "Enables the \"gold\" linker." OFF)
70if(MIR_USE_LD_GOLD)77if(MIR_USE_LD_GOLD)
71 set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fuse-ld=gold")
72 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=gold")
73 set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fuse-ld=gold")78 set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fuse-ld=gold")
74 set (CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fuse-ld=gold")79 set (CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fuse-ld=gold")
75 set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold")80 set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold")
76endif()81endif()
7782
78if ("${CMAKE_CXX_COMPILER}" MATCHES "clang")
79 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-return-type-c-linkage -Wno-mismatched-tags")
80endif()
81
82# Link time optimization allows leaner, cleaner libraries83# Link time optimization allows leaner, cleaner libraries
83message(STATUS "CMAKE_C_COMPILER: " ${CMAKE_C_COMPILER})84message(STATUS "CMAKE_C_COMPILER: " ${CMAKE_C_COMPILER})
8485
@@ -141,6 +142,7 @@
141142
142enable_testing()143enable_testing()
143144
145include_directories(include/core)
144include_directories(include/common)146include_directories(include/common)
145include_directories(include/cookie)147include_directories(include/cookie)
146148
@@ -195,6 +197,7 @@
195find_package(GLESv2 REQUIRED)197find_package(GLESv2 REQUIRED)
196find_package(GLM REQUIRED)198find_package(GLM REQUIRED)
197find_package(Protobuf REQUIRED )199find_package(Protobuf REQUIRED )
200find_package(CapnProto REQUIRED)
198find_package(GLog REQUIRED)201find_package(GLog REQUIRED)
199find_package(GFlags REQUIRED)202find_package(GFlags REQUIRED)
200find_package(LTTngUST REQUIRED)203find_package(LTTngUST REQUIRED)
@@ -207,9 +210,11 @@
207210
208#211#
209# Full OpenGL support is possibly complete but not yet perfect. So is212# Full OpenGL support is possibly complete but not yet perfect. So is
210# presently disabled by default. See the TODOs in:213# presently disabled by default due to:
211# src/platform/graphics/egl_extensions.cpp: glEGLImageTargetTexture2DOES214# 1. Black windows bug: https://bugs.freedesktop.org/show_bug.cgi?id=92265
212# src/platforms/common/server/shm_buffer.cpp: glTexImage2D215# 2. Use of glEGLImageTargetTexture2DOES in:
216# src/platform/graphics/egl_extensions.cpp
217# possibly shouldn't work even though it does. Or should it?
213#218#
214#if (TARGET_ARCH STREQUAL "x86_64-linux-gnu" OR219#if (TARGET_ARCH STREQUAL "x86_64-linux-gnu" OR
215# TARGET_ARCH STREQUAL "i386-linux-gnu")220# TARGET_ARCH STREQUAL "i386-linux-gnu")
@@ -290,7 +295,7 @@
290295
291 # There's no nice way to format this. Thanks CMake.296 # There's no nice way to format this. Thanks CMake.
292 mir_add_test(NAME LGPL-required297 mir_add_test(NAME LGPL-required
293 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"298 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"
294 )299 )
295 mir_add_test(NAME GPL-required300 mir_add_test(NAME GPL-required
296 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"301 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"
@@ -316,3 +321,9 @@
316mir_check_no_unreleased_symbols(mirplatform release-checks)321mir_check_no_unreleased_symbols(mirplatform release-checks)
317mir_check_no_unreleased_symbols(mirprotobuf release-checks)322mir_check_no_unreleased_symbols(mirprotobuf release-checks)
318mir_check_no_unreleased_symbols(mirserver release-checks)323mir_check_no_unreleased_symbols(mirserver release-checks)
324
325if (TARGET doc)
326 add_custom_target(doc-show
327 xdg-open ${CMAKE_BINARY_DIR}/doc/html/index.html
328 DEPENDS doc)
329endif()
319330
=== modified file 'benchmarks/frame-uniformity/CMakeLists.txt'
--- benchmarks/frame-uniformity/CMakeLists.txt 2016-05-03 06:55:25 +0000
+++ benchmarks/frame-uniformity/CMakeLists.txt 2016-11-29 04:47:53 +0000
@@ -4,6 +4,8 @@
4 ${PROJECT_SOURCE_DIR}/include/server4 ${PROJECT_SOURCE_DIR}/include/server
5 ${PROJECT_SOURCE_DIR}/include/client5 ${PROJECT_SOURCE_DIR}/include/client
6 ${PROJECT_SOURCE_DIR}/include/test6 ${PROJECT_SOURCE_DIR}/include/test
7 ${PROJECT_SOURCE_DIR}/include/renderers/gl
8 ${PROJECT_SOURCE_DIR}/include/renderers/sw
79
8 ${PROJECT_SOURCE_DIR}/src/include/server10 ${PROJECT_SOURCE_DIR}/src/include/server
9 ${PROJECT_SOURCE_DIR}/src/include/common11 ${PROJECT_SOURCE_DIR}/src/include/common
1012
=== modified file 'cmake/FindGtestGmock.cmake'
--- cmake/FindGtestGmock.cmake 2016-05-03 06:55:25 +0000
+++ cmake/FindGtestGmock.cmake 2016-11-29 04:47:53 +0000
@@ -1,24 +1,38 @@
1include(ExternalProject)1include(ExternalProject)
2include(FindPackageHandleStandardArgs)2include(FindPackageHandleStandardArgs)
33
4if (EXISTS /usr/src/googletest)
5 set (USING_GOOGLETEST_1_8 TRUE)
6 set (GTEST_INSTALL_DIR /usr/src/googletest/googletest/include)
7else()
8 set (GTEST_INSTALL_DIR /usr/src/gmock/gtest/include)
9endif()
10
4#gtest11#gtest
5set(GTEST_INSTALL_DIR /usr/src/gmock/gtest/include)12find_path(
6find_path(GTEST_INCLUDE_DIR gtest/gtest.h13 GTEST_INCLUDE_DIR gtest/gtest.h
7 HINTS ${GTEST_INSTALL_DIR})14 HINTS ${GTEST_INSTALL_DIR}
15)
816
9#gmock17#gmock
10find_path(GMOCK_INSTALL_DIR gmock/CMakeLists.txt18find_path(
11 HINTS /usr/src)19 GMOCK_INSTALL_DIR CMakeLists.txt
20 HINTS /usr/src/googletest /usr/src/gmock)
12if(${GMOCK_INSTALL_DIR} STREQUAL "GMOCK_INSTALL_DIR-NOTFOUND")21if(${GMOCK_INSTALL_DIR} STREQUAL "GMOCK_INSTALL_DIR-NOTFOUND")
13 message(FATAL_ERROR "google-mock package not found")22 message(FATAL_ERROR "google-mock package not found")
14endif()23endif()
1524
16set(GMOCK_INSTALL_DIR ${GMOCK_INSTALL_DIR}/gmock)
17find_path(GMOCK_INCLUDE_DIR gmock/gmock.h)25find_path(GMOCK_INCLUDE_DIR gmock/gmock.h)
1826
19set(GMOCK_PREFIX gmock)27if (USING_GOOGLETEST_1_8)
20set(GMOCK_BINARY_DIR ${CMAKE_BINARY_DIR}/${GMOCK_PREFIX}/libs)28 set(GMOCK_BASE_BINARY_DIR ${CMAKE_BINARY_DIR}/gmock/libs)
21set(GTEST_BINARY_DIR ${GMOCK_BINARY_DIR}/gtest)29 set(GMOCK_BINARY_DIR ${GMOCK_BASE_BINARY_DIR}/googlemock)
30 set(GTEST_BINARY_DIR ${GMOCK_BINARY_DIR}/gtest)
31else()
32 set(GMOCK_BASE_BINARY_DIR ${CMAKE_BINARY_DIR}/gmock/libs)
33 set(GMOCK_BINARY_DIR ${GMOCK_BASE_BINARY_DIR})
34 set(GTEST_BINARY_DIR ${GMOCK_BINARY_DIR}/gtest)
35endif()
2236
23set(GTEST_CXX_FLAGS "-fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64")37set(GTEST_CXX_FLAGS "-fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64")
24if (cmake_build_type_lower MATCHES "threadsanitizer")38if (cmake_build_type_lower MATCHES "threadsanitizer")
@@ -30,6 +44,11 @@
30set(GTEST_CMAKE_ARGS "-DCMAKE_CXX_FLAGS=${GTEST_CXX_FLAGS}")44set(GTEST_CMAKE_ARGS "-DCMAKE_CXX_FLAGS=${GTEST_CXX_FLAGS}")
31list(APPEND GTEST_CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER})45list(APPEND GTEST_CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER})
32list(APPEND GTEST_CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER})46list(APPEND GTEST_CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER})
47
48if (USING_GOOGLETEST_1_8)
49 list(APPEND GTEST_CMAKE_ARGS -DBUILD_GTEST=ON)
50endif()
51
33if (cmake_build_type_lower MATCHES "threadsanitizer")52if (cmake_build_type_lower MATCHES "threadsanitizer")
34 #Skip compiler check, since if GCC is the compiler, we need to link against -ltsan53 #Skip compiler check, since if GCC is the compiler, we need to link against -ltsan
35 #explicitly; specifying additional linker flags doesn't seem possible for external projects54 #explicitly; specifying additional linker flags doesn't seem possible for external projects
@@ -52,7 +71,7 @@
52 SOURCE_DIR ${GMOCK_INSTALL_DIR}71 SOURCE_DIR ${GMOCK_INSTALL_DIR}
53 #forward the compilers to the subproject so cross-arch builds work72 #forward the compilers to the subproject so cross-arch builds work
54 CMAKE_ARGS ${GTEST_CMAKE_ARGS}73 CMAKE_ARGS ${GTEST_CMAKE_ARGS}
55 BINARY_DIR ${GMOCK_BINARY_DIR}74 BINARY_DIR ${GMOCK_BASE_BINARY_DIR}
5675
57 #we don't need to install, so skip76 #we don't need to install, so skip
58 INSTALL_COMMAND ""77 INSTALL_COMMAND ""
5978
=== modified file 'cmake/MirCommon.cmake'
--- cmake/MirCommon.cmake 2016-08-09 16:22:39 +0000
+++ cmake/MirCommon.cmake 2016-11-29 04:47:53 +0000
@@ -301,21 +301,3 @@
301 )301 )
302 add_dependencies(${DEPENDENT_TARGET} ${TARGET_NAME})302 add_dependencies(${DEPENDENT_TARGET} ${TARGET_NAME})
303endfunction()303endfunction()
304
305function (mir_add_library_with_symbols TARGET TYPE SYMBOLS_FILE)
306 # Bask in the majesty of CMake!
307 #
308 # You can't just depend on an arbitary file. Oh, no!
309 #
310 # Instead, we add a custom command to generate an empty C++ source
311 # file, depending on the symbols file, and then add that empty C++
312 # source to the library.
313 set(HACK_OUTPUT ${TARGET}_abysmal_hack.cpp)
314
315 add_custom_command(OUTPUT ${HACK_OUTPUT}
316 COMMAND touch ${HACK_OUTPUT}
317 DEPENDS ${SYMBOLS_FILE}
318 )
319
320 add_library(${TARGET} ${TYPE} ${HACK_OUTPUT} ${ARGN})
321endfunction()
322304
=== modified file 'cross-compile-chroot.sh'
--- cross-compile-chroot.sh 2016-06-02 05:33:50 +0000
+++ cross-compile-chroot.sh 2016-11-29 04:47:53 +0000
@@ -104,6 +104,10 @@
104gcc_variant=104gcc_variant=
105if [ "${dist}" = "vivid" ]; then105if [ "${dist}" = "vivid" ]; then
106 gcc_variant=-4.9106 gcc_variant=-4.9
107elif [ "${dist}" = "wily" -o "${dist}" = "xenial" ]; then
108 gcc_variant=-5
109elif [ "${dist}" = "yakkety" ]; then
110 gcc_variant=-6
107fi111fi
108112
109case ${target_arch} in113case ${target_arch} in
@@ -166,6 +170,7 @@
166 echo "Using PKG_CONFIG_EXECUTABLE: $PKG_CONFIG_EXECUTABLE"170 echo "Using PKG_CONFIG_EXECUTABLE: $PKG_CONFIG_EXECUTABLE"
167 cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/LinuxCrossCompile.cmake \171 cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/LinuxCrossCompile.cmake \
168 -DMIR_PLATFORM=${mir_platform} -DMIR_ENABLE_TESTS=${enable_tests}\172 -DMIR_PLATFORM=${mir_platform} -DMIR_ENABLE_TESTS=${enable_tests}\
173 -DMIR_USE_PRECOMPILED_HEADERS=OFF \
169 .. 174 ..
170175
171 make -j${NUM_JOBS} $@176 make -j${NUM_JOBS} $@
172177
=== modified file 'debian/changelog'
--- debian/changelog 2016-09-28 12:09:49 +0000
+++ debian/changelog 2016-11-29 04:47:53 +0000
@@ -1,3 +1,106 @@
1mir (0.25.0-0ubuntu1) UNRELEASED; urgency=medium
2
3 * New upstream release 0.25.0 (https://launchpad.net/mir/+milestone/0.25.0)
4 - ABI summary:
5 . mirclient ABI unchanged at 9
6 . mirserver ABI bumped to 42
7 . mircommon ABI bumped to 7
8 . mirplatform ABI bumped to 14
9 . mirprotobuf ABI unchanged at 3
10 . mirplatformgraphics ABI bumped to 11
11 . mirclientplatform ABI unchanged at 5
12 . mirinputplatform ABI bumped to 6
13 . mircore ABI added, at version 1
14 - Enhancements:
15 . Added pointer confinement support
16 . Identify Raspberry Pi output types correctly
17 . Added dead key and compose key support
18 . Added gamma support for KMS hardware
19 . Added yakkety and zesty gcc-6 support
20 . Added surface passthrough support for fullscreen clients of nested
21 servers
22 . Introduced a new library `libmircore'
23 . Began migrating from Protobuf to Cap'n Proto starting with events
24 . Began support for VirtualBox (servers now start instead of crashing
25 but full support for GL clients is still missing)
26 . Began support for high precision frame timing, implemented for the
27 KMS, Android and X11 backends so far
28 . Added --display-report support for the X11 backend
29 . Improved reliability of `mirvanity' latency test tool
30 . Moved to using the CSS cursor naming scheme internally, although
31 the old symbolic indentifiers remain unchanged and still work
32 . Added refresh rate to MirSurfaceOutputEvent
33 . Many improvements to automated test quality and coverage
34 . Smoother desktop zoom using mir_proving_server (Super + two fingers)
35 - Bugs fixed:
36 . FTBFS On Zesty: invalid use of
37 'struct native_handle' (LP: #1638774)
38 . libmirclient-debug-extension-dev install debug/surface.h
39 twice (LP: #1639153)
40 . Mir crashes on virtual box drmModeCrtcSetGamma
41 Function not implemented (LP: #1638220)
42 . Flickering in mir_demo_client_multistream (LP: #1635273)
43 . Camera apps (camera & vanity) never exit (LP: #1635010)
44 . Clients cannot connect when MIR_SOCKET="" (LP: #1634508)
45 . mirtest-dev packaging fails to sepcify boost depends (LP: #1633537)
46 . cursor.h is unclear about mir_diagonal_resize_* (LP: #1626924)
47 . Inconsistent underscores in cursor names (LP: #1632617)
48 . [regression] Accidental libmircommon.so.6 break (LP: #1617865)
49 . [regression] mir demo server fails to start with mx4 (LP: #1615703)
50 . [regression] Trust prompt now shown when starting camera (LP: #1612256)
51 . [regression] make abi-check fails to build (LP: #1626866)
52 . Nested servers prevent overlays or fullscreen bypass (LP: #1262116)
53 . Failed to get PRIME fd from gbm bo (LP: #1607812)
54 . Mir-on-X is difficult to use on 1366x768 laptop (LP: #1590959)
55 . Remove useless message 'Surface 0 DPI' in demos (LP: #1559831)
56 . Mir fails to cross-build with newer sbuild (LP: #1628507)
57 . Infinite loop in AbstractShell::focus_next_session (LP: #1625401)
58 . Destroying a presentation chain doesn't trigger ownership
59 notification to client (LP: #1626503)
60 . Keyboard layout not applied on the shell (LP: #1626435)
61 . Warning, No syntax specified for the proto file (LP: #1624971)
62 . display-report=log reports vsync on non-existent output number
63 (LP: #1621352)
64 . libmirserver-dev missing uuid-dev depends (LP: #1617435)
65 . debian/control missing epoxy (LP: #1617256)
66 . Downstreams need to disable clang diagnostic "-Wreturn-type-clinkage"
67 to build against public headers (LP: #1615587)
68 . mirtest-dev: mock_display_configuration.h uses mg namespace without
69 using it (LP: #1614983)
70 . FTBFS using clang (LP: #1609612)
71 . mesa-kms doesn't fall back to using software cursor if hardware
72 cursor is unavailable (LP: #1610054)
73 . StubGraphicsPlatform::create_display() leaves a dubious state
74 (LP: #1611337)
75 . Mir build/tests fail with gcc-6 and LTO (LP: #1610215)
76 . Cross compiling on xenial fails (LP: #1609329)
77 . Building with -DMIR_PLATFORM=anroid fails (LP: #1609916)
78 . unity-system-compositor crashes on start-up with "Mir fatal error:
79 Failed to schedule page flip" (LP: #1584894)
80 . mir_connection_create_spec_for_tooltip doesn't meet requirements
81 (LP: #1603922)
82 . Updating surface size/location needs to update the pointer confinement
83 (LP: #1604673)
84 . ServerConfigurationOption is not ptest safe (LP: #1607351)
85 . HWC's vsync_signal_on is never called when using HWC 1.0 (LP: #1613373)
86 . mir_connection_create_spec_for_tooltip does not set aux_rect
87 (LP: #1632335)
88 . VMware virtual connector recognized by Mir as "unknown" (LP: #1248072)
89 . Fix code to match the documentation of CoordinateTranslator - vis "It is
90 acceptable ...[to] throw a std::runtime_error" (LP: #1641166)
91 . Test timeout MesaDisplayConfigurationTests.* (LP: #1613352)
92 . Tests fail when built against lp:mir (LP: #1621917)
93 . CI failure MultiThreadedCompositor (LP: #1595940)
94 . CI failure in DisplayConfiguration (LP: #1563210)
95 . CI failure NestedServer.given_client_set_display_configuration*
96 (LP: #1617036)
97 . CI failure on krillin in NestedServer.* testes (LP: #1628828)
98 . CI failure: PosixRWMutex hangs (LP: #1633920)
99 . googletest 1.8.0-2 (on zesty) breaks existing builds [add_library
100 cannot create target "gmock" ...] (LP: #1644062)
101
102 -- Brandon Schaefer <brandon.schaefer@canonical.com> Mon, 07 Nov 2016 13:32:11 -0800
103
1mir (0.24.1+16.10.20160928-0ubuntu1) yakkety; urgency=medium104mir (0.24.1+16.10.20160928-0ubuntu1) yakkety; urgency=medium
2105
3 * New upstream release 0.24.1 (https://launchpad.net/mir/+milestone/0.24.1)106 * New upstream release 0.24.1 (https://launchpad.net/mir/+milestone/0.24.1)
4107
=== modified file 'debian/control'
--- debian/control 2016-07-21 11:19:35 +0000
+++ debian/control 2016-11-29 04:47:53 +0000
@@ -4,7 +4,6 @@
4Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>4Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
5XSBC-Original-Maintainer: Thomas Voß <thomas.voss@canonical.com>5XSBC-Original-Maintainer: Thomas Voß <thomas.voss@canonical.com>
6Build-Depends: cmake,6Build-Depends: cmake,
7 cmake-data,
8 pkg-config,7 pkg-config,
9 debhelper (>= 9),8 debhelper (>= 9),
10 doxygen,9 doxygen,
@@ -29,7 +28,7 @@
29 libandroid-properties-dev [i386 amd64 armhf arm64],28 libandroid-properties-dev [i386 amd64 armhf arm64],
30 libgoogle-glog-dev,29 libgoogle-glog-dev,
31 liblttng-ust-dev,30 liblttng-ust-dev,
32 libxkbcommon-dev,31 libxkbcommon-dev (>= 0.5),
33 libumockdev-dev (>= 0.6),32 libumockdev-dev (>= 0.6),
34 umockdev (>= 0.8.7),33 umockdev (>= 0.8.7),
35 libudev-dev,34 libudev-dev,
@@ -46,6 +45,9 @@
46 python3:any,45 python3:any,
47 dh-python,46 dh-python,
48 nettle-dev,47 nettle-dev,
48 libcapnp-dev,
49 capnproto,
50 libepoxy-dev,
49Standards-Version: 3.9.451Standards-Version: 3.9.4
50Homepage: https://launchpad.net/mir52Homepage: https://launchpad.net/mir
51# If you aren't a member of ~mir-team but need to upload packaging changes,53# If you aren't a member of ~mir-team but need to upload packaging changes,
@@ -68,7 +70,7 @@
6870
69#TODO: Packaging infrastructure for better dependency generation,71#TODO: Packaging infrastructure for better dependency generation,
70# ala pkg-xorg's xviddriver:Provides and ABI detection.72# ala pkg-xorg's xviddriver:Provides and ABI detection.
71Package: libmirserver4173Package: libmirserver42
72Section: libs74Section: libs
73Architecture: linux-any75Architecture: linux-any
74Multi-Arch: same76Multi-Arch: same
@@ -81,7 +83,7 @@
81 .83 .
82 Contains the shared library needed by server applications for Mir.84 Contains the shared library needed by server applications for Mir.
8385
84Package: libmirplatform1386Package: libmirplatform14
85Section: libs87Section: libs
86Architecture: linux-any88Architecture: linux-any
87Multi-Arch: same89Multi-Arch: same
@@ -95,12 +97,25 @@
95 Contains the shared libraries required for the Mir server to interact with97 Contains the shared libraries required for the Mir server to interact with
96 the underlying hardware platform.98 the underlying hardware platform.
9799
100Package: libmircore-dev
101Section: libdevel
102Architecture: linux-any
103Multi-Arch: same
104Pre-Depends: ${misc:Pre-Depends}
105Depends: ${misc:Depends},
106Description: Display server for Ubuntu - development headers
107 Mir is a display server running on linux systems, with a focus on efficiency,
108 robust operation and a well-defined driver model.
109 .
110 Contains header files required for server and/or client development.
111
98Package: libmircommon-dev112Package: libmircommon-dev
99Section: libdevel113Section: libdevel
100Architecture: linux-any114Architecture: linux-any
101Multi-Arch: same115Multi-Arch: same
102Pre-Depends: ${misc:Pre-Depends}116Pre-Depends: ${misc:Pre-Depends}
103Depends: libmircommon6 (= ${binary:Version}), 117Depends: libmircommon7 (= ${binary:Version}),
118 libmircore-dev,
104 libprotobuf-dev (>= 2.4.1),119 libprotobuf-dev (>= 2.4.1),
105 libxkbcommon-dev,120 libxkbcommon-dev,
106 ${misc:Depends},121 ${misc:Depends},
@@ -117,7 +132,7 @@
117Architecture: linux-any132Architecture: linux-any
118Multi-Arch: same133Multi-Arch: same
119Pre-Depends: ${misc:Pre-Depends}134Pre-Depends: ${misc:Pre-Depends}
120Depends: libmirplatform13 (= ${binary:Version}),135Depends: libmirplatform14 (= ${binary:Version}),
121 libmircommon-dev,136 libmircommon-dev,
122 libboost-program-options-dev,137 libboost-program-options-dev,
123 ${misc:Depends},138 ${misc:Depends},
@@ -134,10 +149,11 @@
134Architecture: linux-any149Architecture: linux-any
135Multi-Arch: same150Multi-Arch: same
136Pre-Depends: ${misc:Pre-Depends}151Pre-Depends: ${misc:Pre-Depends}
137Depends: libmirserver41 (= ${binary:Version}),152Depends: libmirserver42 (= ${binary:Version}),
138 libmirplatform-dev (= ${binary:Version}),153 libmirplatform-dev (= ${binary:Version}),
139 libmircommon-dev (= ${binary:Version}),154 libmircommon-dev (= ${binary:Version}),
140 libglm-dev,155 libglm-dev,
156 uuid-dev,
141 ${misc:Depends},157 ${misc:Depends},
142Description: Display server for Ubuntu - development headers158Description: Display server for Ubuntu - development headers
143 Mir is a display server running on linux systems, with a focus on efficiency,159 Mir is a display server running on linux systems, with a focus on efficiency,
@@ -154,6 +170,8 @@
154 libmirplatform-dev (= ${binary:Version}),170 libmirplatform-dev (= ${binary:Version}),
155 libmirserver-dev (= ${binary:Version}),171 libmirserver-dev (= ${binary:Version}),
156 ${misc:Depends},172 ${misc:Depends},
173 libboost-filesystem1.61.0 | libboost-filesystem1.58.0 | libboost-filesystem1.55.0,
174 libboost-system1.61.0 | libboost-system1.58.0 | libboost-system1.55.0,
157Description: Display server for Ubuntu - test development headers and library175Description: Display server for Ubuntu - test development headers and library
158 Mir is a display server running on linux systems, with a focus on efficiency,176 Mir is a display server running on linux systems, with a focus on efficiency,
159 robust operation and a well-defined driver model.177 robust operation and a well-defined driver model.
@@ -288,7 +306,20 @@
288 .306 .
289 Contains a tool for checking the graphics components of android devices.307 Contains a tool for checking the graphics components of android devices.
290308
291Package: libmircommon6309Package: libmircore1
310Section: libs
311Architecture: linux-any
312Multi-Arch: same
313Pre-Depends: ${misc:Pre-Depends}
314Depends: ${misc:Depends},
315 ${shlibs:Depends},
316Description: Display server for Ubuntu - shared library
317 Mir is a display server running on linux systems, with a focus on efficiency,
318 robust operation and a well-defined driver model.
319 .
320 Contains the shared libraries required for the Mir server and client.
321
322Package: libmircommon7
292Section: libs323Section: libs
293Architecture: linux-any324Architecture: linux-any
294Multi-Arch: same325Multi-Arch: same
@@ -302,7 +333,7 @@
302 Contains the shared libraries required for the Mir server and client.333 Contains the shared libraries required for the Mir server and client.
303334
304# Longer-term these drivers should move out-of-tree335# Longer-term these drivers should move out-of-tree
305Package: mir-platform-graphics-mesa-x10336Package: mir-platform-graphics-mesa-x11
306Section: libs337Section: libs
307Architecture: linux-any338Architecture: linux-any
308Multi-Arch: same339Multi-Arch: same
@@ -316,7 +347,7 @@
316 Contains the shared libraries required for the Mir server to interact with347 Contains the shared libraries required for the Mir server to interact with
317 the X11 platform using the Mesa drivers.348 the X11 platform using the Mesa drivers.
318349
319Package: mir-platform-graphics-mesa-kms10350Package: mir-platform-graphics-mesa-kms11
320Section: libs351Section: libs
321Architecture: linux-any352Architecture: linux-any
322Multi-Arch: same353Multi-Arch: same
@@ -330,7 +361,7 @@
330 Contains the shared libraries required for the Mir server to interact with361 Contains the shared libraries required for the Mir server to interact with
331 the hardware platform using the Mesa drivers.362 the hardware platform using the Mesa drivers.
332363
333Package: mir-platform-graphics-android10364Package: mir-platform-graphics-android11
334Section: libs365Section: libs
335Architecture: i386 amd64 armhf arm64366Architecture: i386 amd64 armhf arm64
336Multi-Arch: same367Multi-Arch: same
@@ -344,7 +375,7 @@
344 Contains the shared libraries required for the Mir server to interact with375 Contains the shared libraries required for the Mir server to interact with
345 the hardware platform using the Android drivers.376 the hardware platform using the Android drivers.
346377
347Package: mir-platform-input-evdev5378Package: mir-platform-input-evdev6
348Section: libs379Section: libs
349Architecture: linux-any380Architecture: linux-any
350Multi-Arch: same381Multi-Arch: same
@@ -406,10 +437,10 @@
406Multi-Arch: same437Multi-Arch: same
407Pre-Depends: ${misc:Pre-Depends}438Pre-Depends: ${misc:Pre-Depends}
408Depends: ${misc:Depends},439Depends: ${misc:Depends},
409 mir-platform-graphics-mesa-kms10,440 mir-platform-graphics-mesa-kms11,
410 mir-platform-graphics-mesa-x10,441 mir-platform-graphics-mesa-x11,
411 mir-client-platform-mesa5,442 mir-client-platform-mesa5,
412 mir-platform-input-evdev5,443 mir-platform-input-evdev6,
413Description: Display server for Ubuntu - desktop driver metapackage444Description: Display server for Ubuntu - desktop driver metapackage
414 Mir is a display server running on linux systems, with a focus on efficiency,445 Mir is a display server running on linux systems, with a focus on efficiency,
415 robust operation and a well-defined driver model.446 robust operation and a well-defined driver model.
@@ -423,9 +454,9 @@
423Multi-Arch: same454Multi-Arch: same
424Pre-Depends: ${misc:Pre-Depends}455Pre-Depends: ${misc:Pre-Depends}
425Depends: ${misc:Depends},456Depends: ${misc:Depends},
426 mir-platform-graphics-android10,457 mir-platform-graphics-android11,
427 mir-client-platform-android5,458 mir-client-platform-android5,
428 mir-platform-input-evdev5,459 mir-platform-input-evdev6,
429Description: Display server for Ubuntu - android driver metapackage460Description: Display server for Ubuntu - android driver metapackage
430 Mir is a display server running on linux systems, with a focus on efficiency,461 Mir is a display server running on linux systems, with a focus on efficiency,
431 robust operation and a well-defined driver model.462 robust operation and a well-defined driver model.
@@ -478,6 +509,20 @@
478 tests for Mir. It also contains a few interesting performance tests written509 tests for Mir. It also contains a few interesting performance tests written
479 using the framework.510 using the framework.
480511
512Package: libmirrenderer-dev
513Section: libdevel
514Architecture: linux-any
515Multi-Arch: same
516Pre-Depends: ${misc:Pre-Depends}
517Depends: ${misc:Depends},
518 libmircommon-dev,
519 libmirplatform-dev
520Description: Display server for Ubuntu - Renderer development files
521 Mir is a display server running on linux systems, with a focus on efficiency,
522 robust operation and a well-defined driver model.
523 .
524 Contains header files required for renderer development.
525
481Package: mir-renderer-gl-dev526Package: mir-renderer-gl-dev
482Section: libdevel527Section: libdevel
483Architecture: linux-any528Architecture: linux-any
484529
=== modified file 'debian/copyright'
--- debian/copyright 2016-01-25 17:28:12 +0000
+++ debian/copyright 2016-11-29 04:47:53 +0000
@@ -1,4 +1,4 @@
1Format: http://dep.debian.net/deps/dep5/1Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
2Upstream-Name: Mir2Upstream-Name: Mir
3Upstream-Contact: Thomas Voß <thomas.voss@canonical.com>3Upstream-Contact: Thomas Voß <thomas.voss@canonical.com>
4Source: http://launchpad.net/mir4Source: http://launchpad.net/mir
55
=== renamed file 'debian/libmircommon6.install' => 'debian/libmircommon7.install'
--- debian/libmircommon6.install 2016-07-20 11:16:01 +0000
+++ debian/libmircommon7.install 2016-11-29 04:47:53 +0000
@@ -1,1 +1,1 @@
1usr/lib/*/libmircommon.so.61usr/lib/*/libmircommon.so.7
22
=== added file 'debian/libmircore-dev.install'
--- debian/libmircore-dev.install 1970-01-01 00:00:00 +0000
+++ debian/libmircore-dev.install 2016-11-29 04:47:53 +0000
@@ -0,0 +1,3 @@
1usr/include/mircore
2usr/lib/*/libmircore.so
3usr/lib/*/pkgconfig/mircore.pc
04
=== added file 'debian/libmircore1.install'
--- debian/libmircore1.install 1970-01-01 00:00:00 +0000
+++ debian/libmircore1.install 2016-11-29 04:47:53 +0000
@@ -0,0 +1,1 @@
1usr/lib/*/libmircore.so.1
02
=== renamed file 'debian/libmirplatform13.install' => 'debian/libmirplatform14.install'
--- debian/libmirplatform13.install 2016-07-07 11:14:26 +0000
+++ debian/libmirplatform14.install 2016-11-29 04:47:53 +0000
@@ -1,1 +1,1 @@
1usr/lib/*/libmirplatform.so.131usr/lib/*/libmirplatform.so.14
22
=== added file 'debian/libmirrenderer-dev.install'
--- debian/libmirrenderer-dev.install 1970-01-01 00:00:00 +0000
+++ debian/libmirrenderer-dev.install 2016-11-29 04:47:53 +0000
@@ -0,0 +1,2 @@
1usr/include/mirrenderer/mir/renderer/*.h
2usr/lib/*/pkgconfig/mirrenderer.pc
03
=== renamed file 'debian/libmirserver41.install' => 'debian/libmirserver42.install'
--- debian/libmirserver41.install 2016-07-20 11:16:01 +0000
+++ debian/libmirserver42.install 2016-11-29 04:47:53 +0000
@@ -1,1 +1,1 @@
1usr/lib/*/libmirserver.so.411usr/lib/*/libmirserver.so.42
22
=== renamed file 'debian/mir-platform-graphics-android10.install' => 'debian/mir-platform-graphics-android11.install'
--- debian/mir-platform-graphics-android10.install 2016-07-20 04:54:07 +0000
+++ debian/mir-platform-graphics-android11.install 2016-11-29 04:47:53 +0000
@@ -1,1 +1,1 @@
1usr/lib/*/mir/server-platform/graphics-android.so.101usr/lib/*/mir/server-platform/graphics-android.so.11
22
=== renamed file 'debian/mir-platform-graphics-mesa-kms10.install' => 'debian/mir-platform-graphics-mesa-kms11.install'
--- debian/mir-platform-graphics-mesa-kms10.install 2016-07-20 04:54:07 +0000
+++ debian/mir-platform-graphics-mesa-kms11.install 2016-11-29 04:47:53 +0000
@@ -1,1 +1,1 @@
1usr/lib/*/mir/server-platform/graphics-mesa-kms.so.101usr/lib/*/mir/server-platform/graphics-mesa-kms.so.11
22
=== renamed file 'debian/mir-platform-graphics-mesa-x10.install' => 'debian/mir-platform-graphics-mesa-x11.install'
--- debian/mir-platform-graphics-mesa-x10.install 2016-07-20 04:54:07 +0000
+++ debian/mir-platform-graphics-mesa-x11.install 2016-11-29 04:47:53 +0000
@@ -1,1 +1,1 @@
1usr/lib/*/mir/server-platform/server-mesa-x11.so.101usr/lib/*/mir/server-platform/server-mesa-x11.so.11
22
=== renamed file 'debian/mir-platform-input-evdev5.install' => 'debian/mir-platform-input-evdev6.install'
--- debian/mir-platform-input-evdev5.install 2016-01-29 08:18:22 +0000
+++ debian/mir-platform-input-evdev6.install 2016-11-29 04:47:53 +0000
@@ -1,1 +1,1 @@
1usr/lib/*/mir/server-platform/input-evdev.so.51usr/lib/*/mir/server-platform/input-evdev.so.6
22
=== modified file 'debian/rules'
--- debian/rules 2016-07-21 11:19:35 +0000
+++ debian/rules 2016-11-29 04:47:53 +0000
@@ -28,6 +28,11 @@
28 COMMON_CONFIGURE_OPTIONS += -DMIR_LINK_TIME_OPTIMIZATION=ON28 COMMON_CONFIGURE_OPTIONS += -DMIR_LINK_TIME_OPTIMIZATION=ON
29endif29endif
3030
31# Disable LTO on s390x, due to failing to build
32ifeq ($(DEB_HOST_ARCH),s390x)
33 COMMON_CONFIGURE_OPTIONS += -DMIR_LINK_TIME_OPTIMIZATION=OFF
34endif
35
31override_dh_auto_configure:36override_dh_auto_configure:
32ifneq ($(filter armhf arm64,$(DEB_HOST_ARCH)),)37ifneq ($(filter armhf arm64,$(DEB_HOST_ARCH)),)
33 dh_auto_configure -- \38 dh_auto_configure -- \
3439
=== modified file 'doc/Doxyfile.in'
--- doc/Doxyfile.in 2015-02-22 07:46:25 +0000
+++ doc/Doxyfile.in 2016-11-29 04:47:53 +0000
@@ -1,106 +1,122 @@
1# Doxyfile 1.8.41# Doxyfile 1.8.11
22
3# This file describes the settings to be used by the documentation system3# This file describes the settings to be used by the documentation system
4# doxygen (www.doxygen.org) for a project.4# doxygen (www.doxygen.org) for a project.
5#5#
6# All text after a double hash (##) is considered a comment and is placed6# All text after a double hash (##) is considered a comment and is placed in
7# in front of the TAG it is preceding .7# front of the TAG it is preceding.
8# All text after a hash (#) is considered a comment and will be ignored.8#
9# All text after a single hash (#) is considered a comment and will be ignored.
9# The format is:10# The format is:
10# TAG = value [value, ...]11# TAG = value [value, ...]
11# For lists items can also be appended using:12# For lists, items can also be appended using:
12# TAG += value [value, ...]13# TAG += value [value, ...]
13# Values that contain spaces should be placed between quotes (" ").14# Values that contain spaces should be placed between quotes (\" \").
1415
15#---------------------------------------------------------------------------16#---------------------------------------------------------------------------
16# Project related configuration options17# Project related configuration options
17#---------------------------------------------------------------------------18#---------------------------------------------------------------------------
1819
19# This tag specifies the encoding used for all characters in the config file20# This tag specifies the encoding used for all characters in the config file
20# that follow. The default is UTF-8 which is also the encoding used for all21# that follow. The default is UTF-8 which is also the encoding used for all text
21# text before the first occurrence of this tag. Doxygen uses libiconv (or the22# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
22# iconv built into libc) for the transcoding. See23# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
23# http://www.gnu.org/software/libiconv for the list of possible encodings.24# for the list of possible encodings.
25# The default value is: UTF-8.
2426
25DOXYFILE_ENCODING = UTF-827DOXYFILE_ENCODING = UTF-8
2628
27# The PROJECT_NAME tag is a single word (or sequence of words) that should29# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
28# identify the project. Note that if you do not use Doxywizard you need30# double-quotes, unless you are using Doxywizard) that should identify the
29# to put quotes around the project name if it contains spaces.31# project for which the documentation is generated. This name is used in the
32# title of most generated pages and in a few other places.
33# The default value is: My Project.
3034
31PROJECT_NAME = Mir35PROJECT_NAME = Mir
3236
33# The PROJECT_NUMBER tag can be used to enter a project or revision number.37# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
34# This could be handy for archiving the generated documentation or38# could be handy for archiving the generated documentation or if some version
35# if some version control system is used.39# control system is used.
3640
37PROJECT_NUMBER =41PROJECT_NUMBER =
3842
39# Using the PROJECT_BRIEF tag one can provide an optional one line description43# Using the PROJECT_BRIEF tag one can provide an optional one line description
40# for a project that appears at the top of each page and should give viewer44# for a project that appears at the top of each page and should give viewer a
41# a quick idea about the purpose of the project. Keep the description short.45# quick idea about the purpose of the project. Keep the description short.
4246
43PROJECT_BRIEF =47PROJECT_BRIEF =
4448
45# With the PROJECT_LOGO tag one can specify an logo or icon that is49# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
46# included in the documentation. The maximum height of the logo should not50# in the documentation. The maximum height of the logo should not exceed 55
47# exceed 55 pixels and the maximum width should not exceed 200 pixels.51# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
48# Doxygen will copy the logo to the output directory.52# the logo to the output directory.
4953
50PROJECT_LOGO =54PROJECT_LOGO =
5155
52# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)56# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
53# base path where the generated documentation will be put.57# into which the generated documentation will be written. If a relative path is
54# If a relative path is entered, it will be relative to the location58# entered, it will be relative to the location where doxygen was started. If
55# where doxygen was started. If left blank the current directory will be used.59# left blank the current directory will be used.
5660
57OUTPUT_DIRECTORY = @CMAKE_CURRENT_BINARY_DIR@/doc61OUTPUT_DIRECTORY = @CMAKE_CURRENT_BINARY_DIR@/doc
5862
59# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create63# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
60# 4096 sub-directories (in 2 levels) under the output directory of each output64# directories (in 2 levels) under the output directory of each output format and
61# format and will distribute the generated files over these directories.65# will distribute the generated files over these directories. Enabling this
62# Enabling this option can be useful when feeding doxygen a huge amount of66# option can be useful when feeding doxygen a huge amount of source files, where
63# source files, where putting all generated files in the same directory would67# putting all generated files in the same directory would otherwise causes
64# otherwise cause performance problems for the file system.68# performance problems for the file system.
69# The default value is: NO.
6570
66CREATE_SUBDIRS = NO71CREATE_SUBDIRS = NO
6772
73# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
74# characters to appear in the names of generated files. If set to NO, non-ASCII
75# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
76# U+3044.
77# The default value is: NO.
78
79ALLOW_UNICODE_NAMES = NO
80
68# The OUTPUT_LANGUAGE tag is used to specify the language in which all81# The OUTPUT_LANGUAGE tag is used to specify the language in which all
69# documentation generated by doxygen is written. Doxygen will use this82# documentation generated by doxygen is written. Doxygen will use this
70# information to generate all constant output in the proper language.83# information to generate all constant output in the proper language.
71# The default language is English, other supported languages are:84# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
72# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,85# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
73# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,86# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
74# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English87# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
75# messages), Korean, Korean-en, Latvian, Lithuanian, Norwegian, Macedonian,88# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
76# Persian, Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic,89# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
77# Slovak, Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.90# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
91# Ukrainian and Vietnamese.
92# The default value is: English.
7893
79OUTPUT_LANGUAGE = English94OUTPUT_LANGUAGE = English
8095
81# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will96# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
82# include brief member descriptions after the members that are listed in97# descriptions after the members that are listed in the file and class
83# the file and class documentation (similar to JavaDoc).98# documentation (similar to Javadoc). Set to NO to disable this.
84# Set to NO to disable this.99# The default value is: YES.
85100
86BRIEF_MEMBER_DESC = YES101BRIEF_MEMBER_DESC = YES
87102
88# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend103# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
89# the brief description of a member or function before the detailed description.104# description of a member or function before the detailed description
90# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the105#
106# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
91# brief descriptions will be completely suppressed.107# brief descriptions will be completely suppressed.
108# The default value is: YES.
92109
93REPEAT_BRIEF = YES110REPEAT_BRIEF = YES
94111
95# This tag implements a quasi-intelligent brief description abbreviator112# This tag implements a quasi-intelligent brief description abbreviator that is
96# that is used to form the text in various listings. Each string113# used to form the text in various listings. Each string in this list, if found
97# in this list, if found as the leading text of the brief description, will be114# as the leading text of the brief description, will be stripped from the text
98# stripped from the text and the result after processing the whole list, is115# and the result, after processing the whole list, is used as the annotated
99# used as the annotated text. Otherwise, the brief description is used as-is.116# text. Otherwise, the brief description is used as-is. If left blank, the
100# If left blank, the following values are used ("$name" is automatically117# following values are used ($name is automatically replaced with the name of
101# replaced with the name of the entity): "The $name class" "The $name widget"118# the entity):The $name class, The $name widget, The $name file, is, provides,
102# "The $name file" "is" "provides" "specifies" "contains"119# specifies, contains, represents, a, an and the.
103# "represents" "a" "an" "the"
104120
105ABBREVIATE_BRIEF = "The $name class" \121ABBREVIATE_BRIEF = "The $name class" \
106 "The $name widget" \122 "The $name widget" \
@@ -115,8 +131,9 @@
115 the131 the
116132
117# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then133# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
118# Doxygen will generate a detailed section even if there is only a brief134# doxygen will generate a detailed section even if there is only a brief
119# description.135# description.
136# The default value is: NO.
120137
121ALWAYS_DETAILED_SEC = NO138ALWAYS_DETAILED_SEC = NO
122139
@@ -124,231 +141,276 @@
124# inherited members of a class in the documentation of that class as if those141# inherited members of a class in the documentation of that class as if those
125# members were ordinary class members. Constructors, destructors and assignment142# members were ordinary class members. Constructors, destructors and assignment
126# operators of the base classes will not be shown.143# operators of the base classes will not be shown.
144# The default value is: NO.
127145
128INLINE_INHERITED_MEMB = NO146INLINE_INHERITED_MEMB = NO
129147
130# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full148# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
131# path before files name in the file list and in the header files. If set149# before files name in the file list and in the header files. If set to NO the
132# to NO the shortest path that makes the file name unique will be used.150# shortest path that makes the file name unique will be used
151# The default value is: YES.
133152
134FULL_PATH_NAMES = YES153FULL_PATH_NAMES = YES
135154
136# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag155# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
137# can be used to strip a user-defined part of the path. Stripping is156# Stripping is only done if one of the specified strings matches the left-hand
138# only done if one of the specified strings matches the left-hand part of157# part of the path. The tag can be used to show relative paths in the file list.
139# the path. The tag can be used to show relative paths in the file list.158# If left blank the directory from which doxygen is run is used as the path to
140# If left blank the directory from which doxygen is run is used as the159# strip.
141# path to strip. Note that you specify absolute paths here, but also160#
142# relative paths, which will be relative from the directory where doxygen is161# Note that you can specify absolute paths here, but also relative paths, which
143# started.162# will be relative from the directory where doxygen is started.
163# This tag requires that the tag FULL_PATH_NAMES is set to YES.
144164
145STRIP_FROM_PATH = @CMAKE_CURRENT_SOURCE_DIR@165STRIP_FROM_PATH = @CMAKE_CURRENT_SOURCE_DIR@
146166
147# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of167# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
148# the path mentioned in the documentation of a class, which tells168# path mentioned in the documentation of a class, which tells the reader which
149# the reader which header file to include in order to use a class.169# header file to include in order to use a class. If left blank only the name of
150# If left blank only the name of the header file containing the class170# the header file containing the class definition is used. Otherwise one should
151# definition is used. Otherwise one should specify the include paths that171# specify the list of include paths that are normally passed to the compiler
152# are normally passed to the compiler using the -I flag.172# using the -I flag.
153173
154STRIP_FROM_INC_PATH =174STRIP_FROM_INC_PATH =
155175
156# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter176# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
157# (but less readable) file names. This can be useful if your file system177# less readable) file names. This can be useful is your file systems doesn't
158# doesn't support long names like on DOS, Mac, or CD-ROM.178# support long names like on DOS, Mac, or CD-ROM.
179# The default value is: NO.
159180
160SHORT_NAMES = NO181SHORT_NAMES = NO
161182
162# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen183# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
163# will interpret the first line (until the first dot) of a JavaDoc-style184# first line (until the first dot) of a Javadoc-style comment as the brief
164# comment as the brief description. If set to NO, the JavaDoc185# description. If set to NO, the Javadoc-style will behave just like regular Qt-
165# comments will behave just like regular Qt-style comments186# style comments (thus requiring an explicit @brief command for a brief
166# (thus requiring an explicit @brief command for a brief description.)187# description.)
188# The default value is: NO.
167189
168JAVADOC_AUTOBRIEF = YES190JAVADOC_AUTOBRIEF = YES
169191
170# If the QT_AUTOBRIEF tag is set to YES then Doxygen will192# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
171# interpret the first line (until the first dot) of a Qt-style193# line (until the first dot) of a Qt-style comment as the brief description. If
172# comment as the brief description. If set to NO, the comments194# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
173# will behave just like regular Qt-style comments (thus requiring195# requiring an explicit \brief command for a brief description.)
174# an explicit \brief command for a brief description.)196# The default value is: NO.
175197
176QT_AUTOBRIEF = NO198QT_AUTOBRIEF = NO
177199
178# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen200# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
179# treat a multi-line C++ special comment block (i.e. a block of //! or ///201# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
180# comments) as a brief description. This used to be the default behaviour.202# a brief description. This used to be the default behavior. The new default is
181# The new default is to treat a multi-line C++ comment block as a detailed203# to treat a multi-line C++ comment block as a detailed description. Set this
182# description. Set this tag to YES if you prefer the old behaviour instead.204# tag to YES if you prefer the old behavior instead.
205#
206# Note that setting this tag to YES also means that rational rose comments are
207# not recognized any more.
208# The default value is: NO.
183209
184MULTILINE_CPP_IS_BRIEF = YES210MULTILINE_CPP_IS_BRIEF = YES
185211
186# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented212# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
187# member inherits the documentation from any documented member that it213# documentation from any documented member that it re-implements.
188# re-implements.214# The default value is: YES.
189215
190INHERIT_DOCS = YES216INHERIT_DOCS = YES
191217
192# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce218# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
193# a new page for each member. If set to NO, the documentation of a member will219# page for each member. If set to NO, the documentation of a member will be part
194# be part of the file/class/namespace that contains it.220# of the file/class/namespace that contains it.
221# The default value is: NO.
195222
196SEPARATE_MEMBER_PAGES = NO223SEPARATE_MEMBER_PAGES = NO
197224
198# The TAB_SIZE tag can be used to set the number of spaces in a tab.225# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
199# Doxygen uses this value to replace tabs by spaces in code fragments.226# uses this value to replace tabs by spaces in code fragments.
227# Minimum value: 1, maximum value: 16, default value: 4.
200228
201TAB_SIZE = 4229TAB_SIZE = 4
202230
203# This tag can be used to specify a number of aliases that acts231# This tag can be used to specify a number of aliases that act as commands in
204# as commands in the documentation. An alias has the form "name=value".232# the documentation. An alias has the form:
205# For example adding "sideeffect=\par Side Effects:\n" will allow you to233# name=value
206# put the command \sideeffect (or @sideeffect) in the documentation, which234# For example adding
207# will result in a user-defined paragraph with heading "Side Effects:".235# "sideeffect=@par Side Effects:\n"
208# You can put \n's in the value part of an alias to insert newlines.236# will allow you to put the command \sideeffect (or @sideeffect) in the
237# documentation, which will result in a user-defined paragraph with heading
238# "Side Effects:". You can put \n's in the value part of an alias to insert
239# newlines.
209240
210ALIASES =241ALIASES =
211242
212# This tag can be used to specify a number of word-keyword mappings (TCL only).243# This tag can be used to specify a number of word-keyword mappings (TCL only).
213# A mapping has the form "name=value". For example adding244# A mapping has the form "name=value". For example adding "class=itcl::class"
214# "class=itcl::class" will allow you to use the command class in the245# will allow you to use the command class in the itcl::class meaning.
215# itcl::class meaning.
216246
217TCL_SUBST =247TCL_SUBST =
218248
219# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C249# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
220# sources only. Doxygen will then generate output that is more tailored for C.250# only. Doxygen will then generate output that is more tailored for C. For
221# For instance, some of the names that are used will be different. The list251# instance, some of the names that are used will be different. The list of all
222# of all members will be omitted, etc.252# members will be omitted, etc.
253# The default value is: NO.
223254
224OPTIMIZE_OUTPUT_FOR_C = NO255OPTIMIZE_OUTPUT_FOR_C = NO
225256
226# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java257# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
227# sources only. Doxygen will then generate output that is more tailored for258# Python sources only. Doxygen will then generate output that is more tailored
228# Java. For instance, namespaces will be presented as packages, qualified259# for that language. For instance, namespaces will be presented as packages,
229# scopes will look different, etc.260# qualified scopes will look different, etc.
261# The default value is: NO.
230262
231OPTIMIZE_OUTPUT_JAVA = NO263OPTIMIZE_OUTPUT_JAVA = NO
232264
233# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran265# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
234# sources only. Doxygen will then generate output that is more tailored for266# sources. Doxygen will then generate output that is tailored for Fortran.
235# Fortran.267# The default value is: NO.
236268
237OPTIMIZE_FOR_FORTRAN = NO269OPTIMIZE_FOR_FORTRAN = NO
238270
239# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL271# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
240# sources. Doxygen will then generate output that is tailored for272# sources. Doxygen will then generate output that is tailored for VHDL.
241# VHDL.273# The default value is: NO.
242274
243OPTIMIZE_OUTPUT_VHDL = NO275OPTIMIZE_OUTPUT_VHDL = NO
244276
245# Doxygen selects the parser to use depending on the extension of the files it277# Doxygen selects the parser to use depending on the extension of the files it
246# parses. With this tag you can assign which parser to use for a given278# parses. With this tag you can assign which parser to use for a given
247# extension. Doxygen has a built-in mapping, but you can override or extend it279# extension. Doxygen has a built-in mapping, but you can override or extend it
248# using this tag. The format is ext=language, where ext is a file extension,280# using this tag. The format is ext=language, where ext is a file extension, and
249# and language is one of the parsers supported by doxygen: IDL, Java,281# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
250# Javascript, CSharp, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL, C,282# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
251# C++. For instance to make doxygen treat .inc files as Fortran files (default283# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
252# is PHP), and .f files as C (default is Fortran), use: inc=Fortran f=C. Note284# Fortran. In the later case the parser tries to guess whether the code is fixed
253# that for custom extensions you also need to set FILE_PATTERNS otherwise the285# or free formatted code, this is the default for Fortran type files), VHDL. For
254# files are not read by doxygen.286# instance to make doxygen treat .inc files as Fortran files (default is PHP),
287# and .f files as C (default is Fortran), use: inc=Fortran f=C.
288#
289# Note: For files without extension you can use no_extension as a placeholder.
290#
291# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
292# the files are not read by doxygen.
255293
256EXTENSION_MAPPING =294EXTENSION_MAPPING =
257295
258# If MARKDOWN_SUPPORT is enabled (the default) then doxygen pre-processes all296# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
259# comments according to the Markdown format, which allows for more readable297# according to the Markdown format, which allows for more readable
260# documentation. See http://daringfireball.net/projects/markdown/ for details.298# documentation. See http://daringfireball.net/projects/markdown/ for details.
261# The output of markdown processing is further processed by doxygen, so you299# The output of markdown processing is further processed by doxygen, so you can
262# can mix doxygen, HTML, and XML commands with Markdown formatting.300# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
263# Disable only in case of backward compatibilities issues.301# case of backward compatibilities issues.
302# The default value is: YES.
264303
265MARKDOWN_SUPPORT = YES304MARKDOWN_SUPPORT = YES
266305
267# When enabled doxygen tries to link words that correspond to documented306# When enabled doxygen tries to link words that correspond to documented
268# classes, or namespaces to their corresponding documentation. Such a link can307# classes, or namespaces to their corresponding documentation. Such a link can
269# be prevented in individual cases by by putting a % sign in front of the word308# be prevented in individual cases by putting a % sign in front of the word or
270# or globally by setting AUTOLINK_SUPPORT to NO.309# globally by setting AUTOLINK_SUPPORT to NO.
310# The default value is: YES.
271311
272AUTOLINK_SUPPORT = YES312AUTOLINK_SUPPORT = YES
273313
274# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want314# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
275# to include (a tag file for) the STL sources as input, then you should315# to include (a tag file for) the STL sources as input, then you should set this
276# set this tag to YES in order to let doxygen match functions declarations and316# tag to YES in order to let doxygen match functions declarations and
277# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.317# definitions whose arguments contain STL classes (e.g. func(std::string);
278# func(std::string) {}). This also makes the inheritance and collaboration318# versus func(std::string) {}). This also make the inheritance and collaboration
279# diagrams that involve STL classes more complete and accurate.319# diagrams that involve STL classes more complete and accurate.
320# The default value is: NO.
280321
281BUILTIN_STL_SUPPORT = YES322BUILTIN_STL_SUPPORT = YES
282323
283# If you use Microsoft's C++/CLI language, you should set this option to YES to324# If you use Microsoft's C++/CLI language, you should set this option to YES to
284# enable parsing support.325# enable parsing support.
326# The default value is: NO.
285327
286CPP_CLI_SUPPORT = NO328CPP_CLI_SUPPORT = NO
287329
288# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.330# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
289# Doxygen will parse them like normal C++ but will assume all classes use public331# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
290# instead of private inheritance when no explicit protection keyword is present.332# will parse them like normal C++ but will assume all classes use public instead
333# of private inheritance when no explicit protection keyword is present.
334# The default value is: NO.
291335
292SIP_SUPPORT = NO336SIP_SUPPORT = NO
293337
294# For Microsoft's IDL there are propget and propput attributes to indicate338# For Microsoft's IDL there are propget and propput attributes to indicate
295# getter and setter methods for a property. Setting this option to YES (the339# getter and setter methods for a property. Setting this option to YES will make
296# default) will make doxygen replace the get and set methods by a property in340# doxygen to replace the get and set methods by a property in the documentation.
297# the documentation. This will only work if the methods are indeed getting or341# This will only work if the methods are indeed getting or setting a simple
298# setting a simple type. If this is not the case, or you want to show the342# type. If this is not the case, or you want to show the methods anyway, you
299# methods anyway, you should set this option to NO.343# should set this option to NO.
344# The default value is: YES.
300345
301IDL_PROPERTY_SUPPORT = YES346IDL_PROPERTY_SUPPORT = YES
302347
303# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC348# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
304# tag is set to YES, then doxygen will reuse the documentation of the first349# tag is set to YES then doxygen will reuse the documentation of the first
305# member in the group (if any) for the other members of the group. By default350# member in the group (if any) for the other members of the group. By default
306# all members of a group must be documented explicitly.351# all members of a group must be documented explicitly.
352# The default value is: NO.
307353
308DISTRIBUTE_GROUP_DOC = NO354DISTRIBUTE_GROUP_DOC = NO
309355
310# Set the SUBGROUPING tag to YES (the default) to allow class member groups of356# If one adds a struct or class to a group and this option is enabled, then also
311# the same type (for instance a group of public functions) to be put as a357# any nested class or struct is added to the same group. By default this option
312# subgroup of that type (e.g. under the Public Functions section). Set it to358# is disabled and one has to add nested compounds explicitly via \ingroup.
313# NO to prevent subgrouping. Alternatively, this can be done per class using359# The default value is: NO.
314# the \nosubgrouping command.360
361GROUP_NESTED_COMPOUNDS = NO
362
363# Set the SUBGROUPING tag to YES to allow class member groups of the same type
364# (for instance a group of public functions) to be put as a subgroup of that
365# type (e.g. under the Public Functions section). Set it to NO to prevent
366# subgrouping. Alternatively, this can be done per class using the
367# \nosubgrouping command.
368# The default value is: YES.
315369
316SUBGROUPING = YES370SUBGROUPING = YES
317371
318# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and372# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
319# unions are shown inside the group in which they are included (e.g. using373# are shown inside the group in which they are included (e.g. using \ingroup)
320# @ingroup) instead of on a separate page (for HTML and Man pages) or374# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
321# section (for LaTeX and RTF).375# and RTF).
376#
377# Note that this feature does not work in combination with
378# SEPARATE_MEMBER_PAGES.
379# The default value is: NO.
322380
323INLINE_GROUPED_CLASSES = NO381INLINE_GROUPED_CLASSES = NO
324382
325# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and383# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
326# unions with only public data fields or simple typedef fields will be shown384# with only public data fields or simple typedef fields will be shown inline in
327# inline in the documentation of the scope in which they are defined (i.e. file,385# the documentation of the scope in which they are defined (i.e. file,
328# namespace, or group documentation), provided this scope is documented. If set386# namespace, or group documentation), provided this scope is documented. If set
329# to NO (the default), structs, classes, and unions are shown on a separate387# to NO, structs, classes, and unions are shown on a separate page (for HTML and
330# page (for HTML and Man pages) or section (for LaTeX and RTF).388# Man pages) or section (for LaTeX and RTF).
389# The default value is: NO.
331390
332INLINE_SIMPLE_STRUCTS = NO391INLINE_SIMPLE_STRUCTS = NO
333392
334# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum393# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
335# is documented as struct, union, or enum with the name of the typedef. So394# enum is documented as struct, union, or enum with the name of the typedef. So
336# typedef struct TypeS {} TypeT, will appear in the documentation as a struct395# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
337# with name TypeT. When disabled the typedef will appear as a member of a file,396# with name TypeT. When disabled the typedef will appear as a member of a file,
338# namespace, or class. And the struct will be named TypeS. This can typically397# namespace, or class. And the struct will be named TypeS. This can typically be
339# be useful for C code in case the coding convention dictates that all compound398# useful for C code in case the coding convention dictates that all compound
340# types are typedef'ed and only the typedef is referenced, never the tag name.399# types are typedef'ed and only the typedef is referenced, never the tag name.
400# The default value is: NO.
341401
342TYPEDEF_HIDES_STRUCT = NO402TYPEDEF_HIDES_STRUCT = NO
343403
344# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This404# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
345# cache is used to resolve symbols given their name and scope. Since this can405# cache is used to resolve symbols given their name and scope. Since this can be
346# be an expensive process and often the same symbol appear multiple times in406# an expensive process and often the same symbol appears multiple times in the
347# the code, doxygen keeps a cache of pre-resolved symbols. If the cache is too407# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
348# small doxygen will become slower. If the cache is too large, memory is wasted.408# doxygen will become slower. If the cache is too large, memory is wasted. The
349# The cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid409# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
350# range is 0..9, the default is 0, corresponding to a cache size of 2^16 = 65536410# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
351# symbols.411# symbols. At the end of a run doxygen will report the cache usage and suggest
412# the optimal cache size from a speed point of view.
413# Minimum value: 0, maximum value: 9, default value: 0.
352414
353LOOKUP_CACHE_SIZE = 0415LOOKUP_CACHE_SIZE = 0
354416
@@ -356,337 +418,398 @@
356# Build related configuration options418# Build related configuration options
357#---------------------------------------------------------------------------419#---------------------------------------------------------------------------
358420
359# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in421# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
360# documentation are documented, even if no documentation was available.422# documentation are documented, even if no documentation was available. Private
361# Private class members and static file members will be hidden unless423# class members and static file members will be hidden unless the
362# the EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES424# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
425# Note: This will also disable the warnings about undocumented members that are
426# normally produced when WARNINGS is set to YES.
427# The default value is: NO.
363428
364EXTRACT_ALL = YES429EXTRACT_ALL = YES
365430
366# If the EXTRACT_PRIVATE tag is set to YES all private members of a class431# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
367# will be included in the documentation.432# be included in the documentation.
433# The default value is: NO.
368434
369EXTRACT_PRIVATE = NO435EXTRACT_PRIVATE = NO
370436
371# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal437# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
372# scope will be included in the documentation.438# scope will be included in the documentation.
439# The default value is: NO.
373440
374EXTRACT_PACKAGE = NO441EXTRACT_PACKAGE = NO
375442
376# If the EXTRACT_STATIC tag is set to YES all static members of a file443# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
377# will be included in the documentation.444# included in the documentation.
445# The default value is: NO.
378446
379EXTRACT_STATIC = NO447EXTRACT_STATIC = NO
380448
381# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)449# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
382# defined locally in source files will be included in the documentation.450# locally in source files will be included in the documentation. If set to NO,
383# If set to NO only classes defined in header files are included.451# only classes defined in header files are included. Does not have any effect
452# for Java sources.
453# The default value is: YES.
384454
385EXTRACT_LOCAL_CLASSES = NO455EXTRACT_LOCAL_CLASSES = NO
386456
387# This flag is only useful for Objective-C code. When set to YES local457# This flag is only useful for Objective-C code. If set to YES, local methods,
388# methods, which are defined in the implementation section but not in458# which are defined in the implementation section but not in the interface are
389# the interface are included in the documentation.459# included in the documentation. If set to NO, only methods in the interface are
390# If set to NO (the default) only methods in the interface are included.460# included.
461# The default value is: NO.
391462
392EXTRACT_LOCAL_METHODS = NO463EXTRACT_LOCAL_METHODS = NO
393464
394# If this flag is set to YES, the members of anonymous namespaces will be465# If this flag is set to YES, the members of anonymous namespaces will be
395# extracted and appear in the documentation as a namespace called466# extracted and appear in the documentation as a namespace called
396# 'anonymous_namespace{file}', where file will be replaced with the base467# 'anonymous_namespace{file}', where file will be replaced with the base name of
397# name of the file that contains the anonymous namespace. By default468# the file that contains the anonymous namespace. By default anonymous namespace
398# anonymous namespaces are hidden.469# are hidden.
470# The default value is: NO.
399471
400EXTRACT_ANON_NSPACES = NO472EXTRACT_ANON_NSPACES = NO
401473
402# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all474# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
403# undocumented members of documented classes, files or namespaces.475# undocumented members inside documented classes or files. If set to NO these
404# If set to NO (the default) these members will be included in the476# members will be included in the various overviews, but no documentation
405# various overviews, but no documentation section is generated.477# section is generated. This option has no effect if EXTRACT_ALL is enabled.
406# This option has no effect if EXTRACT_ALL is enabled.478# The default value is: NO.
407479
408HIDE_UNDOC_MEMBERS = NO480HIDE_UNDOC_MEMBERS = NO
409481
410# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all482# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
411# undocumented classes that are normally visible in the class hierarchy.483# undocumented classes that are normally visible in the class hierarchy. If set
412# If set to NO (the default) these classes will be included in the various484# to NO, these classes will be included in the various overviews. This option
413# overviews. This option has no effect if EXTRACT_ALL is enabled.485# has no effect if EXTRACT_ALL is enabled.
486# The default value is: NO.
414487
415HIDE_UNDOC_CLASSES = NO488HIDE_UNDOC_CLASSES = NO
416489
417# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all490# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
418# friend (class|struct|union) declarations.491# (class|struct|union) declarations. If set to NO, these declarations will be
419# If set to NO (the default) these declarations will be included in the492# included in the documentation.
420# documentation.493# The default value is: NO.
421494
422HIDE_FRIEND_COMPOUNDS = NO495HIDE_FRIEND_COMPOUNDS = NO
423496
424# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any497# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
425# documentation blocks found inside the body of a function.498# documentation blocks found inside the body of a function. If set to NO, these
426# If set to NO (the default) these blocks will be appended to the499# blocks will be appended to the function's detailed documentation block.
427# function's detailed documentation block.500# The default value is: NO.
428501
429HIDE_IN_BODY_DOCS = NO502HIDE_IN_BODY_DOCS = NO
430503
431# The INTERNAL_DOCS tag determines if documentation504# The INTERNAL_DOCS tag determines if documentation that is typed after a
432# that is typed after a \internal command is included. If the tag is set505# \internal command is included. If the tag is set to NO then the documentation
433# to NO (the default) then the documentation will be excluded.506# will be excluded. Set it to YES to include the internal documentation.
434# Set it to YES to include the internal documentation.507# The default value is: NO.
435508
436INTERNAL_DOCS = NO509INTERNAL_DOCS = NO
437510
438# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate511# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
439# file names in lower-case letters. If set to YES upper-case letters are also512# names in lower-case letters. If set to YES, upper-case letters are also
440# allowed. This is useful if you have classes or files whose names only differ513# allowed. This is useful if you have classes or files whose names only differ
441# in case and if your file system supports case sensitive file names. Windows514# in case and if your file system supports case sensitive file names. Windows
442# and Mac users are advised to set this option to NO.515# and Mac users are advised to set this option to NO.
516# The default value is: system dependent.
443517
444CASE_SENSE_NAMES = NO518CASE_SENSE_NAMES = NO
445519
446# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen520# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
447# will show members with their full class and namespace scopes in the521# their full class and namespace scopes in the documentation. If set to YES, the
448# documentation. If set to YES the scope will be hidden.522# scope will be hidden.
523# The default value is: NO.
449524
450HIDE_SCOPE_NAMES = NO525HIDE_SCOPE_NAMES = NO
451526
452# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen527# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
453# will put a list of the files that are included by a file in the documentation528# append additional text to a page's title, such as Class Reference. If set to
454# of that file.529# YES the compound reference will be hidden.
530# The default value is: NO.
531
532HIDE_COMPOUND_REFERENCE= NO
533
534# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
535# the files that are included by a file in the documentation of that file.
536# The default value is: YES.
455537
456SHOW_INCLUDE_FILES = YES538SHOW_INCLUDE_FILES = YES
457539
458# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen540# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
459# will list include files with double quotes in the documentation541# grouped member an include statement to the documentation, telling the reader
460# rather than with sharp brackets.542# which file to include in order to use the member.
543# The default value is: NO.
544
545SHOW_GROUPED_MEMB_INC = NO
546
547# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
548# files with double quotes in the documentation rather than with sharp brackets.
549# The default value is: NO.
461550
462FORCE_LOCAL_INCLUDES = NO551FORCE_LOCAL_INCLUDES = NO
463552
464# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]553# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
465# is inserted in the documentation for inline members.554# documentation for inline members.
555# The default value is: YES.
466556
467INLINE_INFO = YES557INLINE_INFO = YES
468558
469# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen559# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
470# will sort the (detailed) documentation of file and class members560# (detailed) documentation of file and class members alphabetically by member
471# alphabetically by member name. If set to NO the members will appear in561# name. If set to NO, the members will appear in declaration order.
472# declaration order.562# The default value is: YES.
473563
474SORT_MEMBER_DOCS = YES564SORT_MEMBER_DOCS = YES
475565
476# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the566# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
477# brief documentation of file, namespace and class members alphabetically567# descriptions of file, namespace and class members alphabetically by member
478# by member name. If set to NO (the default) the members will appear in568# name. If set to NO, the members will appear in declaration order. Note that
479# declaration order.569# this will also influence the order of the classes in the class list.
570# The default value is: NO.
480571
481SORT_BRIEF_DOCS = NO572SORT_BRIEF_DOCS = NO
482573
483# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen574# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
484# will sort the (brief and detailed) documentation of class members so that575# (brief and detailed) documentation of class members so that constructors and
485# constructors and destructors are listed first. If set to NO (the default)576# destructors are listed first. If set to NO the constructors will appear in the
486# the constructors will appear in the respective orders defined by577# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
487# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.578# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
488# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO579# member documentation.
489# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.580# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
581# detailed member documentation.
582# The default value is: NO.
490583
491SORT_MEMBERS_CTORS_1ST = NO584SORT_MEMBERS_CTORS_1ST = NO
492585
493# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the586# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
494# hierarchy of group names into alphabetical order. If set to NO (the default)587# of group names into alphabetical order. If set to NO the group names will
495# the group names will appear in their defined order.588# appear in their defined order.
589# The default value is: NO.
496590
497SORT_GROUP_NAMES = NO591SORT_GROUP_NAMES = NO
498592
499# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be593# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
500# sorted by fully-qualified names, including namespaces. If set to594# fully-qualified names, including namespaces. If set to NO, the class list will
501# NO (the default), the class list will be sorted only by class name,595# be sorted only by class name, not including the namespace part.
502# not including the namespace part.
503# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.596# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
504# Note: This option applies only to the class list, not to the597# Note: This option applies only to the class list, not to the alphabetical
505# alphabetical list.598# list.
599# The default value is: NO.
506600
507SORT_BY_SCOPE_NAME = NO601SORT_BY_SCOPE_NAME = NO
508602
509# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to603# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
510# do proper type resolution of all parameters of a function it will reject a604# type resolution of all parameters of a function it will reject a match between
511# match between the prototype and the implementation of a member function even605# the prototype and the implementation of a member function even if there is
512# if there is only one candidate or it is obvious which candidate to choose606# only one candidate or it is obvious which candidate to choose by doing a
513# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen607# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
514# will still accept a match between prototype and implementation in such cases.608# accept a match between prototype and implementation in such cases.
609# The default value is: NO.
515610
516STRICT_PROTO_MATCHING = NO611STRICT_PROTO_MATCHING = NO
517612
518# The GENERATE_TODOLIST tag can be used to enable (YES) or613# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
519# disable (NO) the todo list. This list is created by putting \todo614# list. This list is created by putting \todo commands in the documentation.
520# commands in the documentation.615# The default value is: YES.
521616
522GENERATE_TODOLIST = YES617GENERATE_TODOLIST = YES
523618
524# The GENERATE_TESTLIST tag can be used to enable (YES) or619# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
525# disable (NO) the test list. This list is created by putting \test620# list. This list is created by putting \test commands in the documentation.
526# commands in the documentation.621# The default value is: YES.
527622
528GENERATE_TESTLIST = YES623GENERATE_TESTLIST = YES
529624
530# The GENERATE_BUGLIST tag can be used to enable (YES) or625# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
531# disable (NO) the bug list. This list is created by putting \bug626# list. This list is created by putting \bug commands in the documentation.
532# commands in the documentation.627# The default value is: YES.
533628
534GENERATE_BUGLIST = YES629GENERATE_BUGLIST = YES
535630
536# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or631# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
537# disable (NO) the deprecated list. This list is created by putting632# the deprecated list. This list is created by putting \deprecated commands in
538# \deprecated commands in the documentation.633# the documentation.
634# The default value is: YES.
539635
540GENERATE_DEPRECATEDLIST= YES636GENERATE_DEPRECATEDLIST= YES
541637
542# The ENABLED_SECTIONS tag can be used to enable conditional638# The ENABLED_SECTIONS tag can be used to enable conditional documentation
543# documentation sections, marked by \if section-label ... \endif639# sections, marked by \if <section_label> ... \endif and \cond <section_label>
544# and \cond section-label ... \endcond blocks.640# ... \endcond blocks.
545641
546ENABLED_SECTIONS =642ENABLED_SECTIONS =
547643
548# The MAX_INITIALIZER_LINES tag determines the maximum number of lines644# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
549# the initial value of a variable or macro consists of for it to appear in645# initial value of a variable or macro / define can have for it to appear in the
550# the documentation. If the initializer consists of more lines than specified646# documentation. If the initializer consists of more lines than specified here
551# here it will be hidden. Use a value of 0 to hide initializers completely.647# it will be hidden. Use a value of 0 to hide initializers completely. The
552# The appearance of the initializer of individual variables and macros in the648# appearance of the value of individual variables and macros / defines can be
553# documentation can be controlled using \showinitializer or \hideinitializer649# controlled using \showinitializer or \hideinitializer command in the
554# command in the documentation regardless of this setting.650# documentation regardless of this setting.
651# Minimum value: 0, maximum value: 10000, default value: 30.
555652
556MAX_INITIALIZER_LINES = 30653MAX_INITIALIZER_LINES = 30
557654
558# Set the SHOW_USED_FILES tag to NO to disable the list of files generated655# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
559# at the bottom of the documentation of classes and structs. If set to YES the656# the bottom of the documentation of classes and structs. If set to YES, the
560# list will mention the files that were used to generate the documentation.657# list will mention the files that were used to generate the documentation.
658# The default value is: YES.
561659
562SHOW_USED_FILES = YES660SHOW_USED_FILES = YES
563661
564# Set the SHOW_FILES tag to NO to disable the generation of the Files page.662# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
565# This will remove the Files entry from the Quick Index and from the663# will remove the Files entry from the Quick Index and from the Folder Tree View
566# Folder Tree View (if specified). The default is YES.664# (if specified).
665# The default value is: YES.
567666
568SHOW_FILES = YES667SHOW_FILES = YES
569668
570# Set the SHOW_NAMESPACES tag to NO to disable the generation of the669# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
571# Namespaces page.670# page. This will remove the Namespaces entry from the Quick Index and from the
572# This will remove the Namespaces entry from the Quick Index671# Folder Tree View (if specified).
573# and from the Folder Tree View (if specified). The default is YES.672# The default value is: YES.
574673
575SHOW_NAMESPACES = YES674SHOW_NAMESPACES = YES
576675
577# The FILE_VERSION_FILTER tag can be used to specify a program or script that676# The FILE_VERSION_FILTER tag can be used to specify a program or script that
578# doxygen should invoke to get the current version for each file (typically from677# doxygen should invoke to get the current version for each file (typically from
579# the version control system). Doxygen will invoke the program by executing (via678# the version control system). Doxygen will invoke the program by executing (via
580# popen()) the command <command> <input-file>, where <command> is the value of679# popen()) the command command input-file, where command is the value of the
581# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file680# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
582# provided by doxygen. Whatever the program writes to standard output681# by doxygen. Whatever the program writes to standard output is used as the file
583# is used as the file version. See the manual for examples.682# version. For an example see the documentation.
584683
585FILE_VERSION_FILTER =684FILE_VERSION_FILTER =
586685
587# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed686# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
588# by doxygen. The layout file controls the global structure of the generated687# by doxygen. The layout file controls the global structure of the generated
589# output files in an output format independent way. To create the layout file688# output files in an output format independent way. To create the layout file
590# that represents doxygen's defaults, run doxygen with the -l option.689# that represents doxygen's defaults, run doxygen with the -l option. You can
591# You can optionally specify a file name after the option, if omitted690# optionally specify a file name after the option, if omitted DoxygenLayout.xml
592# DoxygenLayout.xml will be used as the name of the layout file.691# will be used as the name of the layout file.
692#
693# Note that if you run doxygen from a directory containing a file called
694# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
695# tag is left empty.
593696
594LAYOUT_FILE =697LAYOUT_FILE =
595698
596# The CITE_BIB_FILES tag can be used to specify one or more bib files699# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
597# containing the references data. This must be a list of .bib files. The700# the reference definitions. This must be a list of .bib files. The .bib
598# .bib extension is automatically appended if omitted. Using this command701# extension is automatically appended if omitted. This requires the bibtex tool
599# requires the bibtex tool to be installed. See also702# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
600# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style703# For LaTeX the style of the bibliography can be controlled using
601# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this704# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
602# feature you need bibtex and perl available in the search path. Do not use705# search path. See also \cite for info how to create references.
603# file names with spaces, bibtex cannot handle them.
604706
605CITE_BIB_FILES =707CITE_BIB_FILES =
606708
607#---------------------------------------------------------------------------709#---------------------------------------------------------------------------
608# configuration options related to warning and progress messages710# Configuration options related to warning and progress messages
609#---------------------------------------------------------------------------711#---------------------------------------------------------------------------
610712
611# The QUIET tag can be used to turn on/off the messages that are generated713# The QUIET tag can be used to turn on/off the messages that are generated to
612# by doxygen. Possible values are YES and NO. If left blank NO is used.714# standard output by doxygen. If QUIET is set to YES this implies that the
715# messages are off.
716# The default value is: NO.
613717
614QUIET = NO718QUIET = NO
615719
616# The WARNINGS tag can be used to turn on/off the warning messages that are720# The WARNINGS tag can be used to turn on/off the warning messages that are
617# generated by doxygen. Possible values are YES and NO. If left blank721# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
618# NO is used.722# this implies that the warnings are on.
723#
724# Tip: Turn warnings on while writing the documentation.
725# The default value is: YES.
619726
620WARNINGS = YES727WARNINGS = YES
621728
622# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings729# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
623# for undocumented members. If EXTRACT_ALL is set to YES then this flag will730# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
624# automatically be disabled.731# will automatically be disabled.
732# The default value is: YES.
625733
626WARN_IF_UNDOCUMENTED = YES734WARN_IF_UNDOCUMENTED = YES
627735
628# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for736# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
629# potential errors in the documentation, such as not documenting some737# potential errors in the documentation, such as not documenting some parameters
630# parameters in a documented function, or documenting parameters that738# in a documented function, or documenting parameters that don't exist or using
631# don't exist or using markup commands wrongly.739# markup commands wrongly.
740# The default value is: YES.
632741
633WARN_IF_DOC_ERROR = YES742WARN_IF_DOC_ERROR = YES
634743
635# The WARN_NO_PARAMDOC option can be enabled to get warnings for744# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
636# functions that are documented, but have no documentation for their parameters745# are documented, but have no documentation for their parameters or return
637# or return value. If set to NO (the default) doxygen will only warn about746# value. If set to NO, doxygen will only warn about wrong or incomplete
638# wrong or incomplete parameter documentation, but not about the absence of747# parameter documentation, but not about the absence of documentation.
639# documentation.748# The default value is: NO.
640749
641WARN_NO_PARAMDOC = NO750WARN_NO_PARAMDOC = NO
642751
643# The WARN_FORMAT tag determines the format of the warning messages that752# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
644# doxygen can produce. The string should contain the $file, $line, and $text753# a warning is encountered.
645# tags, which will be replaced by the file and line number from which the754# The default value is: NO.
646# warning originated and the warning text. Optionally the format may contain755
647# $version, which will be replaced by the version of the file (if it could756WARN_AS_ERROR = NO
648# be obtained via FILE_VERSION_FILTER)757
758# The WARN_FORMAT tag determines the format of the warning messages that doxygen
759# can produce. The string should contain the $file, $line, and $text tags, which
760# will be replaced by the file and line number from which the warning originated
761# and the warning text. Optionally the format may contain $version, which will
762# be replaced by the version of the file (if it could be obtained via
763# FILE_VERSION_FILTER)
764# The default value is: $file:$line: $text.
649765
650WARN_FORMAT = "$file:$line: $text"766WARN_FORMAT = "$file:$line: $text"
651767
652# The WARN_LOGFILE tag can be used to specify a file to which warning768# The WARN_LOGFILE tag can be used to specify a file to which warning and error
653# and error messages should be written. If left blank the output is written769# messages should be written. If left blank the output is written to standard
654# to stderr.770# error (stderr).
655771
656WARN_LOGFILE =772WARN_LOGFILE =
657773
658#---------------------------------------------------------------------------774#---------------------------------------------------------------------------
659# configuration options related to the input files775# Configuration options related to the input files
660#---------------------------------------------------------------------------776#---------------------------------------------------------------------------
661777
662# The INPUT tag can be used to specify the files and/or directories that contain778# The INPUT tag is used to specify the files and/or directories that contain
663# documented source files. You may enter file names like "myfile.cpp" or779# documented source files. You may enter file names like myfile.cpp or
664# directories like "/usr/src/myproject". Separate the files or directories780# directories like /usr/src/myproject. Separate the files or directories with
665# with spaces.781# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
782# Note: If this tag is empty the current directory is searched.
666783
667INPUT = @CMAKE_CURRENT_SOURCE_DIR@/README.md \784INPUT = @CMAKE_CURRENT_SOURCE_DIR@/README.md \
668 @CMAKE_CURRENT_SOURCE_DIR@/HACKING.md \785 @CMAKE_CURRENT_SOURCE_DIR@/HACKING.md \
669 @CMAKE_CURRENT_SOURCE_DIR@/doc \786 @CMAKE_CURRENT_SOURCE_DIR@/doc \
670 @CMAKE_CURRENT_SOURCE_DIR@/src \
671 @CMAKE_CURRENT_SOURCE_DIR@/examples \787 @CMAKE_CURRENT_SOURCE_DIR@/examples \
672 @CMAKE_CURRENT_SOURCE_DIR@/include \788 @CMAKE_CURRENT_SOURCE_DIR@/include \
673 @MIR_GENERATED_INCLUDE_DIRECTORIES@789 @MIR_GENERATED_INCLUDE_DIRECTORIES@
674790
675# This tag can be used to specify the character encoding of the source files791# This tag can be used to specify the character encoding of the source files
676# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is792# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
677# also the default input encoding. Doxygen uses libiconv (or the iconv built793# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
678# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for794# documentation (see: http://www.gnu.org/software/libiconv) for the list of
679# the list of possible encodings.795# possible encodings.
796# The default value is: UTF-8.
680797
681INPUT_ENCODING = UTF-8798INPUT_ENCODING = UTF-8
682799
683# If the value of the INPUT tag contains directories, you can use the800# If the value of the INPUT tag contains directories, you can use the
684# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp801# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
685# and *.h) to filter out the source-files in the directories. If left802# *.h) to filter out the source-files in the directories.
686# blank the following patterns are tested:803#
687# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh804# Note that for custom extensions or not directly supported extensions you also
688# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py805# need to set EXTENSION_MAPPING for the extension otherwise the files are not
689# *.f90 *.f *.for *.vhd *.vhdl806# read by doxygen.
807#
808# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
809# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
810# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
811# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f, *.for, *.tcl,
812# *.vhd, *.vhdl, *.ucf, *.qsf, *.as and *.js.
690813
691FILE_PATTERNS = *.c \814FILE_PATTERNS = *.c \
692 *.cc \815 *.cc \
@@ -723,15 +846,16 @@
723 *.vhd \846 *.vhd \
724 *.vhdl847 *.vhdl
725848
726# The RECURSIVE tag can be used to turn specify whether or not subdirectories849# The RECURSIVE tag can be used to specify whether or not subdirectories should
727# should be searched for input files as well. Possible values are YES and NO.850# be searched for input files as well.
728# If left blank NO is used.851# The default value is: NO.
729852
730RECURSIVE = YES853RECURSIVE = YES
731854
732# The EXCLUDE tag can be used to specify files and/or directories that should be855# The EXCLUDE tag can be used to specify files and/or directories that should be
733# excluded from the INPUT source files. This way you can easily exclude a856# excluded from the INPUT source files. This way you can easily exclude a
734# subdirectory from a directory tree whose root is specified with the INPUT tag.857# subdirectory from a directory tree whose root is specified with the INPUT tag.
858#
735# Note that relative paths are relative to the directory from which doxygen is859# Note that relative paths are relative to the directory from which doxygen is
736# run.860# run.
737861
@@ -740,234 +864,323 @@
740# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or864# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
741# directories that are symbolic links (a Unix file system feature) are excluded865# directories that are symbolic links (a Unix file system feature) are excluded
742# from the input.866# from the input.
867# The default value is: NO.
743868
744EXCLUDE_SYMLINKS = NO869EXCLUDE_SYMLINKS = NO
745870
746# If the value of the INPUT tag contains directories, you can use the871# If the value of the INPUT tag contains directories, you can use the
747# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude872# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
748# certain files from those directories. Note that the wildcards are matched873# certain files from those directories.
749# against the file with absolute path, so to exclude all test directories874#
750# for example use the pattern */test/*875# Note that the wildcards are matched against the file with absolute path, so to
876# exclude all test directories for example use the pattern */test/*
751877
752EXCLUDE_PATTERNS = */include/test/* */3rd_party/*878EXCLUDE_PATTERNS = */include/test/* \
879 */3rd_party/*
753880
754# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names881# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
755# (namespaces, classes, functions, etc.) that should be excluded from the882# (namespaces, classes, functions, etc.) that should be excluded from the
756# output. The symbol name can be a fully qualified name, a word, or if the883# output. The symbol name can be a fully qualified name, a word, or if the
757# wildcard * is used, a substring. Examples: ANamespace, AClass,884# wildcard * is used, a substring. Examples: ANamespace, AClass,
758# AClass::ANamespace, ANamespace::*Test885# AClass::ANamespace, ANamespace::*Test
886#
887# Note that the wildcards are matched against the file with absolute path, so to
888# exclude all test directories use the pattern */test/*
759889
760EXCLUDE_SYMBOLS = google \890EXCLUDE_SYMBOLS = google \
761 mfd \891 mfd \
762 mgg \892 mgg \
763 mp893 mp
764894
765# The EXAMPLE_PATH tag can be used to specify one or more files or895# The EXAMPLE_PATH tag can be used to specify one or more files or directories
766# directories that contain example code fragments that are included (see896# that contain example code fragments that are included (see the \include
767# the \include command).897# command).
768898
769EXAMPLE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/examples899EXAMPLE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/examples
770900
771# If the value of the EXAMPLE_PATH tag contains directories, you can use the901# If the value of the EXAMPLE_PATH tag contains directories, you can use the
772# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp902# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
773# and *.h) to filter out the source-files in the directories. If left903# *.h) to filter out the source-files in the directories. If left blank all
774# blank all files are included.904# files are included.
775905
776EXAMPLE_PATTERNS = *906EXAMPLE_PATTERNS = *
777907
778# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be908# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
779# searched for input files to be used with the \include or \dontinclude909# searched for input files to be used with the \include or \dontinclude commands
780# commands irrespective of the value of the RECURSIVE tag.910# irrespective of the value of the RECURSIVE tag.
781# Possible values are YES and NO. If left blank NO is used.911# The default value is: NO.
782912
783EXAMPLE_RECURSIVE = NO913EXAMPLE_RECURSIVE = NO
784914
785# The IMAGE_PATH tag can be used to specify one or more files or915# The IMAGE_PATH tag can be used to specify one or more files or directories
786# directories that contain image that are included in the documentation (see916# that contain images that are to be included in the documentation (see the
787# the \image command).917# \image command).
788918
789IMAGE_PATH =919IMAGE_PATH =
790920
791# The INPUT_FILTER tag can be used to specify a program that doxygen should921# The INPUT_FILTER tag can be used to specify a program that doxygen should
792# invoke to filter for each input file. Doxygen will invoke the filter program922# invoke to filter for each input file. Doxygen will invoke the filter program
793# by executing (via popen()) the command <filter> <input-file>, where <filter>923# by executing (via popen()) the command:
794# is the value of the INPUT_FILTER tag, and <input-file> is the name of an924#
795# input file. Doxygen will then use the output that the filter program writes925# <filter> <input-file>
796# to standard output.926#
797# If FILTER_PATTERNS is specified, this tag will be ignored.927# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
928# name of an input file. Doxygen will then use the output that the filter
929# program writes to standard output. If FILTER_PATTERNS is specified, this tag
930# will be ignored.
931#
798# Note that the filter must not add or remove lines; it is applied before the932# Note that the filter must not add or remove lines; it is applied before the
799# code is scanned, but not when the output code is generated. If lines are added933# code is scanned, but not when the output code is generated. If lines are added
800# or removed, the anchors will not be placed correctly.934# or removed, the anchors will not be placed correctly.
935#
936# Note that for custom extensions or not directly supported extensions you also
937# need to set EXTENSION_MAPPING for the extension otherwise the files are not
938# properly processed by doxygen.
801939
802INPUT_FILTER =940INPUT_FILTER =
803941
804# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern942# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
805# basis.943# basis. Doxygen will compare the file name with each pattern and apply the
806# Doxygen will compare the file name with each pattern and apply the944# filter if there is a match. The filters are a list of the form: pattern=filter
807# filter if there is a match.945# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
808# The filters are a list of the form:946# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
809# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further947# patterns match the file name, INPUT_FILTER is applied.
810# info on how filters are used. If FILTER_PATTERNS is empty or if948#
811# non of the patterns match the file name, INPUT_FILTER is applied.949# Note that for custom extensions or not directly supported extensions you also
950# need to set EXTENSION_MAPPING for the extension otherwise the files are not
951# properly processed by doxygen.
812952
813FILTER_PATTERNS =953FILTER_PATTERNS =
814954
815# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using955# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
816# INPUT_FILTER) will be used to filter the input files when producing source956# INPUT_FILTER) will also be used to filter the input files that are used for
817# files to browse (i.e. when SOURCE_BROWSER is set to YES).957# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
958# The default value is: NO.
818959
819FILTER_SOURCE_FILES = NO960FILTER_SOURCE_FILES = NO
820961
821# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file962# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
822# pattern. A pattern will override the setting for FILTER_PATTERN (if any)963# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
823# and it is also possible to disable source filtering for a specific pattern964# it is also possible to disable source filtering for a specific pattern using
824# using *.ext= (so without naming a filter). This option only has effect when965# *.ext= (so without naming a filter).
825# FILTER_SOURCE_FILES is enabled.966# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
826967
827FILTER_SOURCE_PATTERNS =968FILTER_SOURCE_PATTERNS =
828969
829# If the USE_MD_FILE_AS_MAINPAGE tag refers to the name of a markdown file that970# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
830# is part of the input, its contents will be placed on the main page971# is part of the input, its contents will be placed on the main page
831# (index.html). This can be useful if you have a project on for instance GitHub972# (index.html). This can be useful if you have a project on for instance GitHub
832# and want reuse the introduction page also for the doxygen output.973# and want to reuse the introduction page also for the doxygen output.
833974
834USE_MDFILE_AS_MAINPAGE =975USE_MDFILE_AS_MAINPAGE =
835976
836#---------------------------------------------------------------------------977#---------------------------------------------------------------------------
837# configuration options related to source browsing978# Configuration options related to source browsing
838#---------------------------------------------------------------------------979#---------------------------------------------------------------------------
839980
840# If the SOURCE_BROWSER tag is set to YES then a list of source files will981# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
841# be generated. Documented entities will be cross-referenced with these sources.982# generated. Documented entities will be cross-referenced with these sources.
842# Note: To get rid of all source code in the generated output, make sure also983#
843# VERBATIM_HEADERS is set to NO.984# Note: To get rid of all source code in the generated output, make sure that
985# also VERBATIM_HEADERS is set to NO.
986# The default value is: NO.
844987
845SOURCE_BROWSER = NO988SOURCE_BROWSER = NO
846989
847# Setting the INLINE_SOURCES tag to YES will include the body990# Setting the INLINE_SOURCES tag to YES will include the body of functions,
848# of functions and classes directly in the documentation.991# classes and enums directly into the documentation.
992# The default value is: NO.
849993
850INLINE_SOURCES = NO994INLINE_SOURCES = NO
851995
852# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct996# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
853# doxygen to hide any special comment blocks from generated source code997# special comment blocks from generated source code fragments. Normal C, C++ and
854# fragments. Normal C, C++ and Fortran comments will always remain visible.998# Fortran comments will always remain visible.
999# The default value is: YES.
8551000
856STRIP_CODE_COMMENTS = YES1001STRIP_CODE_COMMENTS = YES
8571002
858# If the REFERENCED_BY_RELATION tag is set to YES1003# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
859# then for each documented function all documented1004# function all documented functions referencing it will be listed.
860# functions referencing it will be listed.1005# The default value is: NO.
8611006
862REFERENCED_BY_RELATION = NO1007REFERENCED_BY_RELATION = NO
8631008
864# If the REFERENCES_RELATION tag is set to YES1009# If the REFERENCES_RELATION tag is set to YES then for each documented function
865# then for each documented function all documented entities1010# all documented entities called/used by that function will be listed.
866# called/used by that function will be listed.1011# The default value is: NO.
8671012
868REFERENCES_RELATION = NO1013REFERENCES_RELATION = NO
8691014
870# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)1015# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
871# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from1016# to YES then the hyperlinks from functions in REFERENCES_RELATION and
872# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will1017# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
873# link to the source code.1018# link to the documentation.
874# Otherwise they will link to the documentation.1019# The default value is: YES.
8751020
876REFERENCES_LINK_SOURCE = YES1021REFERENCES_LINK_SOURCE = YES
8771022
878# If the USE_HTAGS tag is set to YES then the references to source code1023# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
879# will point to the HTML generated by the htags(1) tool instead of doxygen1024# source code will show a tooltip with additional information such as prototype,
880# built-in source browser. The htags tool is part of GNU's global source1025# brief description and links to the definition and documentation. Since this
881# tagging system (see http://www.gnu.org/software/global/global.html). You1026# will make the HTML file larger and loading of large files a bit slower, you
882# will need version 4.8.6 or higher.1027# can opt to disable this feature.
1028# The default value is: YES.
1029# This tag requires that the tag SOURCE_BROWSER is set to YES.
1030
1031SOURCE_TOOLTIPS = YES
1032
1033# If the USE_HTAGS tag is set to YES then the references to source code will
1034# point to the HTML generated by the htags(1) tool instead of doxygen built-in
1035# source browser. The htags tool is part of GNU's global source tagging system
1036# (see http://www.gnu.org/software/global/global.html). You will need version
1037# 4.8.6 or higher.
1038#
1039# To use it do the following:
1040# - Install the latest version of global
1041# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
1042# - Make sure the INPUT points to the root of the source tree
1043# - Run doxygen as normal
1044#
1045# Doxygen will invoke htags (and that will in turn invoke gtags), so these
1046# tools must be available from the command line (i.e. in the search path).
1047#
1048# The result: instead of the source browser generated by doxygen, the links to
1049# source code will now point to the output of htags.
1050# The default value is: NO.
1051# This tag requires that the tag SOURCE_BROWSER is set to YES.
8831052
884USE_HTAGS = NO1053USE_HTAGS = NO
8851054
886# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen1055# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
887# will generate a verbatim copy of the header file for each class for1056# verbatim copy of the header file for each class for which an include is
888# which an include is specified. Set to NO to disable this.1057# specified. Set to NO to disable this.
1058# See also: Section \class.
1059# The default value is: YES.
8891060
890VERBATIM_HEADERS = YES1061VERBATIM_HEADERS = YES
8911062
892#---------------------------------------------------------------------------1063# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the
893# configuration options related to the alphabetical class index1064# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
894#---------------------------------------------------------------------------1065# cost of reduced performance. This can be particularly helpful with template
8951066# rich C++ code for which doxygen's built-in parser lacks the necessary type
896# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index1067# information.
897# of all compounds will be generated. Enable this if the project1068# Note: The availability of this option depends on whether or not doxygen was
898# contains a lot of classes, structs, unions or interfaces.1069# generated with the -Duse-libclang=ON option for CMake.
1070# The default value is: NO.
1071
1072CLANG_ASSISTED_PARSING = NO
1073
1074# If clang assisted parsing is enabled you can provide the compiler with command
1075# line options that you would normally use when invoking the compiler. Note that
1076# the include paths will already be set by doxygen for the files and directories
1077# specified with INPUT and INCLUDE_PATH.
1078# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
1079
1080CLANG_OPTIONS =
1081
1082#---------------------------------------------------------------------------
1083# Configuration options related to the alphabetical class index
1084#---------------------------------------------------------------------------
1085
1086# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
1087# compounds will be generated. Enable this if the project contains a lot of
1088# classes, structs, unions or interfaces.
1089# The default value is: YES.
8991090
900ALPHABETICAL_INDEX = YES1091ALPHABETICAL_INDEX = YES
9011092
902# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then1093# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
903# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns1094# which the alphabetical index list will be split.
904# in which this list will be split (can be a number in the range [1..20])1095# Minimum value: 1, maximum value: 20, default value: 5.
1096# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
9051097
906COLS_IN_ALPHA_INDEX = 51098COLS_IN_ALPHA_INDEX = 5
9071099
908# In case all classes in a project start with a common prefix, all1100# In case all classes in a project start with a common prefix, all classes will
909# classes will be put under the same header in the alphabetical index.1101# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
910# The IGNORE_PREFIX tag can be used to specify one or more prefixes that1102# can be used to specify a prefix (or a list of prefixes) that should be ignored
911# should be ignored while generating the index headers.1103# while generating the index headers.
1104# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
9121105
913IGNORE_PREFIX =1106IGNORE_PREFIX =
9141107
915#---------------------------------------------------------------------------1108#---------------------------------------------------------------------------
916# configuration options related to the HTML output1109# Configuration options related to the HTML output
917#---------------------------------------------------------------------------1110#---------------------------------------------------------------------------
9181111
919# If the GENERATE_HTML tag is set to YES (the default) Doxygen will1112# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
920# generate HTML output.1113# The default value is: YES.
9211114
922GENERATE_HTML = YES1115GENERATE_HTML = YES
9231116
924# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.1117# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
925# If a relative path is entered the value of OUTPUT_DIRECTORY will be1118# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
926# put in front of it. If left blank `html' will be used as the default path.1119# it.
1120# The default directory is: html.
1121# This tag requires that the tag GENERATE_HTML is set to YES.
9271122
928HTML_OUTPUT = html1123HTML_OUTPUT = html
9291124
930# The HTML_FILE_EXTENSION tag can be used to specify the file extension for1125# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
931# each generated HTML page (for example: .htm,.php,.asp). If it is left blank1126# generated HTML page (for example: .htm, .php, .asp).
932# doxygen will generate files with .html extension.1127# The default value is: .html.
1128# This tag requires that the tag GENERATE_HTML is set to YES.
9331129
934HTML_FILE_EXTENSION = .html1130HTML_FILE_EXTENSION = .html
9351131
936# The HTML_HEADER tag can be used to specify a personal HTML header for1132# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
937# each generated HTML page. If it is left blank doxygen will generate a1133# each generated HTML page. If the tag is left blank doxygen will generate a
938# standard header. Note that when using a custom header you are responsible1134# standard header.
939# for the proper inclusion of any scripts and style sheets that doxygen1135#
940# needs, which is dependent on the configuration options used.1136# To get valid HTML the header file that includes any scripts and style sheets
941# It is advised to generate a default header using "doxygen -w html1137# that doxygen needs, which is dependent on the configuration options used (e.g.
942# header.html footer.html stylesheet.css YourConfigFile" and then modify1138# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
943# that header. Note that the header is subject to change so you typically1139# default header using
944# have to redo this when upgrading to a newer version of doxygen or when1140# doxygen -w html new_header.html new_footer.html new_stylesheet.css
945# changing the value of configuration settings such as GENERATE_TREEVIEW!1141# YourConfigFile
1142# and then modify the file new_header.html. See also section "Doxygen usage"
1143# for information on how to generate the default header that doxygen normally
1144# uses.
1145# Note: The header is subject to change so you typically have to regenerate the
1146# default header when upgrading to a newer version of doxygen. For a description
1147# of the possible markers and block names see the documentation.
1148# This tag requires that the tag GENERATE_HTML is set to YES.
9461149
947HTML_HEADER =1150HTML_HEADER =
9481151
949# The HTML_FOOTER tag can be used to specify a personal HTML footer for1152# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
950# each generated HTML page. If it is left blank doxygen will generate a1153# generated HTML page. If the tag is left blank doxygen will generate a standard
951# standard footer.1154# footer. See HTML_HEADER for more information on how to generate a default
1155# footer and what special commands can be used inside the footer. See also
1156# section "Doxygen usage" for information on how to generate the default footer
1157# that doxygen normally uses.
1158# This tag requires that the tag GENERATE_HTML is set to YES.
9521159
953HTML_FOOTER = @CMAKE_BINARY_DIR@/doc/footer.html1160HTML_FOOTER = @CMAKE_BINARY_DIR@/doc/footer.html
9541161
955# The HTML_STYLESHEET tag can be used to specify a user-defined cascading1162# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
956# style sheet that is used by each HTML page. It can be used to1163# sheet that is used by each HTML page. It can be used to fine-tune the look of
957# fine-tune the look of the HTML output. If left blank doxygen will1164# the HTML output. If left blank doxygen will generate a default style sheet.
958# generate a default style sheet. Note that it is recommended to use1165# See also section "Doxygen usage" for information on how to generate the style
959# HTML_EXTRA_STYLESHEET instead of this one, as it is more robust and this1166# sheet that doxygen normally uses.
960# tag will in the future become obsolete.1167# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
1168# it is more robust and this tag (HTML_STYLESHEET) will in the future become
1169# obsolete.
1170# This tag requires that the tag GENERATE_HTML is set to YES.
9611171
962HTML_STYLESHEET =1172HTML_STYLESHEET =
9631173
964# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional1174# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
965# user-defined cascading style sheet that is included after the standard1175# cascading style sheets that are included after the standard style sheets
966# style sheets created by doxygen. Using this option one can overrule1176# created by doxygen. Using this option one can overrule certain style aspects.
967# certain style aspects. This is preferred over using HTML_STYLESHEET1177# This is preferred over using HTML_STYLESHEET since it does not replace the
968# since it does not replace the standard style sheet and is therefor more1178# standard style sheet and is therefore more robust against future updates.
969# robust against future updates. Doxygen will copy the style sheet file to1179# Doxygen will copy the style sheet files to the output directory.
970# the output directory.1180# Note: The order of the extra style sheet files is of importance (e.g. the last
1181# style sheet in the list overrules the setting of the previous ones in the
1182# list). For an example see the documentation.
1183# This tag requires that the tag GENERATE_HTML is set to YES.
9711184
972HTML_EXTRA_STYLESHEET = @CMAKE_BINARY_DIR@/doc/extra.css1185HTML_EXTRA_STYLESHEET = @CMAKE_BINARY_DIR@/doc/extra.css
9731186
@@ -975,632 +1188,847 @@
975# other source files which should be copied to the HTML output directory. Note1188# other source files which should be copied to the HTML output directory. Note
976# that these files will be copied to the base HTML output directory. Use the1189# that these files will be copied to the base HTML output directory. Use the
977# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these1190# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
978# files. In the HTML_STYLESHEET file, use the file name only. Also note that1191# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
979# the files will be copied as-is; there are no commands or markers available.1192# files will be copied as-is; there are no commands or markers available.
1193# This tag requires that the tag GENERATE_HTML is set to YES.
9801194
981HTML_EXTRA_FILES =1195HTML_EXTRA_FILES =
9821196
983# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.1197# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
984# Doxygen will adjust the colors in the style sheet and background images1198# will adjust the colors in the style sheet and background images according to
985# according to this color. Hue is specified as an angle on a colorwheel,1199# this color. Hue is specified as an angle on a colorwheel, see
986# see http://en.wikipedia.org/wiki/Hue for more information.1200# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
987# For instance the value 0 represents red, 60 is yellow, 120 is green,1201# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
988# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.1202# purple, and 360 is red again.
989# The allowed range is 0 to 359.1203# Minimum value: 0, maximum value: 359, default value: 220.
1204# This tag requires that the tag GENERATE_HTML is set to YES.
9901205
991HTML_COLORSTYLE_HUE = 161206HTML_COLORSTYLE_HUE = 16
9921207
993# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of1208# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
994# the colors in the HTML output. For a value of 0 the output will use1209# in the HTML output. For a value of 0 the output will use grayscales only. A
995# grayscales only. A value of 255 will produce the most vivid colors.1210# value of 255 will produce the most vivid colors.
1211# Minimum value: 0, maximum value: 255, default value: 100.
1212# This tag requires that the tag GENERATE_HTML is set to YES.
9961213
997HTML_COLORSTYLE_SAT = 2401214HTML_COLORSTYLE_SAT = 240
9981215
999# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to1216# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
1000# the luminance component of the colors in the HTML output. Values below1217# luminance component of the colors in the HTML output. Values below 100
1001# 100 gradually make the output lighter, whereas values above 100 make1218# gradually make the output lighter, whereas values above 100 make the output
1002# the output darker. The value divided by 100 is the actual gamma applied,1219# darker. The value divided by 100 is the actual gamma applied, so 80 represents
1003# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,1220# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
1004# and 100 does not change the gamma.1221# change the gamma.
1222# Minimum value: 40, maximum value: 240, default value: 80.
1223# This tag requires that the tag GENERATE_HTML is set to YES.
10051224
1006HTML_COLORSTYLE_GAMMA = 801225HTML_COLORSTYLE_GAMMA = 80
10071226
1008# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML1227# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
1009# page will contain the date and time when the page was generated. Setting1228# page will contain the date and time when the page was generated. Setting this
1010# this to NO can help when comparing the output of multiple runs.1229# to YES can help to show when doxygen was last run and thus if the
1230# documentation is up to date.
1231# The default value is: NO.
1232# This tag requires that the tag GENERATE_HTML is set to YES.
10111233
1012HTML_TIMESTAMP = YES1234HTML_TIMESTAMP = YES
10131235
1014# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML1236# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
1015# documentation will contain sections that can be hidden and shown after the1237# documentation will contain sections that can be hidden and shown after the
1016# page has loaded.1238# page has loaded.
1239# The default value is: NO.
1240# This tag requires that the tag GENERATE_HTML is set to YES.
10171241
1018HTML_DYNAMIC_SECTIONS = NO1242HTML_DYNAMIC_SECTIONS = NO
10191243
1020# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of1244# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
1021# entries shown in the various tree structured indices initially; the user1245# shown in the various tree structured indices initially; the user can expand
1022# can expand and collapse entries dynamically later on. Doxygen will expand1246# and collapse entries dynamically later on. Doxygen will expand the tree to
1023# the tree to such a level that at most the specified number of entries are1247# such a level that at most the specified number of entries are visible (unless
1024# visible (unless a fully collapsed tree already exceeds this amount).1248# a fully collapsed tree already exceeds this amount). So setting the number of
1025# So setting the number of entries 1 will produce a full collapsed tree by1249# entries 1 will produce a full collapsed tree by default. 0 is a special value
1026# default. 0 is a special value representing an infinite number of entries1250# representing an infinite number of entries and will result in a full expanded
1027# and will result in a full expanded tree by default.1251# tree by default.
1252# Minimum value: 0, maximum value: 9999, default value: 100.
1253# This tag requires that the tag GENERATE_HTML is set to YES.
10281254
1029HTML_INDEX_NUM_ENTRIES = 1001255HTML_INDEX_NUM_ENTRIES = 100
10301256
1031# If the GENERATE_DOCSET tag is set to YES, additional index files1257# If the GENERATE_DOCSET tag is set to YES, additional index files will be
1032# will be generated that can be used as input for Apple's Xcode 31258# generated that can be used as input for Apple's Xcode 3 integrated development
1033# integrated development environment, introduced with OSX 10.5 (Leopard).1259# environment (see: http://developer.apple.com/tools/xcode/), introduced with
1034# To create a documentation set, doxygen will generate a Makefile in the1260# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
1035# HTML output directory. Running make will produce the docset in that1261# Makefile in the HTML output directory. Running make will produce the docset in
1036# directory and running "make install" will install the docset in1262# that directory and running make install will install the docset in
1037# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find1263# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
1038# it at startup.1264# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
1039# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
1040# for more information.1265# for more information.
1266# The default value is: NO.
1267# This tag requires that the tag GENERATE_HTML is set to YES.
10411268
1042GENERATE_DOCSET = NO1269GENERATE_DOCSET = NO
10431270
1044# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the1271# This tag determines the name of the docset feed. A documentation feed provides
1045# feed. A documentation feed provides an umbrella under which multiple1272# an umbrella under which multiple documentation sets from a single provider
1046# documentation sets from a single provider (such as a company or product suite)1273# (such as a company or product suite) can be grouped.
1047# can be grouped.1274# The default value is: Doxygen generated docs.
1275# This tag requires that the tag GENERATE_DOCSET is set to YES.
10481276
1049DOCSET_FEEDNAME = "Doxygen generated docs"1277DOCSET_FEEDNAME = "Doxygen generated docs"
10501278
1051# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that1279# This tag specifies a string that should uniquely identify the documentation
1052# should uniquely identify the documentation set bundle. This should be a1280# set bundle. This should be a reverse domain-name style string, e.g.
1053# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen1281# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
1054# will append .docset to the name.1282# The default value is: org.doxygen.Project.
1283# This tag requires that the tag GENERATE_DOCSET is set to YES.
10551284
1056DOCSET_BUNDLE_ID = org.doxygen.Project1285DOCSET_BUNDLE_ID = org.doxygen.Project
10571286
1058# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely1287# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
1059# identify the documentation publisher. This should be a reverse domain-name1288# the documentation publisher. This should be a reverse domain-name style
1060# style string, e.g. com.mycompany.MyDocSet.documentation.1289# string, e.g. com.mycompany.MyDocSet.documentation.
1290# The default value is: org.doxygen.Publisher.
1291# This tag requires that the tag GENERATE_DOCSET is set to YES.
10611292
1062DOCSET_PUBLISHER_ID = org.doxygen.Publisher1293DOCSET_PUBLISHER_ID = org.doxygen.Publisher
10631294
1064# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.1295# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
1296# The default value is: Publisher.
1297# This tag requires that the tag GENERATE_DOCSET is set to YES.
10651298
1066DOCSET_PUBLISHER_NAME = Publisher1299DOCSET_PUBLISHER_NAME = Publisher
10671300
1068# If the GENERATE_HTMLHELP tag is set to YES, additional index files1301# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
1069# will be generated that can be used as input for tools like the1302# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
1070# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)1303# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
1071# of the generated HTML documentation.1304# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
1305# Windows.
1306#
1307# The HTML Help Workshop contains a compiler that can convert all HTML output
1308# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
1309# files are now used as the Windows 98 help format, and will replace the old
1310# Windows help format (.hlp) on all Windows platforms in the future. Compressed
1311# HTML files also contain an index, a table of contents, and you can search for
1312# words in the documentation. The HTML workshop also contains a viewer for
1313# compressed HTML files.
1314# The default value is: NO.
1315# This tag requires that the tag GENERATE_HTML is set to YES.
10721316
1073GENERATE_HTMLHELP = NO1317GENERATE_HTMLHELP = NO
10741318
1075# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can1319# The CHM_FILE tag can be used to specify the file name of the resulting .chm
1076# be used to specify the file name of the resulting .chm file. You1320# file. You can add a path in front of the file if the result should not be
1077# can add a path in front of the file if the result should not be
1078# written to the html output directory.1321# written to the html output directory.
1322# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
10791323
1080CHM_FILE =1324CHM_FILE =
10811325
1082# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can1326# The HHC_LOCATION tag can be used to specify the location (absolute path
1083# be used to specify the location (absolute path including file name) of1327# including file name) of the HTML help compiler (hhc.exe). If non-empty,
1084# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run1328# doxygen will try to run the HTML help compiler on the generated index.hhp.
1085# the HTML help compiler on the generated index.hhp.1329# The file has to be specified with full path.
1330# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
10861331
1087HHC_LOCATION =1332HHC_LOCATION =
10881333
1089# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag1334# The GENERATE_CHI flag controls if a separate .chi index file is generated
1090# controls if a separate .chi index file is generated (YES) or that1335# (YES) or that it should be included in the master .chm file (NO).
1091# it should be included in the master .chm file (NO).1336# The default value is: NO.
1337# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
10921338
1093GENERATE_CHI = NO1339GENERATE_CHI = NO
10941340
1095# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING1341# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
1096# is used to encode HtmlHelp index (hhk), content (hhc) and project file1342# and project file content.
1097# content.1343# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
10981344
1099CHM_INDEX_ENCODING =1345CHM_INDEX_ENCODING =
11001346
1101# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag1347# The BINARY_TOC flag controls whether a binary table of contents is generated
1102# controls whether a binary table of contents is generated (YES) or a1348# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
1103# normal table of contents (NO) in the .chm file.1349# enables the Previous and Next buttons.
1350# The default value is: NO.
1351# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
11041352
1105BINARY_TOC = NO1353BINARY_TOC = NO
11061354
1107# The TOC_EXPAND flag can be set to YES to add extra items for group members1355# The TOC_EXPAND flag can be set to YES to add extra items for group members to
1108# to the contents of the HTML help documentation and to the tree view.1356# the table of contents of the HTML help documentation and to the tree view.
1357# The default value is: NO.
1358# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
11091359
1110TOC_EXPAND = NO1360TOC_EXPAND = NO
11111361
1112# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and1362# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
1113# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated1363# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
1114# that can be used as input for Qt's qhelpgenerator to generate a1364# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
1115# Qt Compressed Help (.qch) of the generated HTML documentation.1365# (.qch) of the generated HTML documentation.
1366# The default value is: NO.
1367# This tag requires that the tag GENERATE_HTML is set to YES.
11161368
1117GENERATE_QHP = NO1369GENERATE_QHP = NO
11181370
1119# If the QHG_LOCATION tag is specified, the QCH_FILE tag can1371# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
1120# be used to specify the file name of the resulting .qch file.1372# the file name of the resulting .qch file. The path specified is relative to
1121# The path specified is relative to the HTML output folder.1373# the HTML output folder.
1374# This tag requires that the tag GENERATE_QHP is set to YES.
11221375
1123QCH_FILE =1376QCH_FILE =
11241377
1125# The QHP_NAMESPACE tag specifies the namespace to use when generating1378# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
1126# Qt Help Project output. For more information please see1379# Project output. For more information please see Qt Help Project / Namespace
1127# http://doc.trolltech.com/qthelpproject.html#namespace1380# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
1381# The default value is: org.doxygen.Project.
1382# This tag requires that the tag GENERATE_QHP is set to YES.
11281383
1129QHP_NAMESPACE = org.doxygen.Project1384QHP_NAMESPACE = org.doxygen.Project
11301385
1131# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating1386# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
1132# Qt Help Project output. For more information please see1387# Help Project output. For more information please see Qt Help Project / Virtual
1133# http://doc.trolltech.com/qthelpproject.html#virtual-folders1388# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
1389# folders).
1390# The default value is: doc.
1391# This tag requires that the tag GENERATE_QHP is set to YES.
11341392
1135QHP_VIRTUAL_FOLDER = doc1393QHP_VIRTUAL_FOLDER = doc
11361394
1137# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to1395# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
1138# add. For more information please see1396# filter to add. For more information please see Qt Help Project / Custom
1139# http://doc.trolltech.com/qthelpproject.html#custom-filters1397# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
1398# filters).
1399# This tag requires that the tag GENERATE_QHP is set to YES.
11401400
1141QHP_CUST_FILTER_NAME =1401QHP_CUST_FILTER_NAME =
11421402
1143# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the1403# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
1144# custom filter to add. For more information please see1404# custom filter to add. For more information please see Qt Help Project / Custom
1145# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">1405# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
1146# Qt Help Project / Custom Filters</a>.1406# filters).
1407# This tag requires that the tag GENERATE_QHP is set to YES.
11471408
1148QHP_CUST_FILTER_ATTRS =1409QHP_CUST_FILTER_ATTRS =
11491410
1150# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this1411# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
1151# project's1412# project's filter section matches. Qt Help Project / Filter Attributes (see:
1152# filter section matches.1413# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
1153# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">1414# This tag requires that the tag GENERATE_QHP is set to YES.
1154# Qt Help Project / Filter Attributes</a>.
11551415
1156QHP_SECT_FILTER_ATTRS =1416QHP_SECT_FILTER_ATTRS =
11571417
1158# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can1418# The QHG_LOCATION tag can be used to specify the location of Qt's
1159# be used to specify the location of Qt's qhelpgenerator.1419# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
1160# If non-empty doxygen will try to run qhelpgenerator on the generated1420# generated .qhp file.
1161# .qhp file.1421# This tag requires that the tag GENERATE_QHP is set to YES.
11621422
1163QHG_LOCATION =1423QHG_LOCATION =
11641424
1165# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files1425# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
1166# will be generated, which together with the HTML files, form an Eclipse help1426# generated, together with the HTML files, they form an Eclipse help plugin. To
1167# plugin. To install this plugin and make it available under the help contents1427# install this plugin and make it available under the help contents menu in
1168# menu in Eclipse, the contents of the directory containing the HTML and XML1428# Eclipse, the contents of the directory containing the HTML and XML files needs
1169# files needs to be copied into the plugins directory of eclipse. The name of1429# to be copied into the plugins directory of eclipse. The name of the directory
1170# the directory within the plugins directory should be the same as1430# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
1171# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before1431# After copying Eclipse needs to be restarted before the help appears.
1172# the help appears.1432# The default value is: NO.
1433# This tag requires that the tag GENERATE_HTML is set to YES.
11731434
1174GENERATE_ECLIPSEHELP = NO1435GENERATE_ECLIPSEHELP = NO
11751436
1176# A unique identifier for the eclipse help plugin. When installing the plugin1437# A unique identifier for the Eclipse help plugin. When installing the plugin
1177# the directory name containing the HTML and XML files should also have1438# the directory name containing the HTML and XML files should also have this
1178# this name.1439# name. Each documentation set should have its own identifier.
1440# The default value is: org.doxygen.Project.
1441# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
11791442
1180ECLIPSE_DOC_ID = org.doxygen.Project1443ECLIPSE_DOC_ID = org.doxygen.Project
11811444
1182# The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs)1445# If you want full control over the layout of the generated HTML pages it might
1183# at top of each HTML page. The value NO (the default) enables the index and1446# be necessary to disable the index and replace it with your own. The
1184# the value YES disables it. Since the tabs have the same information as the1447# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
1185# navigation tree you can set this option to NO if you already set1448# of each HTML page. A value of NO enables the index and the value YES disables
1186# GENERATE_TREEVIEW to YES.1449# it. Since the tabs in the index contain the same information as the navigation
1450# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
1451# The default value is: NO.
1452# This tag requires that the tag GENERATE_HTML is set to YES.
11871453
1188DISABLE_INDEX = NO1454DISABLE_INDEX = NO
11891455
1190# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index1456# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
1191# structure should be generated to display hierarchical information.1457# structure should be generated to display hierarchical information. If the tag
1192# If the tag value is set to YES, a side panel will be generated1458# value is set to YES, a side panel will be generated containing a tree-like
1193# containing a tree-like index structure (just like the one that1459# index structure (just like the one that is generated for HTML Help). For this
1194# is generated for HTML Help). For this to work a browser that supports1460# to work a browser that supports JavaScript, DHTML, CSS and frames is required
1195# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).1461# (i.e. any modern browser). Windows users are probably better off using the
1196# Windows users are probably better off using the HTML help feature.1462# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
1197# Since the tree basically has the same information as the tab index you1463# further fine-tune the look of the index. As an example, the default style
1198# could consider to set DISABLE_INDEX to NO when enabling this option.1464# sheet generated by doxygen has an example that shows how to put an image at
1465# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
1466# the same information as the tab index, you could consider setting
1467# DISABLE_INDEX to YES when enabling this option.
1468# The default value is: NO.
1469# This tag requires that the tag GENERATE_HTML is set to YES.
11991470
1200GENERATE_TREEVIEW = NO1471GENERATE_TREEVIEW = NO
12011472
1202# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values1473# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
1203# (range [0,1..20]) that doxygen will group on one line in the generated HTML1474# doxygen will group on one line in the generated HTML documentation.
1204# documentation. Note that a value of 0 will completely suppress the enum1475#
1205# values from appearing in the overview section.1476# Note that a value of 0 will completely suppress the enum values from appearing
1477# in the overview section.
1478# Minimum value: 0, maximum value: 20, default value: 4.
1479# This tag requires that the tag GENERATE_HTML is set to YES.
12061480
1207ENUM_VALUES_PER_LINE = 41481ENUM_VALUES_PER_LINE = 4
12081482
1209# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be1483# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
1210# used to set the initial width (in pixels) of the frame in which the tree1484# to set the initial width (in pixels) of the frame in which the tree is shown.
1211# is shown.1485# Minimum value: 0, maximum value: 1500, default value: 250.
1486# This tag requires that the tag GENERATE_HTML is set to YES.
12121487
1213TREEVIEW_WIDTH = 2501488TREEVIEW_WIDTH = 250
12141489
1215# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open1490# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
1216# links to external symbols imported via tag files in a separate window.1491# external symbols imported via tag files in a separate window.
1492# The default value is: NO.
1493# This tag requires that the tag GENERATE_HTML is set to YES.
12171494
1218EXT_LINKS_IN_WINDOW = NO1495EXT_LINKS_IN_WINDOW = NO
12191496
1220# Use this tag to change the font size of Latex formulas included1497# Use this tag to change the font size of LaTeX formulas included as images in
1221# as images in the HTML documentation. The default is 10. Note that1498# the HTML documentation. When you change the font size after a successful
1222# when you change the font size after a successful doxygen run you need1499# doxygen run you need to manually remove any form_*.png images from the HTML
1223# to manually remove any form_*.png images from the HTML output directory1500# output directory to force them to be regenerated.
1224# to force them to be regenerated.1501# Minimum value: 8, maximum value: 50, default value: 10.
1502# This tag requires that the tag GENERATE_HTML is set to YES.
12251503
1226FORMULA_FONTSIZE = 101504FORMULA_FONTSIZE = 10
12271505
1228# Use the FORMULA_TRANPARENT tag to determine whether or not the images1506# Use the FORMULA_TRANPARENT tag to determine whether or not the images
1229# generated for formulas are transparent PNGs. Transparent PNGs are1507# generated for formulas are transparent PNGs. Transparent PNGs are not
1230# not supported properly for IE 6.0, but are supported on all modern browsers.1508# supported properly for IE 6.0, but are supported on all modern browsers.
1231# Note that when changing this option you need to delete any form_*.png files1509#
1232# in the HTML output before the changes have effect.1510# Note that when changing this option you need to delete any form_*.png files in
1511# the HTML output directory before the changes have effect.
1512# The default value is: YES.
1513# This tag requires that the tag GENERATE_HTML is set to YES.
12331514
1234FORMULA_TRANSPARENT = YES1515FORMULA_TRANSPARENT = YES
12351516
1236# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax1517# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
1237# (see http://www.mathjax.org) which uses client side Javascript for the1518# http://www.mathjax.org) which uses client side Javascript for the rendering
1238# rendering instead of using prerendered bitmaps. Use this if you do not1519# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
1239# have LaTeX installed or if you want to formulas look prettier in the HTML1520# installed or if you want to formulas look prettier in the HTML output. When
1240# output. When enabled you may also need to install MathJax separately and1521# enabled you may also need to install MathJax separately and configure the path
1241# configure the path to it using the MATHJAX_RELPATH option.1522# to it using the MATHJAX_RELPATH option.
1523# The default value is: NO.
1524# This tag requires that the tag GENERATE_HTML is set to YES.
12421525
1243USE_MATHJAX = NO1526USE_MATHJAX = NO
12441527
1245# When MathJax is enabled you can set the default output format to be used for1528# When MathJax is enabled you can set the default output format to be used for
1246# the MathJax output. Supported types are HTML-CSS, NativeMML (i.e. MathML) and1529# the MathJax output. See the MathJax site (see:
1247# SVG. The default value is HTML-CSS, which is slower, but has the best1530# http://docs.mathjax.org/en/latest/output.html) for more details.
1248# compatibility.1531# Possible values are: HTML-CSS (which is slower, but has the best
1532# compatibility), NativeMML (i.e. MathML) and SVG.
1533# The default value is: HTML-CSS.
1534# This tag requires that the tag USE_MATHJAX is set to YES.
12491535
1250MATHJAX_FORMAT = HTML-CSS1536MATHJAX_FORMAT = HTML-CSS
12511537
1252# When MathJax is enabled you need to specify the location relative to the1538# When MathJax is enabled you need to specify the location relative to the HTML
1253# HTML output directory using the MATHJAX_RELPATH option. The destination1539# output directory using the MATHJAX_RELPATH option. The destination directory
1254# directory should contain the MathJax.js script. For instance, if the mathjax1540# should contain the MathJax.js script. For instance, if the mathjax directory
1255# directory is located at the same level as the HTML output directory, then1541# is located at the same level as the HTML output directory, then
1256# MATHJAX_RELPATH should be ../mathjax. The default value points to1542# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
1257# the MathJax Content Delivery Network so you can quickly see the result without1543# Content Delivery Network so you can quickly see the result without installing
1258# installing MathJax.1544# MathJax. However, it is strongly recommended to install a local copy of
1259# However, it is strongly recommended to install a local1545# MathJax from http://www.mathjax.org before deployment.
1260# copy of MathJax from http://www.mathjax.org before deployment.1546# The default value is: http://cdn.mathjax.org/mathjax/latest.
1547# This tag requires that the tag USE_MATHJAX is set to YES.
12611548
1262MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest1549MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
12631550
1264# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension1551# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
1265# names that should be enabled during MathJax rendering.1552# extension names that should be enabled during MathJax rendering. For example
1553# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
1554# This tag requires that the tag USE_MATHJAX is set to YES.
12661555
1267MATHJAX_EXTENSIONS =1556MATHJAX_EXTENSIONS =
12681557
1269# The MATHJAX_CODEFILE tag can be used to specify a file with javascript1558# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
1270# pieces of code that will be used on startup of the MathJax code.1559# of code that will be used on startup of the MathJax code. See the MathJax site
1560# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
1561# example see the documentation.
1562# This tag requires that the tag USE_MATHJAX is set to YES.
12711563
1272MATHJAX_CODEFILE =1564MATHJAX_CODEFILE =
12731565
1274# When the SEARCHENGINE tag is enabled doxygen will generate a search box1566# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
1275# for the HTML output. The underlying search engine uses javascript1567# the HTML output. The underlying search engine uses javascript and DHTML and
1276# and DHTML and should work on any modern browser. Note that when using1568# should work on any modern browser. Note that when using HTML help
1277# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets1569# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
1278# (GENERATE_DOCSET) there is already a search function so this one should1570# there is already a search function so this one should typically be disabled.
1279# typically be disabled. For large projects the javascript based search engine1571# For large projects the javascript based search engine can be slow, then
1280# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.1572# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
1573# search using the keyboard; to jump to the search box use <access key> + S
1574# (what the <access key> is depends on the OS and browser, but it is typically
1575# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
1576# key> to jump into the search results window, the results can be navigated
1577# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
1578# the search. The filter options can be selected when the cursor is inside the
1579# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
1580# to select a filter and <Enter> or <escape> to activate or cancel the filter
1581# option.
1582# The default value is: YES.
1583# This tag requires that the tag GENERATE_HTML is set to YES.
12811584
1282SEARCHENGINE = YES1585SEARCHENGINE = YES
12831586
1284# When the SERVER_BASED_SEARCH tag is enabled the search engine will be1587# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
1285# implemented using a web server instead of a web client using Javascript.1588# implemented using a web server instead of a web client using Javascript. There
1286# There are two flavours of web server based search depending on the1589# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
1287# EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for1590# setting. When disabled, doxygen will generate a PHP script for searching and
1288# searching and an index file used by the script. When EXTERNAL_SEARCH is1591# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
1289# enabled the indexing and searching needs to be provided by external tools.1592# and searching needs to be provided by external tools. See the section
1290# See the manual for details.1593# "External Indexing and Searching" for details.
1594# The default value is: NO.
1595# This tag requires that the tag SEARCHENGINE is set to YES.
12911596
1292SERVER_BASED_SEARCH = NO1597SERVER_BASED_SEARCH = NO
12931598
1294# When EXTERNAL_SEARCH is enabled doxygen will no longer generate the PHP1599# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
1295# script for searching. Instead the search results are written to an XML file1600# script for searching. Instead the search results are written to an XML file
1296# which needs to be processed by an external indexer. Doxygen will invoke an1601# which needs to be processed by an external indexer. Doxygen will invoke an
1297# external search engine pointed to by the SEARCHENGINE_URL option to obtain1602# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
1298# the search results. Doxygen ships with an example indexer (doxyindexer) and1603# search results.
1299# search engine (doxysearch.cgi) which are based on the open source search1604#
1300# engine library Xapian. See the manual for configuration details.1605# Doxygen ships with an example indexer (doxyindexer) and search engine
1606# (doxysearch.cgi) which are based on the open source search engine library
1607# Xapian (see: http://xapian.org/).
1608#
1609# See the section "External Indexing and Searching" for details.
1610# The default value is: NO.
1611# This tag requires that the tag SEARCHENGINE is set to YES.
13011612
1302EXTERNAL_SEARCH = NO1613EXTERNAL_SEARCH = NO
13031614
1304# The SEARCHENGINE_URL should point to a search engine hosted by a web server1615# The SEARCHENGINE_URL should point to a search engine hosted by a web server
1305# which will returned the search results when EXTERNAL_SEARCH is enabled.1616# which will return the search results when EXTERNAL_SEARCH is enabled.
1306# Doxygen ships with an example search engine (doxysearch) which is based on1617#
1307# the open source search engine library Xapian. See the manual for configuration1618# Doxygen ships with an example indexer (doxyindexer) and search engine
1308# details.1619# (doxysearch.cgi) which are based on the open source search engine library
1620# Xapian (see: http://xapian.org/). See the section "External Indexing and
1621# Searching" for details.
1622# This tag requires that the tag SEARCHENGINE is set to YES.
13091623
1310SEARCHENGINE_URL =1624SEARCHENGINE_URL =
13111625
1312# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed1626# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
1313# search data is written to a file for indexing by an external tool. With the1627# search data is written to a file for indexing by an external tool. With the
1314# SEARCHDATA_FILE tag the name of this file can be specified.1628# SEARCHDATA_FILE tag the name of this file can be specified.
1629# The default file is: searchdata.xml.
1630# This tag requires that the tag SEARCHENGINE is set to YES.
13151631
1316SEARCHDATA_FILE = searchdata.xml1632SEARCHDATA_FILE = searchdata.xml
13171633
1318# When SERVER_BASED_SEARCH AND EXTERNAL_SEARCH are both enabled the1634# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
1319# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is1635# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
1320# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple1636# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
1321# projects and redirect the results back to the right project.1637# projects and redirect the results back to the right project.
1638# This tag requires that the tag SEARCHENGINE is set to YES.
13221639
1323EXTERNAL_SEARCH_ID =1640EXTERNAL_SEARCH_ID =
13241641
1325# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen1642# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
1326# projects other than the one defined by this configuration file, but that are1643# projects other than the one defined by this configuration file, but that are
1327# all added to the same external search index. Each project needs to have a1644# all added to the same external search index. Each project needs to have a
1328# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id1645# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
1329# of to a relative location where the documentation can be found.1646# to a relative location where the documentation can be found. The format is:
1330# The format is: EXTRA_SEARCH_MAPPINGS = id1=loc1 id2=loc2 ...1647# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
1648# This tag requires that the tag SEARCHENGINE is set to YES.
13311649
1332EXTRA_SEARCH_MAPPINGS =1650EXTRA_SEARCH_MAPPINGS =
13331651
1334#---------------------------------------------------------------------------1652#---------------------------------------------------------------------------
1335# configuration options related to the LaTeX output1653# Configuration options related to the LaTeX output
1336#---------------------------------------------------------------------------1654#---------------------------------------------------------------------------
13371655
1338# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will1656# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
1339# generate Latex output.1657# The default value is: YES.
13401658
1341GENERATE_LATEX = NO1659GENERATE_LATEX = NO
13421660
1343# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.1661# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
1344# If a relative path is entered the value of OUTPUT_DIRECTORY will be1662# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
1345# put in front of it. If left blank `latex' will be used as the default path.1663# it.
1664# The default directory is: latex.
1665# This tag requires that the tag GENERATE_LATEX is set to YES.
13461666
1347LATEX_OUTPUT = latex1667LATEX_OUTPUT = latex
13481668
1349# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be1669# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
1350# invoked. If left blank `latex' will be used as the default command name.1670# invoked.
1351# Note that when enabling USE_PDFLATEX this option is only used for1671#
1352# generating bitmaps for formulas in the HTML output, but not in the1672# Note that when enabling USE_PDFLATEX this option is only used for generating
1353# Makefile that is written to the output directory.1673# bitmaps for formulas in the HTML output, but not in the Makefile that is
1674# written to the output directory.
1675# The default file is: latex.
1676# This tag requires that the tag GENERATE_LATEX is set to YES.
13541677
1355LATEX_CMD_NAME = latex1678LATEX_CMD_NAME = latex
13561679
1357# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to1680# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
1358# generate index for LaTeX. If left blank `makeindex' will be used as the1681# index for LaTeX.
1359# default command name.1682# The default file is: makeindex.
1683# This tag requires that the tag GENERATE_LATEX is set to YES.
13601684
1361MAKEINDEX_CMD_NAME = makeindex1685MAKEINDEX_CMD_NAME = makeindex
13621686
1363# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact1687# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
1364# LaTeX documents. This may be useful for small projects and may help to1688# documents. This may be useful for small projects and may help to save some
1365# save some trees in general.1689# trees in general.
1690# The default value is: NO.
1691# This tag requires that the tag GENERATE_LATEX is set to YES.
13661692
1367COMPACT_LATEX = NO1693COMPACT_LATEX = NO
13681694
1369# The PAPER_TYPE tag can be used to set the paper type that is used1695# The PAPER_TYPE tag can be used to set the paper type that is used by the
1370# by the printer. Possible values are: a4, letter, legal and1696# printer.
1371# executive. If left blank a4 will be used.1697# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
1698# 14 inches) and executive (7.25 x 10.5 inches).
1699# The default value is: a4.
1700# This tag requires that the tag GENERATE_LATEX is set to YES.
13721701
1373PAPER_TYPE = a41702PAPER_TYPE = a4
13741703
1375# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX1704# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
1376# packages that should be included in the LaTeX output.1705# that should be included in the LaTeX output. The package can be specified just
1706# by its name or with the correct syntax as to be used with the LaTeX
1707# \usepackage command. To get the times font for instance you can specify :
1708# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
1709# To use the option intlimits with the amsmath package you can specify:
1710# EXTRA_PACKAGES=[intlimits]{amsmath}
1711# If left blank no extra packages will be included.
1712# This tag requires that the tag GENERATE_LATEX is set to YES.
13771713
1378EXTRA_PACKAGES =1714EXTRA_PACKAGES =
13791715
1380# The LATEX_HEADER tag can be used to specify a personal LaTeX header for1716# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
1381# the generated latex document. The header should contain everything until1717# generated LaTeX document. The header should contain everything until the first
1382# the first chapter. If it is left blank doxygen will generate a1718# chapter. If it is left blank doxygen will generate a standard header. See
1383# standard header. Notice: only use this tag if you know what you are doing!1719# section "Doxygen usage" for information on how to let doxygen write the
1720# default header to a separate file.
1721#
1722# Note: Only use a user-defined header if you know what you are doing! The
1723# following commands have a special meaning inside the header: $title,
1724# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
1725# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
1726# string, for the replacement values of the other commands the user is referred
1727# to HTML_HEADER.
1728# This tag requires that the tag GENERATE_LATEX is set to YES.
13841729
1385LATEX_HEADER =1730LATEX_HEADER =
13861731
1387# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for1732# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
1388# the generated latex document. The footer should contain everything after1733# generated LaTeX document. The footer should contain everything after the last
1389# the last chapter. If it is left blank doxygen will generate a1734# chapter. If it is left blank doxygen will generate a standard footer. See
1390# standard footer. Notice: only use this tag if you know what you are doing!1735# LATEX_HEADER for more information on how to generate a default footer and what
1736# special commands can be used inside the footer.
1737#
1738# Note: Only use a user-defined footer if you know what you are doing!
1739# This tag requires that the tag GENERATE_LATEX is set to YES.
13911740
1392LATEX_FOOTER =1741LATEX_FOOTER =
13931742
1394# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images1743# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
1395# or other source files which should be copied to the LaTeX output directory.1744# LaTeX style sheets that are included after the standard style sheets created
1396# Note that the files will be copied as-is; there are no commands or markers1745# by doxygen. Using this option one can overrule certain style aspects. Doxygen
1397# available.1746# will copy the style sheet files to the output directory.
1747# Note: The order of the extra style sheet files is of importance (e.g. the last
1748# style sheet in the list overrules the setting of the previous ones in the
1749# list).
1750# This tag requires that the tag GENERATE_LATEX is set to YES.
1751
1752LATEX_EXTRA_STYLESHEET =
1753
1754# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
1755# other source files which should be copied to the LATEX_OUTPUT output
1756# directory. Note that the files will be copied as-is; there are no commands or
1757# markers available.
1758# This tag requires that the tag GENERATE_LATEX is set to YES.
13981759
1399LATEX_EXTRA_FILES =1760LATEX_EXTRA_FILES =
14001761
1401# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated1762# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
1402# is prepared for conversion to pdf (using ps2pdf). The pdf file will1763# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
1403# contain links (just like the HTML output) instead of page references1764# contain links (just like the HTML output) instead of page references. This
1404# This makes the output suitable for online browsing using a pdf viewer.1765# makes the output suitable for online browsing using a PDF viewer.
1766# The default value is: YES.
1767# This tag requires that the tag GENERATE_LATEX is set to YES.
14051768
1406PDF_HYPERLINKS = YES1769PDF_HYPERLINKS = YES
14071770
1408# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of1771# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
1409# plain latex in the generated Makefile. Set this option to YES to get a1772# the PDF file directly from the LaTeX files. Set this option to YES, to get a
1410# higher quality PDF documentation.1773# higher quality PDF documentation.
1774# The default value is: YES.
1775# This tag requires that the tag GENERATE_LATEX is set to YES.
14111776
1412USE_PDFLATEX = YES1777USE_PDFLATEX = YES
14131778
1414# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.1779# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
1415# command to the generated LaTeX files. This will instruct LaTeX to keep1780# command to the generated LaTeX files. This will instruct LaTeX to keep running
1416# running if errors occur, instead of asking the user for help.1781# if errors occur, instead of asking the user for help. This option is also used
1417# This option is also used when generating formulas in HTML.1782# when generating formulas in HTML.
1783# The default value is: NO.
1784# This tag requires that the tag GENERATE_LATEX is set to YES.
14181785
1419LATEX_BATCHMODE = NO1786LATEX_BATCHMODE = NO
14201787
1421# If LATEX_HIDE_INDICES is set to YES then doxygen will not1788# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
1422# include the index chapters (such as File Index, Compound Index, etc.)1789# index chapters (such as File Index, Compound Index, etc.) in the output.
1423# in the output.1790# The default value is: NO.
1791# This tag requires that the tag GENERATE_LATEX is set to YES.
14241792
1425LATEX_HIDE_INDICES = NO1793LATEX_HIDE_INDICES = NO
14261794
1427# If LATEX_SOURCE_CODE is set to YES then doxygen will include1795# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
1428# source code with syntax highlighting in the LaTeX output.1796# code with syntax highlighting in the LaTeX output.
1429# Note that which sources are shown also depends on other settings1797#
1430# such as SOURCE_BROWSER.1798# Note that which sources are shown also depends on other settings such as
1799# SOURCE_BROWSER.
1800# The default value is: NO.
1801# This tag requires that the tag GENERATE_LATEX is set to YES.
14311802
1432LATEX_SOURCE_CODE = NO1803LATEX_SOURCE_CODE = NO
14331804
1434# The LATEX_BIB_STYLE tag can be used to specify the style to use for the1805# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
1435# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See1806# bibliography, e.g. plainnat, or ieeetr. See
1436# http://en.wikipedia.org/wiki/BibTeX for more info.1807# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
1808# The default value is: plain.
1809# This tag requires that the tag GENERATE_LATEX is set to YES.
14371810
1438LATEX_BIB_STYLE = plain1811LATEX_BIB_STYLE = plain
14391812
1440#---------------------------------------------------------------------------1813# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated
1441# configuration options related to the RTF output1814# page will contain the date and time when the page was generated. Setting this
1442#---------------------------------------------------------------------------1815# to NO can help when comparing the output of multiple runs.
14431816# The default value is: NO.
1444# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output1817# This tag requires that the tag GENERATE_LATEX is set to YES.
1445# The RTF output is optimized for Word 97 and may not look very pretty with1818
1446# other RTF readers or editors.1819LATEX_TIMESTAMP = NO
1820
1821#---------------------------------------------------------------------------
1822# Configuration options related to the RTF output
1823#---------------------------------------------------------------------------
1824
1825# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The
1826# RTF output is optimized for Word 97 and may not look too pretty with other RTF
1827# readers/editors.
1828# The default value is: NO.
14471829
1448GENERATE_RTF = NO1830GENERATE_RTF = NO
14491831
1450# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.1832# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
1451# If a relative path is entered the value of OUTPUT_DIRECTORY will be1833# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
1452# put in front of it. If left blank `rtf' will be used as the default path.1834# it.
1835# The default directory is: rtf.
1836# This tag requires that the tag GENERATE_RTF is set to YES.
14531837
1454RTF_OUTPUT = rtf1838RTF_OUTPUT = rtf
14551839
1456# If the COMPACT_RTF tag is set to YES Doxygen generates more compact1840# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF
1457# RTF documents. This may be useful for small projects and may help to1841# documents. This may be useful for small projects and may help to save some
1458# save some trees in general.1842# trees in general.
1843# The default value is: NO.
1844# This tag requires that the tag GENERATE_RTF is set to YES.
14591845
1460COMPACT_RTF = NO1846COMPACT_RTF = NO
14611847
1462# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated1848# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
1463# will contain hyperlink fields. The RTF file will1849# contain hyperlink fields. The RTF file will contain links (just like the HTML
1464# contain links (just like the HTML output) instead of page references.1850# output) instead of page references. This makes the output suitable for online
1465# This makes the output suitable for online browsing using WORD or other1851# browsing using Word or some other Word compatible readers that support those
1466# programs which support those fields.1852# fields.
1467# Note: wordpad (write) and others do not support links.1853#
1854# Note: WordPad (write) and others do not support links.
1855# The default value is: NO.
1856# This tag requires that the tag GENERATE_RTF is set to YES.
14681857
1469RTF_HYPERLINKS = NO1858RTF_HYPERLINKS = NO
14701859
1471# Load style sheet definitions from file. Syntax is similar to doxygen's1860# Load stylesheet definitions from file. Syntax is similar to doxygen's config
1472# config file, i.e. a series of assignments. You only have to provide1861# file, i.e. a series of assignments. You only have to provide replacements,
1473# replacements, missing definitions are set to their default value.1862# missing definitions are set to their default value.
1863#
1864# See also section "Doxygen usage" for information on how to generate the
1865# default style sheet that doxygen normally uses.
1866# This tag requires that the tag GENERATE_RTF is set to YES.
14741867
1475RTF_STYLESHEET_FILE =1868RTF_STYLESHEET_FILE =
14761869
1477# Set optional variables used in the generation of an rtf document.1870# Set optional variables used in the generation of an RTF document. Syntax is
1478# Syntax is similar to doxygen's config file.1871# similar to doxygen's config file. A template extensions file can be generated
1872# using doxygen -e rtf extensionFile.
1873# This tag requires that the tag GENERATE_RTF is set to YES.
14791874
1480RTF_EXTENSIONS_FILE =1875RTF_EXTENSIONS_FILE =
14811876
1482#---------------------------------------------------------------------------1877# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
1483# configuration options related to the man page output1878# with syntax highlighting in the RTF output.
1484#---------------------------------------------------------------------------1879#
14851880# Note that which sources are shown also depends on other settings such as
1486# If the GENERATE_MAN tag is set to YES (the default) Doxygen will1881# SOURCE_BROWSER.
1487# generate man pages1882# The default value is: NO.
1883# This tag requires that the tag GENERATE_RTF is set to YES.
1884
1885RTF_SOURCE_CODE = NO
1886
1887#---------------------------------------------------------------------------
1888# Configuration options related to the man page output
1889#---------------------------------------------------------------------------
1890
1891# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for
1892# classes and files.
1893# The default value is: NO.
14881894
1489GENERATE_MAN = NO1895GENERATE_MAN = NO
14901896
1491# The MAN_OUTPUT tag is used to specify where the man pages will be put.1897# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
1492# If a relative path is entered the value of OUTPUT_DIRECTORY will be1898# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
1493# put in front of it. If left blank `man' will be used as the default path.1899# it. A directory man3 will be created inside the directory specified by
1900# MAN_OUTPUT.
1901# The default directory is: man.
1902# This tag requires that the tag GENERATE_MAN is set to YES.
14941903
1495MAN_OUTPUT = man1904MAN_OUTPUT = man
14961905
1497# The MAN_EXTENSION tag determines the extension that is added to1906# The MAN_EXTENSION tag determines the extension that is added to the generated
1498# the generated man pages (default is the subroutine's section .3)1907# man pages. In case the manual section does not start with a number, the number
1908# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
1909# optional.
1910# The default value is: .3.
1911# This tag requires that the tag GENERATE_MAN is set to YES.
14991912
1500MAN_EXTENSION = .31913MAN_EXTENSION = .3
15011914
1502# If the MAN_LINKS tag is set to YES and Doxygen generates man output,1915# The MAN_SUBDIR tag determines the name of the directory created within
1503# then it will generate one additional man file for each entity1916# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
1504# documented in the real man page(s). These additional files1917# MAN_EXTENSION with the initial . removed.
1505# only source the real man page, but without them the man command1918# This tag requires that the tag GENERATE_MAN is set to YES.
1506# would be unable to find the correct page. The default is NO.1919
1920MAN_SUBDIR =
1921
1922# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
1923# will generate one additional man file for each entity documented in the real
1924# man page(s). These additional files only source the real man page, but without
1925# them the man command would be unable to find the correct page.
1926# The default value is: NO.
1927# This tag requires that the tag GENERATE_MAN is set to YES.
15071928
1508MAN_LINKS = NO1929MAN_LINKS = NO
15091930
1510#---------------------------------------------------------------------------1931#---------------------------------------------------------------------------
1511# configuration options related to the XML output1932# Configuration options related to the XML output
1512#---------------------------------------------------------------------------1933#---------------------------------------------------------------------------
15131934
1514# If the GENERATE_XML tag is set to YES Doxygen will1935# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
1515# generate an XML file that captures the structure of1936# captures the structure of the code including all documentation.
1516# the code including all documentation.1937# The default value is: NO.
15171938
1518GENERATE_XML = YES1939GENERATE_XML = YES
15191940
1520# The XML_OUTPUT tag is used to specify where the XML pages will be put.1941# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
1521# If a relative path is entered the value of OUTPUT_DIRECTORY will be1942# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
1522# put in front of it. If left blank `xml' will be used as the default path.1943# it.
1944# The default directory is: xml.
1945# This tag requires that the tag GENERATE_XML is set to YES.
15231946
1524XML_OUTPUT = xml1947XML_OUTPUT = xml
15251948
1526# The XML_SCHEMA tag can be used to specify an XML schema,1949# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
1527# which can be used by a validating XML parser to check the1950# listings (including syntax highlighting and cross-referencing information) to
1528# syntax of the XML files.1951# the XML output. Note that enabling this will significantly increase the size
15291952# of the XML output.
1530XML_SCHEMA =1953# The default value is: YES.
15311954# This tag requires that the tag GENERATE_XML is set to YES.
1532# The XML_DTD tag can be used to specify an XML DTD,
1533# which can be used by a validating XML parser to check the
1534# syntax of the XML files.
1535
1536XML_DTD =
1537
1538# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
1539# dump the program listings (including syntax highlighting
1540# and cross-referencing information) to the XML output. Note that
1541# enabling this will significantly increase the size of the XML output.
15421955
1543XML_PROGRAMLISTING = YES1956XML_PROGRAMLISTING = YES
15441957
1545#---------------------------------------------------------------------------1958#---------------------------------------------------------------------------
1546# configuration options related to the DOCBOOK output1959# Configuration options related to the DOCBOOK output
1547#---------------------------------------------------------------------------1960#---------------------------------------------------------------------------
15481961
1549# If the GENERATE_DOCBOOK tag is set to YES Doxygen will generate DOCBOOK files1962# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files
1550# that can be used to generate PDF.1963# that can be used to generate PDF.
1964# The default value is: NO.
15511965
1552GENERATE_DOCBOOK = NO1966GENERATE_DOCBOOK = NO
15531967
1554# The DOCBOOK_OUTPUT tag is used to specify where the DOCBOOK pages will be put.1968# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
1555# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in1969# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
1556# front of it. If left blank docbook will be used as the default path.1970# front of it.
1971# The default directory is: docbook.
1972# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
15571973
1558DOCBOOK_OUTPUT = docbook1974DOCBOOK_OUTPUT = docbook
15591975
1560#---------------------------------------------------------------------------1976# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
1561# configuration options for the AutoGen Definitions output1977# program listings (including syntax highlighting and cross-referencing
1562#---------------------------------------------------------------------------1978# information) to the DOCBOOK output. Note that enabling this will significantly
15631979# increase the size of the DOCBOOK output.
1564# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will1980# The default value is: NO.
1565# generate an AutoGen Definitions (see autogen.sf.net) file1981# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
1566# that captures the structure of the code including all1982
1567# documentation. Note that this feature is still experimental1983DOCBOOK_PROGRAMLISTING = NO
1568# and incomplete at the moment.1984
1985#---------------------------------------------------------------------------
1986# Configuration options for the AutoGen Definitions output
1987#---------------------------------------------------------------------------
1988
1989# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
1990# AutoGen Definitions (see http://autogen.sf.net) file that captures the
1991# structure of the code including all documentation. Note that this feature is
1992# still experimental and incomplete at the moment.
1993# The default value is: NO.
15691994
1570GENERATE_AUTOGEN_DEF = NO1995GENERATE_AUTOGEN_DEF = NO
15711996
1572#---------------------------------------------------------------------------1997#---------------------------------------------------------------------------
1573# configuration options related to the Perl module output1998# Configuration options related to the Perl module output
1574#---------------------------------------------------------------------------1999#---------------------------------------------------------------------------
15752000
1576# If the GENERATE_PERLMOD tag is set to YES Doxygen will2001# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module
1577# generate a Perl module file that captures the structure of2002# file that captures the structure of the code including all documentation.
1578# the code including all documentation. Note that this2003#
1579# feature is still experimental and incomplete at the2004# Note that this feature is still experimental and incomplete at the moment.
1580# moment.2005# The default value is: NO.
15812006
1582GENERATE_PERLMOD = NO2007GENERATE_PERLMOD = NO
15832008
1584# If the PERLMOD_LATEX tag is set to YES Doxygen will generate2009# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary
1585# the necessary Makefile rules, Perl scripts and LaTeX code to be able2010# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
1586# to generate PDF and DVI output from the Perl module output.2011# output from the Perl module output.
2012# The default value is: NO.
2013# This tag requires that the tag GENERATE_PERLMOD is set to YES.
15872014
1588PERLMOD_LATEX = NO2015PERLMOD_LATEX = NO
15892016
1590# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be2017# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely
1591# nicely formatted so it can be parsed by a human reader.2018# formatted so it can be parsed by a human reader. This is useful if you want to
1592# This is useful2019# understand what is going on. On the other hand, if this tag is set to NO, the
1593# if you want to understand what is going on.2020# size of the Perl module output will be much smaller and Perl will parse it
1594# On the other hand, if this2021# just the same.
1595# tag is set to NO the size of the Perl module output will be much smaller2022# The default value is: YES.
1596# and Perl will parse it just the same.2023# This tag requires that the tag GENERATE_PERLMOD is set to YES.
15972024
1598PERLMOD_PRETTY = YES2025PERLMOD_PRETTY = YES
15992026
1600# The names of the make variables in the generated doxyrules.make file2027# The names of the make variables in the generated doxyrules.make file are
1601# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.2028# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
1602# This is useful so different doxyrules.make files included by the same2029# so different doxyrules.make files included by the same Makefile don't
1603# Makefile don't overwrite each other's variables.2030# overwrite each other's variables.
2031# This tag requires that the tag GENERATE_PERLMOD is set to YES.
16042032
1605PERLMOD_MAKEVAR_PREFIX =2033PERLMOD_MAKEVAR_PREFIX =
16062034
@@ -1608,112 +2036,129 @@
1608# Configuration options related to the preprocessor2036# Configuration options related to the preprocessor
1609#---------------------------------------------------------------------------2037#---------------------------------------------------------------------------
16102038
1611# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will2039# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
1612# evaluate all C-preprocessor directives found in the sources and include2040# C-preprocessor directives found in the sources and include files.
1613# files.2041# The default value is: YES.
16142042
1615ENABLE_PREPROCESSING = YES2043ENABLE_PREPROCESSING = YES
16162044
1617# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro2045# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
1618# names in the source code. If set to NO (the default) only conditional2046# in the source code. If set to NO, only conditional compilation will be
1619# compilation will be performed. Macro expansion can be done in a controlled2047# performed. Macro expansion can be done in a controlled way by setting
1620# way by setting EXPAND_ONLY_PREDEF to YES.2048# EXPAND_ONLY_PREDEF to YES.
2049# The default value is: NO.
2050# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
16212051
1622MACRO_EXPANSION = NO2052MACRO_EXPANSION = NO
16232053
1624# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES2054# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
1625# then the macro expansion is limited to the macros specified with the2055# the macro expansion is limited to the macros specified with the PREDEFINED and
1626# PREDEFINED and EXPAND_AS_DEFINED tags.2056# EXPAND_AS_DEFINED tags.
2057# The default value is: NO.
2058# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
16272059
1628EXPAND_ONLY_PREDEF = NO2060EXPAND_ONLY_PREDEF = NO
16292061
1630# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files2062# If the SEARCH_INCLUDES tag is set to YES, the include files in the
1631# pointed to by INCLUDE_PATH will be searched when a #include is found.2063# INCLUDE_PATH will be searched if a #include is found.
2064# The default value is: YES.
2065# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
16322066
1633SEARCH_INCLUDES = YES2067SEARCH_INCLUDES = YES
16342068
1635# The INCLUDE_PATH tag can be used to specify one or more directories that2069# The INCLUDE_PATH tag can be used to specify one or more directories that
1636# contain include files that are not input files but should be processed by2070# contain include files that are not input files but should be processed by the
1637# the preprocessor.2071# preprocessor.
2072# This tag requires that the tag SEARCH_INCLUDES is set to YES.
16382073
1639INCLUDE_PATH =2074INCLUDE_PATH =
16402075
1641# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard2076# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
1642# patterns (like *.h and *.hpp) to filter out the header-files in the2077# patterns (like *.h and *.hpp) to filter out the header-files in the
1643# directories. If left blank, the patterns specified with FILE_PATTERNS will2078# directories. If left blank, the patterns specified with FILE_PATTERNS will be
1644# be used.2079# used.
2080# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
16452081
1646INCLUDE_FILE_PATTERNS =2082INCLUDE_FILE_PATTERNS =
16472083
1648# The PREDEFINED tag can be used to specify one or more macro names that2084# The PREDEFINED tag can be used to specify one or more macro names that are
1649# are defined before the preprocessor is started (similar to the -D option of2085# defined before the preprocessor is started (similar to the -D option of e.g.
1650# gcc). The argument of the tag is a list of macros of the form: name2086# gcc). The argument of the tag is a list of macros of the form: name or
1651# or name=definition (no spaces). If the definition and the = are2087# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
1652# omitted =1 is assumed. To prevent a macro definition from being2088# is assumed. To prevent a macro definition from being undefined via #undef or
1653# undefined via #undef or recursively expanded use the := operator2089# recursively expanded use the := operator instead of the = operator.
1654# instead of the = operator.2090# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
16552091
1656PREDEFINED = __cplusplus2092PREDEFINED = __cplusplus
16572093
1658# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then2094# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
1659# this tag can be used to specify a list of macro names that should be expanded.2095# tag can be used to specify a list of macro names that should be expanded. The
1660# The macro definition that is found in the sources will be used.2096# macro definition that is found in the sources will be used. Use the PREDEFINED
1661# Use the PREDEFINED tag if you want to use a different macro definition that2097# tag if you want to use a different macro definition that overrules the
1662# overrules the definition found in the source code.2098# definition found in the source code.
2099# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
16632100
1664EXPAND_AS_DEFINED =2101EXPAND_AS_DEFINED =
16652102
1666# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then2103# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
1667# doxygen's preprocessor will remove all references to function-like macros2104# remove all references to function-like macros that are alone on a line, have
1668# that are alone on a line, have an all uppercase name, and do not end with a2105# an all uppercase name, and do not end with a semicolon. Such function macros
1669# semicolon, because these will confuse the parser if not removed.2106# are typically used for boiler-plate code, and will confuse the parser if not
2107# removed.
2108# The default value is: YES.
2109# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
16702110
1671SKIP_FUNCTION_MACROS = YES2111SKIP_FUNCTION_MACROS = YES
16722112
1673#---------------------------------------------------------------------------2113#---------------------------------------------------------------------------
1674# Configuration::additions related to external references2114# Configuration options related to external references
1675#---------------------------------------------------------------------------2115#---------------------------------------------------------------------------
16762116
1677# The TAGFILES option can be used to specify one or more tagfiles. For each2117# The TAGFILES tag can be used to specify one or more tag files. For each tag
1678# tag file the location of the external documentation should be added. The2118# file the location of the external documentation should be added. The format of
1679# format of a tag file without this location is as follows:2119# a tag file without this location is as follows:
1680#
1681# TAGFILES = file1 file2 ...2120# TAGFILES = file1 file2 ...
1682# Adding location for the tag files is done as follows:2121# Adding location for the tag files is done as follows:
1683#
1684# TAGFILES = file1=loc1 "file2 = loc2" ...2122# TAGFILES = file1=loc1 "file2 = loc2" ...
1685# where "loc1" and "loc2" can be relative or absolute paths2123# where loc1 and loc2 can be relative or absolute paths or URLs. See the
1686# or URLs. Note that each tag file must have a unique name (where the name does2124# section "Linking to external documentation" for more information about the use
1687# NOT include the path). If a tag file is not located in the directory in which2125# of tag files.
1688# doxygen is run, you must also specify the path to the tagfile here.2126# Note: Each tag file must have a unique name (where the name does NOT include
2127# the path). If a tag file is not located in the directory in which doxygen is
2128# run, you must also specify the path to the tagfile here.
16892129
1690TAGFILES =2130TAGFILES =
16912131
1692# When a file name is specified after GENERATE_TAGFILE, doxygen will create2132# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
1693# a tag file that is based on the input files it reads.2133# tag file that is based on the input files it reads. See section "Linking to
2134# external documentation" for more information about the usage of tag files.
16942135
1695GENERATE_TAGFILE =2136GENERATE_TAGFILE =
16962137
1697# If the ALLEXTERNALS tag is set to YES all external classes will be listed2138# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
1698# in the class index. If set to NO only the inherited external classes2139# the class index. If set to NO, only the inherited external classes will be
1699# will be listed.2140# listed.
2141# The default value is: NO.
17002142
1701ALLEXTERNALS = NO2143ALLEXTERNALS = NO
17022144
1703# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed2145# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
1704# in the modules index. If set to NO, only the current project's groups will2146# in the modules index. If set to NO, only the current project's groups will be
2147# listed.
2148# The default value is: YES.
2149
2150EXTERNAL_GROUPS = YES
2151
2152# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in
2153# the related pages index. If set to NO, only the current project's pages will
1705# be listed.2154# be listed.
17062155# The default value is: YES.
1707EXTERNAL_GROUPS = YES
1708
1709# If the EXTERNAL_PAGES tag is set to YES all external pages will be listed
1710# in the related pages index. If set to NO, only the current project's
1711# pages will be listed.
17122156
1713EXTERNAL_PAGES = YES2157EXTERNAL_PAGES = YES
17142158
1715# The PERL_PATH should be the absolute path and name of the perl script2159# The PERL_PATH should be the absolute path and name of the perl script
1716# interpreter (i.e. the result of `which perl').2160# interpreter (i.e. the result of 'which perl').
2161# The default file (with absolute path) is: /usr/bin/perl.
17172162
1718PERL_PATH = /usr/bin/perl2163PERL_PATH = /usr/bin/perl
17192164
@@ -1721,222 +2166,314 @@
1721# Configuration options related to the dot tool2166# Configuration options related to the dot tool
1722#---------------------------------------------------------------------------2167#---------------------------------------------------------------------------
17232168
1724# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will2169# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
1725# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base2170# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
1726# or super classes. Setting the tag to NO turns the diagrams off. Note that2171# NO turns the diagrams off. Note that this option also works with HAVE_DOT
1727# this option also works with HAVE_DOT disabled, but it is recommended to2172# disabled, but it is recommended to install and use dot, since it yields more
1728# install and use dot, since it yields more powerful graphs.2173# powerful graphs.
2174# The default value is: YES.
17292175
1730CLASS_DIAGRAMS = YES2176CLASS_DIAGRAMS = YES
17312177
1732# You can define message sequence charts within doxygen comments using the \msc2178# You can define message sequence charts within doxygen comments using the \msc
1733# command. Doxygen will then run the mscgen tool (see2179# command. Doxygen will then run the mscgen tool (see:
1734# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the2180# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
1735# documentation. The MSCGEN_PATH tag allows you to specify the directory where2181# documentation. The MSCGEN_PATH tag allows you to specify the directory where
1736# the mscgen tool resides. If left empty the tool is assumed to be found in the2182# the mscgen tool resides. If left empty the tool is assumed to be found in the
1737# default search path.2183# default search path.
17382184
1739MSCGEN_PATH =2185MSCGEN_PATH =
17402186
1741# If set to YES, the inheritance and collaboration graphs will hide2187# You can include diagrams made with dia in doxygen documentation. Doxygen will
1742# inheritance and usage relations if the target is undocumented2188# then run dia to produce the diagram and insert it in the documentation. The
1743# or is not a class.2189# DIA_PATH tag allows you to specify the directory where the dia binary resides.
2190# If left empty dia is assumed to be found in the default search path.
2191
2192DIA_PATH =
2193
2194# If set to YES the inheritance and collaboration graphs will hide inheritance
2195# and usage relations if the target is undocumented or is not a class.
2196# The default value is: YES.
17442197
1745HIDE_UNDOC_RELATIONS = YES2198HIDE_UNDOC_RELATIONS = YES
17462199
1747# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is2200# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
1748# available from the path. This tool is part of Graphviz, a graph visualization2201# available from the path. This tool is part of Graphviz (see:
1749# toolkit from AT&T and Lucent Bell Labs. The other options in this section2202# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
1750# have no effect if this option is set to NO (the default)2203# Bell Labs. The other options in this section have no effect if this option is
2204# set to NO
2205# The default value is: YES.
17512206
1752HAVE_DOT = @DOXYGEN_DOT_FOUND@2207HAVE_DOT = @DOXYGEN_DOT_FOUND@
17532208
1754# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is2209# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
1755# allowed to run in parallel. When set to 0 (the default) doxygen will2210# to run in parallel. When set to 0 doxygen will base this on the number of
1756# base this on the number of processors available in the system. You can set it2211# processors available in the system. You can set it explicitly to a value
1757# explicitly to a value larger than 0 to get control over the balance2212# larger than 0 to get control over the balance between CPU load and processing
1758# between CPU load and processing speed.2213# speed.
2214# Minimum value: 0, maximum value: 32, default value: 0.
2215# This tag requires that the tag HAVE_DOT is set to YES.
17592216
1760DOT_NUM_THREADS = 02217DOT_NUM_THREADS = 0
17612218
1762# By default doxygen will use the Helvetica font for all dot files that2219# When you want a differently looking font in the dot files that doxygen
1763# doxygen generates. When you want a differently looking font you can specify2220# generates you can specify the font name using DOT_FONTNAME. You need to make
1764# the font name using DOT_FONTNAME. You need to make sure dot is able to find2221# sure dot is able to find the font, which can be done by putting it in a
1765# the font, which can be done by putting it in a standard location or by setting2222# standard location or by setting the DOTFONTPATH environment variable or by
1766# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the2223# setting DOT_FONTPATH to the directory containing the font.
1767# directory containing the font.2224# The default value is: Helvetica.
2225# This tag requires that the tag HAVE_DOT is set to YES.
17682226
1769DOT_FONTNAME = Arial2227DOT_FONTNAME = Arial
17702228
1771# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.2229# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
1772# The default size is 10pt.2230# dot graphs.
2231# Minimum value: 4, maximum value: 24, default value: 10.
2232# This tag requires that the tag HAVE_DOT is set to YES.
17732233
1774DOT_FONTSIZE = 102234DOT_FONTSIZE = 10
17752235
1776# By default doxygen will tell dot to use the Helvetica font.2236# By default doxygen will tell dot to use the default font as specified with
1777# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to2237# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
1778# set the path where dot can find it.2238# the path where dot can find it using this tag.
2239# This tag requires that the tag HAVE_DOT is set to YES.
17792240
1780DOT_FONTPATH =2241DOT_FONTPATH =
17812242
1782# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen2243# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
1783# will generate a graph for each documented class showing the direct and2244# each documented class showing the direct and indirect inheritance relations.
1784# indirect inheritance relations. Setting this tag to YES will force the2245# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
1785# CLASS_DIAGRAMS tag to NO.2246# The default value is: YES.
2247# This tag requires that the tag HAVE_DOT is set to YES.
17862248
1787CLASS_GRAPH = YES2249CLASS_GRAPH = YES
17882250
1789# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen2251# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
1790# will generate a graph for each documented class showing the direct and2252# graph for each documented class showing the direct and indirect implementation
1791# indirect implementation dependencies (inheritance, containment, and2253# dependencies (inheritance, containment, and class references variables) of the
1792# class references variables) of the class with other documented classes.2254# class with other documented classes.
2255# The default value is: YES.
2256# This tag requires that the tag HAVE_DOT is set to YES.
17932257
1794COLLABORATION_GRAPH = NO2258COLLABORATION_GRAPH = NO
17952259
1796# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen2260# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
1797# will generate a graph for groups, showing the direct groups dependencies2261# groups, showing the direct groups dependencies.
2262# The default value is: YES.
2263# This tag requires that the tag HAVE_DOT is set to YES.
17982264
1799GROUP_GRAPHS = YES2265GROUP_GRAPHS = YES
18002266
1801# If the UML_LOOK tag is set to YES doxygen will generate inheritance and2267# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
1802# collaboration diagrams in a style similar to the OMG's Unified Modeling2268# collaboration diagrams in a style similar to the OMG's Unified Modeling
1803# Language.2269# Language.
2270# The default value is: NO.
2271# This tag requires that the tag HAVE_DOT is set to YES.
18042272
1805UML_LOOK = NO2273UML_LOOK = NO
18062274
1807# If the UML_LOOK tag is enabled, the fields and methods are shown inside2275# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
1808# the class node. If there are many fields or methods and many nodes the2276# class node. If there are many fields or methods and many nodes the graph may
1809# graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS2277# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
1810# threshold limits the number of items for each type to make the size more2278# number of items for each type to make the size more manageable. Set this to 0
1811# manageable. Set this to 0 for no limit. Note that the threshold may be2279# for no limit. Note that the threshold may be exceeded by 50% before the limit
1812# exceeded by 50% before the limit is enforced.2280# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
2281# but if the number exceeds 15, the total amount of fields shown is limited to
2282# 10.
2283# Minimum value: 0, maximum value: 100, default value: 10.
2284# This tag requires that the tag HAVE_DOT is set to YES.
18132285
1814UML_LIMIT_NUM_FIELDS = 102286UML_LIMIT_NUM_FIELDS = 10
18152287
1816# If set to YES, the inheritance and collaboration graphs will show the2288# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
1817# relations between templates and their instances.2289# collaboration graphs will show the relations between templates and their
2290# instances.
2291# The default value is: NO.
2292# This tag requires that the tag HAVE_DOT is set to YES.
18182293
1819TEMPLATE_RELATIONS = NO2294TEMPLATE_RELATIONS = NO
18202295
1821# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT2296# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
1822# tags are set to YES then doxygen will generate a graph for each documented2297# YES then doxygen will generate a graph for each documented file showing the
1823# file showing the direct and indirect include dependencies of the file with2298# direct and indirect include dependencies of the file with other documented
1824# other documented files.2299# files.
2300# The default value is: YES.
2301# This tag requires that the tag HAVE_DOT is set to YES.
18252302
1826INCLUDE_GRAPH = YES2303INCLUDE_GRAPH = YES
18272304
1828# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and2305# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
1829# HAVE_DOT tags are set to YES then doxygen will generate a graph for each2306# set to YES then doxygen will generate a graph for each documented file showing
1830# documented header file showing the documented files that directly or2307# the direct and indirect include dependencies of the file with other documented
1831# indirectly include this file.2308# files.
2309# The default value is: YES.
2310# This tag requires that the tag HAVE_DOT is set to YES.
18322311
1833INCLUDED_BY_GRAPH = YES2312INCLUDED_BY_GRAPH = YES
18342313
1835# If the CALL_GRAPH and HAVE_DOT options are set to YES then2314# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
1836# doxygen will generate a call dependency graph for every global function2315# dependency graph for every global function or class method.
1837# or class method. Note that enabling this option will significantly increase2316#
1838# the time of a run. So in most cases it will be better to enable call graphs2317# Note that enabling this option will significantly increase the time of a run.
1839# for selected functions only using the \callgraph command.2318# So in most cases it will be better to enable call graphs for selected
2319# functions only using the \callgraph command. Disabling a call graph can be
2320# accomplished by means of the command \hidecallgraph.
2321# The default value is: NO.
2322# This tag requires that the tag HAVE_DOT is set to YES.
18402323
1841CALL_GRAPH = NO2324CALL_GRAPH = NO
18422325
1843# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then2326# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
1844# doxygen will generate a caller dependency graph for every global function2327# dependency graph for every global function or class method.
1845# or class method. Note that enabling this option will significantly increase2328#
1846# the time of a run. So in most cases it will be better to enable caller2329# Note that enabling this option will significantly increase the time of a run.
1847# graphs for selected functions only using the \callergraph command.2330# So in most cases it will be better to enable caller graphs for selected
2331# functions only using the \callergraph command. Disabling a caller graph can be
2332# accomplished by means of the command \hidecallergraph.
2333# The default value is: NO.
2334# This tag requires that the tag HAVE_DOT is set to YES.
18482335
1849CALLER_GRAPH = NO2336CALLER_GRAPH = NO
18502337
1851# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen2338# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
1852# will generate a graphical hierarchy of all classes instead of a textual one.2339# hierarchy of all classes instead of a textual one.
2340# The default value is: YES.
2341# This tag requires that the tag HAVE_DOT is set to YES.
18532342
1854GRAPHICAL_HIERARCHY = YES2343GRAPHICAL_HIERARCHY = YES
18552344
1856# If the DIRECTORY_GRAPH and HAVE_DOT tags are set to YES2345# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
1857# then doxygen will show the dependencies a directory has on other directories2346# dependencies a directory has on other directories in a graphical way. The
1858# in a graphical way. The dependency relations are determined by the #include2347# dependency relations are determined by the #include relations between the
1859# relations between the files in the directories.2348# files in the directories.
2349# The default value is: YES.
2350# This tag requires that the tag HAVE_DOT is set to YES.
18602351
1861DIRECTORY_GRAPH = YES2352DIRECTORY_GRAPH = YES
18622353
1863# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images2354# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
1864# generated by dot. Possible values are svg, png, jpg, or gif.2355# generated by dot. For an explanation of the image formats see the section
1865# If left blank png will be used. If you choose svg you need to set2356# output formats in the documentation of the dot tool (Graphviz (see:
1866# HTML_FILE_EXTENSION to xhtml in order to make the SVG files2357# http://www.graphviz.org/)).
1867# visible in IE 9+ (other browsers do not have this requirement).2358# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
2359# to make the SVG files visible in IE 9+ (other browsers do not have this
2360# requirement).
2361# Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd,
2362# png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo,
2363# gif:cairo:gd, gif:gd, gif:gd:gd, svg, png:gd, png:gd:gd, png:cairo,
2364# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
2365# png:gdiplus:gdiplus.
2366# The default value is: png.
2367# This tag requires that the tag HAVE_DOT is set to YES.
18682368
1869DOT_IMAGE_FORMAT = svg2369DOT_IMAGE_FORMAT = svg
18702370
1871# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to2371# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
1872# enable generation of interactive SVG images that allow zooming and panning.2372# enable generation of interactive SVG images that allow zooming and panning.
1873# Note that this requires a modern browser other than Internet Explorer.2373#
1874# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you2374# Note that this requires a modern browser other than Internet Explorer. Tested
1875# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files2375# and working are Firefox, Chrome, Safari, and Opera.
1876# visible. Older versions of IE do not have SVG support.2376# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
2377# the SVG files visible. Older versions of IE do not have SVG support.
2378# The default value is: NO.
2379# This tag requires that the tag HAVE_DOT is set to YES.
18772380
1878INTERACTIVE_SVG = NO2381INTERACTIVE_SVG = NO
18792382
1880# The tag DOT_PATH can be used to specify the path where the dot tool can be2383# The DOT_PATH tag can be used to specify the path where the dot tool can be
1881# found. If left blank, it is assumed the dot tool can be found in the path.2384# found. If left blank, it is assumed the dot tool can be found in the path.
2385# This tag requires that the tag HAVE_DOT is set to YES.
18822386
1883DOT_PATH =2387DOT_PATH =
18842388
1885# The DOTFILE_DIRS tag can be used to specify one or more directories that2389# The DOTFILE_DIRS tag can be used to specify one or more directories that
1886# contain dot files that are included in the documentation (see the2390# contain dot files that are included in the documentation (see the \dotfile
1887# \dotfile command).2391# command).
2392# This tag requires that the tag HAVE_DOT is set to YES.
18882393
1889DOTFILE_DIRS =2394DOTFILE_DIRS =
18902395
1891# The MSCFILE_DIRS tag can be used to specify one or more directories that2396# The MSCFILE_DIRS tag can be used to specify one or more directories that
1892# contain msc files that are included in the documentation (see the2397# contain msc files that are included in the documentation (see the \mscfile
1893# \mscfile command).2398# command).
18942399
1895MSCFILE_DIRS =2400MSCFILE_DIRS =
18962401
1897# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of2402# The DIAFILE_DIRS tag can be used to specify one or more directories that
1898# nodes that will be shown in the graph. If the number of nodes in a graph2403# contain dia files that are included in the documentation (see the \diafile
1899# becomes larger than this value, doxygen will truncate the graph, which is2404# command).
1900# visualized by representing a node as a red box. Note that doxygen if the2405
1901# number of direct children of the root node in a graph is already larger than2406DIAFILE_DIRS =
1902# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note2407
1903# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.2408# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
2409# path where java can find the plantuml.jar file. If left blank, it is assumed
2410# PlantUML is not used or called during a preprocessing step. Doxygen will
2411# generate a warning when it encounters a \startuml command in this case and
2412# will not generate output for the diagram.
2413
2414PLANTUML_JAR_PATH =
2415
2416# When using plantuml, the specified paths are searched for files specified by
2417# the !include statement in a plantuml block.
2418
2419PLANTUML_INCLUDE_PATH =
2420
2421# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
2422# that will be shown in the graph. If the number of nodes in a graph becomes
2423# larger than this value, doxygen will truncate the graph, which is visualized
2424# by representing a node as a red box. Note that doxygen if the number of direct
2425# children of the root node in a graph is already larger than
2426# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
2427# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
2428# Minimum value: 0, maximum value: 10000, default value: 50.
2429# This tag requires that the tag HAVE_DOT is set to YES.
19042430
1905DOT_GRAPH_MAX_NODES = 502431DOT_GRAPH_MAX_NODES = 50
19062432
1907# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the2433# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
1908# graphs generated by dot. A depth value of 3 means that only nodes reachable2434# generated by dot. A depth value of 3 means that only nodes reachable from the
1909# from the root by following a path via at most 3 edges will be shown. Nodes2435# root by following a path via at most 3 edges will be shown. Nodes that lay
1910# that lay further from the root node will be omitted. Note that setting this2436# further from the root node will be omitted. Note that setting this option to 1
1911# option to 1 or 2 may greatly reduce the computation time needed for large2437# or 2 may greatly reduce the computation time needed for large code bases. Also
1912# code bases. Also note that the size of a graph can be further restricted by2438# note that the size of a graph can be further restricted by
1913# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.2439# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
2440# Minimum value: 0, maximum value: 1000, default value: 0.
2441# This tag requires that the tag HAVE_DOT is set to YES.
19142442
1915MAX_DOT_GRAPH_DEPTH = 02443MAX_DOT_GRAPH_DEPTH = 0
19162444
1917# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent2445# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
1918# background. This is disabled by default, because dot on Windows does not2446# background. This is disabled by default, because dot on Windows does not seem
1919# seem to support this out of the box. Warning: Depending on the platform used,2447# to support this out of the box.
1920# enabling this option may lead to badly anti-aliased labels on the edges of2448#
1921# a graph (i.e. they become hard to read).2449# Warning: Depending on the platform used, enabling this option may lead to
2450# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
2451# read).
2452# The default value is: NO.
2453# This tag requires that the tag HAVE_DOT is set to YES.
19222454
1923DOT_TRANSPARENT = NO2455DOT_TRANSPARENT = NO
19242456
1925# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output2457# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
1926# files in one run (i.e. multiple -o and -T options on the command line). This2458# files in one run (i.e. multiple -o and -T options on the command line). This
1927# makes dot run faster, but since only newer versions of dot (>1.8.10)2459# makes dot run faster, but since only newer versions of dot (>1.8.10) support
1928# support this, this feature is disabled by default.2460# this, this feature is disabled by default.
2461# The default value is: NO.
2462# This tag requires that the tag HAVE_DOT is set to YES.
19292463
1930DOT_MULTI_TARGETS = NO2464DOT_MULTI_TARGETS = NO
19312465
1932# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will2466# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
1933# generate a legend page explaining the meaning of the various boxes and2467# explaining the meaning of the various boxes and arrows in the dot generated
1934# arrows in the dot generated graphs.2468# graphs.
2469# The default value is: YES.
2470# This tag requires that the tag HAVE_DOT is set to YES.
19352471
1936GENERATE_LEGEND = YES2472GENERATE_LEGEND = YES
19372473
1938# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will2474# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
1939# remove the intermediate dot files that are used to generate2475# files that are used to generate the various graphs.
1940# the various graphs.2476# The default value is: YES.
2477# This tag requires that the tag HAVE_DOT is set to YES.
19412478
1942DOT_CLEANUP = YES2479DOT_CLEANUP = YES
19432480
=== modified file 'doc/abi_compatibility_tools.md'
--- doc/abi_compatibility_tools.md 2016-05-03 06:55:25 +0000
+++ doc/abi_compatibility_tools.md 2016-11-29 04:47:53 +0000
@@ -11,7 +11,7 @@
1111
12 Compiles all the public libraries in the current tree and checks their ABI against the latest released archive version12 Compiles all the public libraries in the current tree and checks their ABI against the latest released archive version
1313
14* **make abi-check-<library>**14* **make abi-check-\<library>**
1515
16 Compiles only the specified library in the current tree and checks its ABI against the latest released archive version16 Compiles only the specified library in the current tree and checks its ABI against the latest released archive version
1717
1818
=== modified file 'doc/building_source_for_arm.md'
--- doc/building_source_for_arm.md 2016-01-29 08:18:22 +0000
+++ doc/building_source_for_arm.md 2016-11-29 04:47:53 +0000
@@ -71,7 +71,7 @@
71Emulated sbuild package generation71Emulated sbuild package generation
72----------------------------------72----------------------------------
7373
74This uses qemu to compile the package. Substitute <version_string> for the .dsc74This uses qemu to compile the package. Substitute \<version_string> for the .dsc
75file name generated by the debuild command.75file name generated by the debuild command.
7676
77 $ cd mir_source_dir77 $ cd mir_source_dir
@@ -85,11 +85,11 @@
85This uses a cross-compile toolchain to compile the package, and generally 85This uses a cross-compile toolchain to compile the package, and generally
86should be faster than the emulated sbuild package generation.86should be faster than the emulated sbuild package generation.
8787
88Substitute <version_string> for the .dsc file name generated by the debuild 88Substitute \<version_string> for the .dsc file name generated by the debuild
89command.89command.
9090
91 $ cd mir_source_dir91 $ cd mir_source_dir
92 $ debuild -S -uc -us92 $ debuild -S -uc -us
93 $ cd .. 93 $ cd ..
94 $ sbuild -d vivid --host armhf --build amd64 mir_<version_string>.dsc94 $ sbuild -d vivid --host armhf --build amd64 mir_\<version_string>.dsc
9595
9696
=== modified file 'doc/component_reports.md'
--- doc/component_reports.md 2015-04-28 07:54:10 +0000
+++ doc/component_reports.md 2016-11-29 04:47:53 +0000
@@ -23,6 +23,7 @@
23display-report | log,lttng23display-report | log,lttng
24input-report | log,lttng24input-report | log,lttng
25legacy-input-report | log25legacy-input-report | log
26seat-report | log
26msg-processor-report | log,lttng27msg-processor-report | log,lttng
27session-mediator-report | log,lttng28session-mediator-report | log,lttng
28scene-report | log,lttng29scene-report | log,lttng
2930
=== modified file 'doc/footer.html.in'
--- doc/footer.html.in 2015-06-17 05:20:42 +0000
+++ doc/footer.html.in 2016-11-29 04:47:53 +0000
@@ -1,5 +1,5 @@
1<hr>1<hr>
2<p align="center">Copyright &copy; 2012-2015 Canonical Ltd. <br />2<p align="center">Copyright &copy; 2012-2016 Canonical Ltd. <br />
3Generated on @DATE_TODAY@</p>3Generated on @DATE_TODAY@</p>
4</body>4</body>
5</html>5</html>
66
=== modified file 'doc/mainpage.md'
--- doc/mainpage.md 2016-05-03 06:55:25 +0000
+++ doc/mainpage.md 2016-11-29 04:47:53 +0000
@@ -47,8 +47,8 @@
47Getting involved47Getting involved
48----------------48----------------
4949
50The best place to ask questions and discuss about the Mir project is the50The best place to ask questions and discuss about the Mir project is
51#ubuntu-mir IRC channel on freenode.51the \#ubuntu-mir IRC channel on freenode.
5252
53The Mir project is hosted on Launchpad: https://launchpad.net/mir53The Mir project is hosted on Launchpad: https://launchpad.net/mir
5454
@@ -98,8 +98,6 @@
98 "server_example_window_management.cpp: simple window management examples"98 "server_example_window_management.cpp: simple window management examples"
99 - \subpage server_example_canonical_window_manager.cpp 99 - \subpage server_example_canonical_window_manager.cpp
100 "server_example_canonical_window_manager.cpp: canonical window management policy"100 "server_example_canonical_window_manager.cpp: canonical window management policy"
101 - \subpage server_example_tiling_window_manager.cpp
102 "server_example_tiling_window_manager.cpp: an alternative window management policy"
103 - \subpage server_example_custom_compositor.cpp 101 - \subpage server_example_custom_compositor.cpp
104 "server_example_custom_compositor.cpp: demonstrate writing an alternative GL rendering code"102 "server_example_custom_compositor.cpp: demonstrate writing an alternative GL rendering code"
105103
@@ -112,5 +110,5 @@
112 - \ref component_reports110 - \ref component_reports
113 - \ref dso_versioning_guide111 - \ref dso_versioning_guide
114 - \ref abi_compatibility_tools112 - \ref abi_compatibility_tools
115 - \ref mir_performance_framework113 - \ref performance_framework
116 - \ref latency "Measuring visual latency"114 - \ref latency "Measuring visual latency"
117115
=== modified file 'doc/measuring_latency.md'
--- doc/measuring_latency.md 2016-04-07 03:13:18 +0000
+++ doc/measuring_latency.md 2016-11-29 04:47:53 +0000
@@ -22,3 +22,31 @@
22 4. Run `mirvanity`22 4. Run `mirvanity`
23 5. Wait until the output (in the console/stdout for now) shows that the23 5. Wait until the output (in the console/stdout for now) shows that the
24 test is complete (which means enough data has been gathered).24 test is complete (which means enough data has been gathered).
25
26Accuracy
27--------
28
29A common question is how accurate mirvanity's results are. An LCD monitor
30typically refreshes at 60Hz on an interval of about 16.6ms, and you have
31the added variability of the camera which even at high speed has a frame
32interval of about 5ms. So surely you have at least 22ms of variability?
33
34Yes indeed instantaneous measurements will have wide variability that is
35the sum of the display and camera frame intervals. However both of these
36devices are very precise even though they're not in phase. So using
37many samples over a short period of time, `mirvanity` calculates the
38expected variability and compares it to the measured variability. After
39the expectation starts to match the measurement you have a good estimate of
40the baseline latency and estimated error range. `mirvanity` prints out this
41error and for a typical 60Hz monitor and common 187Hz PlayStation Eye camera,
42we observe pretty much the variability expected of around 22ms.
43
44Knowing this variability is the sum of both waves, you can simply take the
45trough (or peak) as your measurement and thus eliminate the variability of
46the display and camera from the results. If you take the trough, you are
47excluding all display and camera latency. If you take the peak then you are
48including worst case display and camera latency. `mirvanity` reports all of
49these numbers for completeness. This is based on the
50[Superposition Principle](https://en.wikipedia.org/wiki/Superposition_principle)
51and typically yields a stable measurement with approximately 3ms or less
52random variation.
2553
=== modified file 'doc/setup_vmware_for_mir.md'
--- doc/setup_vmware_for_mir.md 2016-01-29 08:18:22 +0000
+++ doc/setup_vmware_for_mir.md 2016-11-29 04:47:53 +0000
@@ -6,7 +6,7 @@
61. Go to https://my.vmware.com/web/vmware/downloads and download61. Go to https://my.vmware.com/web/vmware/downloads and download
7 VMware Player (last in Desktop & End-User Computing section).7 VMware Player (last in Desktop & End-User Computing section).
88
92. Install VMware player with: sudo bash VMware-Player-<VERSION>.x86_64.bundle92. Install VMware player with: sudo bash VMware-Player-\<VERSION>.x86_64.bundle
1010
113. Get the latest vivid daily iso (*not* the unity-next iso!).113. Get the latest vivid daily iso (*not* the unity-next iso!).
1212
1313
=== modified file 'examples/CMakeLists.txt'
--- examples/CMakeLists.txt 2016-06-02 05:33:50 +0000
+++ examples/CMakeLists.txt 2016-11-29 04:47:53 +0000
@@ -70,6 +70,12 @@
70target_link_libraries(mir_demo_client_target70target_link_libraries(mir_demo_client_target
71 eglapp71 eglapp
72)72)
73mir_add_wrapped_executable(mir_demo_client_pointer_confinement
74 pointer_confinement.c
75)
76target_link_libraries(mir_demo_client_pointer_confinement
77 eglapp
78)
73mir_add_wrapped_executable(mir_demo_client_camera79mir_add_wrapped_executable(mir_demo_client_camera
74 camera.c80 camera.c
75)81)
@@ -180,6 +186,7 @@
180 ${PROJECT_SOURCE_DIR}/include/client186 ${PROJECT_SOURCE_DIR}/include/client
181 ${PROJECT_SOURCE_DIR}/include/platform187 ${PROJECT_SOURCE_DIR}/include/platform
182 ${PROJECT_SOURCE_DIR}/include/renderers/gl188 ${PROJECT_SOURCE_DIR}/include/renderers/gl
189 ${PROJECT_SOURCE_DIR}/include/renderers/sw
183 ${GL_INCLUDE_DIRS}190 ${GL_INCLUDE_DIRS}
184)191)
185192
186193
=== modified file 'examples/animated_cursor_demo_client.c'
--- examples/animated_cursor_demo_client.c 2016-05-03 06:55:25 +0000
+++ examples/animated_cursor_demo_client.c 2016-11-29 04:47:53 +0000
@@ -84,7 +84,7 @@
84{84{
85 unsigned int width = 128, height = 128;85 unsigned int width = 128, height = 128;
8686
87 if (!mir_eglapp_init(argc, argv, &width, &height))87 if (!mir_eglapp_init(argc, argv, &width, &height, NULL))
88 return 1;88 return 1;
8989
90 glClearColor(0.5, 0.5, 0.5, mir_eglapp_background_opacity);90 glClearColor(0.5, 0.5, 0.5, mir_eglapp_background_opacity);
@@ -99,7 +99,7 @@
99 animate_cursor(stream);99 animate_cursor(stream);
100 }100 }
101101
102 mir_eglapp_shutdown();102 mir_eglapp_cleanup();
103103
104 return 0;104 return 0;
105}105}
106106
=== modified file 'examples/camera.c'
--- examples/camera.c 2016-05-03 06:55:25 +0000
+++ examples/camera.c 2016-11-29 04:47:53 +0000
@@ -87,6 +87,7 @@
87{87{
88 (void)surface;88 (void)surface;
89 State *state = (State*)context;89 State *state = (State*)context;
90 bool handled = true;
9091
91 // FIXME: We presently need to know that events come in on a different92 // FIXME: We presently need to know that events come in on a different
92 // thread to main (LP: #1194384). When that's resolved, simple93 // thread to main (LP: #1194384). When that's resolved, simple
@@ -95,21 +96,19 @@
9596
96 switch (mir_event_get_type(event))97 switch (mir_event_get_type(event))
97 {98 {
98 case mir_event_type_input:
99 break;
100 case mir_event_type_resize:99 case mir_event_type_resize:
101 state->resized = true;100 state->resized = true;
102 break;101 break;
103 case mir_event_type_close_surface:
104 // TODO: eglapp.h needs a quit() function or different behaviour of
105 // mir_eglapp_shutdown().
106 raise(SIGTERM); // handled by eglapp
107 break;
108 default:102 default:
103 handled = false;
109 break;104 break;
110 }105 }
111106
112 pthread_mutex_unlock(&state->mutex);107 pthread_mutex_unlock(&state->mutex);
108
109 if (!handled)
110 mir_eglapp_handle_event(surface, event, NULL);
111
113}112}
114113
115static void fourcc_string(__u32 x, char str[5])114static void fourcc_string(__u32 x, char str[5])
@@ -369,17 +368,49 @@
369 // TODO: Selectable between high-res grey vs half-res colour?368 // TODO: Selectable between high-res grey vs half-res colour?
370 const char * const fshadersrc = yuyv_quickcolour_fshadersrc;369 const char * const fshadersrc = yuyv_quickcolour_fshadersrc;
371370
372 Camera *cam = open_camera("/dev/video0", camera_pref_resolution, 1);371 unsigned int win_width = 1;
372 unsigned int win_height = 1;
373
374 char const* dev_video = "/dev/video0";
375 mir_eglapp_bool ultrafast = 0;
376 struct mir_eglapp_arg custom_args[] =
377 {
378 {"-d <path>", "=", &dev_video, "Path to camera device"},
379 {"-u", "!", &ultrafast, "Ultra fast mode (low resolution)"},
380 {NULL, NULL, NULL, NULL},
381 };
382 if (!mir_eglapp_init(argc, argv, &win_width, &win_height, custom_args))
383 return 1;
384
385 // By default we prefer high resolution and low CPU usage but if you
386 // ask for ultrafast mode expect low resolution and high CPU usage...
387 enum CameraPref pref = camera_pref_resolution;
388 if (ultrafast)
389 {
390 pref = camera_pref_speed;
391 mir_surface_set_swapinterval(mir_eglapp_native_surface(), 0);
392 }
393 Camera *cam = open_camera(dev_video, pref, 1);
373 if (!cam)394 if (!cam)
374 {395 {
375 fprintf(stderr, "Failed to set up camera device\n");396 fprintf(stderr, "Failed to set up camera device\n");
376 return 0;397 return 0;
377 }398 }
378399
379 unsigned int win_width = cam->pix.width;400 MirSurface* surface = mir_eglapp_native_surface();
380 unsigned int win_height = cam->pix.height;401 if (win_width == 1) /* Fullscreen was not chosen */
381 if (!mir_eglapp_init(argc, argv, &win_width, &win_height))402 {
382 return 1;403 /* Chicken or egg? init before open_camera, before size is known */
404 MirConnection* connection = mir_eglapp_native_connection();
405 MirSurfaceSpec* changes =
406 mir_connection_create_spec_for_changes(connection);
407 win_width = cam->pix.width;
408 win_height = cam->pix.height;
409 mir_surface_spec_set_width(changes, win_width);
410 mir_surface_spec_set_height(changes, win_height);
411 mir_surface_apply_spec(surface, changes);
412 mir_surface_spec_release(changes);
413 }
383414
384 GLuint vshader = load_shader(vshadersrc, GL_VERTEX_SHADER);415 GLuint vshader = load_shader(vshadersrc, GL_VERTEX_SHADER);
385 assert(vshader);416 assert(vshader);
@@ -439,7 +470,6 @@
439 PTHREAD_MUTEX_INITIALIZER,470 PTHREAD_MUTEX_INITIALIZER,
440 true471 true
441 };472 };
442 MirSurface *surface = mir_eglapp_native_surface();
443 mir_surface_set_event_handler(surface, on_event, &state);473 mir_surface_set_event_handler(surface, on_event, &state);
444474
445 bool first_frame = true;475 bool first_frame = true;
@@ -534,7 +564,7 @@
534 }564 }
535565
536 mir_surface_set_event_handler(surface, NULL, NULL);566 mir_surface_set_event_handler(surface, NULL, NULL);
537 mir_eglapp_shutdown();567 mir_eglapp_cleanup();
538 close_camera(cam);568 close_camera(cam);
539569
540 return 0;570 return 0;
541571
=== modified file 'examples/client_touch_validator.cpp'
--- examples/client_touch_validator.cpp 2015-06-02 20:14:56 +0000
+++ examples/client_touch_validator.cpp 2016-11-29 04:47:53 +0000
@@ -162,7 +162,7 @@
162{162{
163 unsigned int width = 0, height = 0;163 unsigned int width = 0, height = 0;
164164
165 if (!mir_eglapp_init(argc, argv, &width, &height))165 if (!mir_eglapp_init(argc, argv, &width, &height, NULL))
166 return 1;166 return 1;
167167
168 TouchState state;168 TouchState state;
@@ -194,7 +194,7 @@
194 sleep(1);194 sleep(1);
195 }195 }
196196
197 mir_eglapp_shutdown();197 mir_eglapp_cleanup();
198198
199 return 0;199 return 0;
200}200}
201201
=== modified file 'examples/cursors_demo_client.c'
--- examples/cursors_demo_client.c 2016-07-20 11:16:01 +0000
+++ examples/cursors_demo_client.c 2016-11-29 04:47:53 +0000
@@ -58,7 +58,7 @@
58{58{
59 unsigned int width = 128, height = 128;59 unsigned int width = 128, height = 128;
6060
61 if (!mir_eglapp_init(argc, argv, &width, &height))61 if (!mir_eglapp_init(argc, argv, &width, &height, NULL))
62 return 1;62 return 1;
6363
64 glClearColor(0.5, 0.5, 0.5, mir_eglapp_background_opacity);64 glClearColor(0.5, 0.5, 0.5, mir_eglapp_background_opacity);
@@ -72,7 +72,7 @@
72 usleep(100000);72 usleep(100000);
73 }73 }
7474
75 mir_eglapp_shutdown();75 mir_eglapp_cleanup();
7676
77 return 0;77 return 0;
78}78}
7979
=== modified file 'examples/demo_client_display_config.c'
--- examples/demo_client_display_config.c 2015-04-28 07:54:10 +0000
+++ examples/demo_client_display_config.c 2016-11-29 04:47:53 +0000
@@ -347,7 +347,7 @@
347{347{
348 unsigned int width = 256, height = 256;348 unsigned int width = 256, height = 256;
349349
350 if (!mir_eglapp_init(argc, argv, &width, &height))350 if (!mir_eglapp_init(argc, argv, &width, &height, NULL))
351 {351 {
352 printf("A demo client that allows changing the display configuration. While the client\n"352 printf("A demo client that allows changing the display configuration. While the client\n"
353 "has the focus, use the following keys to change and get information about the\n"353 "has the focus, use the following keys to change and get information about the\n"
@@ -390,7 +390,7 @@
390 }390 }
391 }391 }
392392
393 mir_eglapp_shutdown();393 mir_eglapp_cleanup();
394394
395 return 0;395 return 0;
396}396}
397397
=== modified file 'examples/eglapp.c'
--- examples/eglapp.c 2016-05-03 06:55:25 +0000
+++ examples/eglapp.c 2016-11-29 04:47:53 +0000
@@ -22,6 +22,7 @@
22#include <stdlib.h>22#include <stdlib.h>
23#include <signal.h>23#include <signal.h>
24#include <time.h>24#include <time.h>
25#include <string.h>
25#include <EGL/egl.h>26#include <EGL/egl.h>
26#include <GLES2/gl2.h>27#include <GLES2/gl2.h>
2728
@@ -36,6 +37,7 @@
36static EGLDisplay egldisplay;37static EGLDisplay egldisplay;
37static EGLSurface eglsurface;38static EGLSurface eglsurface;
38static volatile sig_atomic_t running = 0;39static volatile sig_atomic_t running = 0;
40static double refresh_rate = 0.0;
3941
40#define CHECK(_cond, _err) \42#define CHECK(_cond, _err) \
41 if (!(_cond)) \43 if (!(_cond)) \
@@ -44,7 +46,7 @@
44 return 0; \46 return 0; \
45 }47 }
4648
47void mir_eglapp_shutdown(void)49void mir_eglapp_cleanup(void)
48{50{
49 eglMakeCurrent(egldisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);51 eglMakeCurrent(egldisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
50 eglTerminate(egldisplay);52 eglTerminate(egldisplay);
@@ -54,11 +56,16 @@
54 connection = NULL;56 connection = NULL;
55}57}
5658
59void mir_eglapp_quit(void)
60{
61 running = 0;
62}
63
57static void shutdown(int signum)64static void shutdown(int signum)
58{65{
59 if (running)66 if (running)
60 {67 {
61 running = 0;68 mir_eglapp_quit();
62 printf("Signal %d received. Good night.\n", signum);69 printf("Signal %d received. Good night.\n", signum);
63 }70 }
64}71}
@@ -106,25 +113,48 @@
106static void mir_eglapp_handle_surface_event(MirSurfaceEvent const* sev)113static void mir_eglapp_handle_surface_event(MirSurfaceEvent const* sev)
107{114{
108 MirSurfaceAttrib attrib = mir_surface_event_get_attribute(sev);115 MirSurfaceAttrib attrib = mir_surface_event_get_attribute(sev);
109 if (attrib != mir_surface_attrib_visibility)116 int value = mir_surface_event_get_attribute_value(sev);
110 return;117
111 switch (mir_surface_event_get_attribute_value(sev))118 switch (attrib)
112 {119 {
113 case mir_surface_visibility_exposed:120 case mir_surface_attrib_visibility:
114 printf("Surface exposed\n");121 printf("Surface %s\n", value == mir_surface_visibility_exposed ?
122 "exposed" : "occluded");
115 break;123 break;
116 case mir_surface_visibility_occluded:124 case mir_surface_attrib_dpi:
117 printf("Surface occluded\n");125 // value is still zero - never implemented. Deprecate? (LP: #1559831)
118 break;126 break;
119 default:127 default:
120 break;128 break;
121 }129 }
122}130}
123131
124static void mir_eglapp_handle_event(MirSurface* surface, MirEvent const* ev, void* context)132static void handle_surface_output_event(MirSurfaceOutputEvent const* out)
133{
134 static char const* const form_factor_name[6] =
135 {"unknown", "phone", "tablet", "monitor", "TV", "projector"};
136 unsigned ff = mir_surface_output_event_get_form_factor(out);
137 char const* form_factor = (ff < 6) ? form_factor_name[ff] : "out-of-range";
138
139 refresh_rate = mir_surface_output_event_get_refresh_rate(out);
140
141 printf("Surface is on output %u: %d DPI, scale %.1fx, %s form factor, %.2fHz\n",
142 mir_surface_output_event_get_output_id(out),
143 mir_surface_output_event_get_dpi(out),
144 mir_surface_output_event_get_scale(out),
145 form_factor,
146 refresh_rate);
147}
148
149double mir_eglapp_display_hz(void)
150{
151 return refresh_rate;
152}
153
154void mir_eglapp_handle_event(MirSurface* surface, MirEvent const* ev, void* unused)
125{155{
126 (void) surface;156 (void) surface;
127 (void) context;157 (void) unused;
128 158
129 switch (mir_event_get_type(ev))159 switch (mir_event_get_type(ev))
130 {160 {
@@ -134,6 +164,9 @@
134 case mir_event_type_surface:164 case mir_event_type_surface:
135 mir_eglapp_handle_surface_event(mir_event_get_surface_event(ev));165 mir_eglapp_handle_surface_event(mir_event_get_surface_event(ev));
136 break;166 break;
167 case mir_event_type_surface_output:
168 handle_surface_output_event(mir_event_get_surface_output_event(ev));
169 break;
137 case mir_event_type_resize:170 case mir_event_type_resize:
138 /*171 /*
139 * FIXME: https://bugs.launchpad.net/mir/+bug/1194384172 * FIXME: https://bugs.launchpad.net/mir/+bug/1194384
@@ -181,8 +214,115 @@
181 return output;214 return output;
182}215}
183216
184mir_eglapp_bool mir_eglapp_init(int argc, char *argv[],217static void show_help(struct mir_eglapp_arg const* const* arg_lists)
185 unsigned int *width, unsigned int *height)218{
219 int const indent = 2, desc_offset = 2;
220 struct mir_eglapp_arg const* const* list;
221 int max_len = 0;
222
223 for (list = arg_lists; *list != NULL; ++list)
224 {
225 struct mir_eglapp_arg const* arg;
226 for (arg = *list; arg->syntax != NULL; ++arg)
227 {
228 int len = indent + strlen(arg->syntax);
229 if (len > max_len)
230 max_len = len;
231 }
232 }
233 for (list = arg_lists; *list != NULL; ++list)
234 {
235 struct mir_eglapp_arg const* arg;
236 for (arg = *list; arg->syntax != NULL; ++arg)
237 {
238 int len = 0, remainder = 0;
239 printf("%*c%s%n", indent, ' ', arg->syntax, &len);
240 remainder = desc_offset + max_len - len;
241 printf("%*c%s", remainder, ' ', arg->description);
242 switch (arg->format[0])
243 {
244 case '=':
245 {
246 char const* str = *(char const**)arg->variable;
247 if (str)
248 printf(" [%s]", str);
249 }
250 break;
251 case '%':
252 switch (arg->format[1])
253 {
254 case 'u': printf(" [%u]", *(unsigned*)arg->variable); break;
255 case 'f': printf(" [%.1f]", *(float*)arg->variable); break;
256 default: break;
257 }
258 default:
259 break;
260 }
261 printf("\n");
262 }
263 }
264}
265
266static mir_eglapp_bool parse_args(int argc, char *argv[],
267 struct mir_eglapp_arg const* const* arg_lists)
268{
269 for (int i = 1; i < argc; ++i)
270 {
271 char const* operator = argv[i];
272 struct mir_eglapp_arg const* const* list;
273 for (list = arg_lists; *list != NULL; ++list)
274 {
275 struct mir_eglapp_arg const* arg;
276 for (arg = *list; arg->syntax != NULL; ++arg)
277 {
278 char const* space = strchr(arg->syntax, ' ');
279 int operator_len = space != NULL ? space - arg->syntax
280 : (int)strlen(arg->syntax);
281 if (!strncmp(operator, arg->syntax, operator_len))
282 {
283 char const* operand = operator + operator_len;
284 if (!operand[0] && strchr("=%", arg->format[0]))
285 {
286 if (i+1 < argc)
287 operand = argv[++i];
288 else
289 {
290 fprintf(stderr, "Missing argument for %s\n",
291 operator);
292 return 0;
293 }
294 }
295 switch (arg->format[0])
296 {
297 case '$': return 1; /* -- is special */
298 case '!': *(mir_eglapp_bool*)arg->variable = 1; break;
299 case '=': *(char const**)arg->variable = operand; break;
300 case '%':
301 if (!sscanf(operand, arg->format, arg->variable))
302 {
303 fprintf(stderr,
304 "Invalid option: %s (expected %s)\n",
305 operand, arg->syntax);
306 return 0;
307 }
308 break;
309 default: abort(); break;
310 }
311 goto next;
312 }
313 }
314 }
315 fprintf(stderr, "Unknown option: %s\n", operator);
316 return 0;
317 next:
318 (void)0; /* Stop compiler warnings about label at the end */
319 }
320 return 1;
321}
322
323mir_eglapp_bool mir_eglapp_init(int argc, char* argv[],
324 unsigned int* width, unsigned int* height,
325 struct mir_eglapp_arg const* custom_args)
186{326{
187 EGLint ctxattribs[] =327 EGLint ctxattribs[] =
188 {328 {
@@ -195,153 +335,60 @@
195 EGLBoolean ok;335 EGLBoolean ok;
196 EGLint swapinterval = 1;336 EGLint swapinterval = 1;
197 unsigned int output_id = mir_display_output_id_invalid;337 unsigned int output_id = mir_display_output_id_invalid;
198 char *mir_socket = NULL;338 char const* mir_socket = NULL;
339 char const* dims = NULL;
199 char const* cursor_name = mir_default_cursor_name;340 char const* cursor_name = mir_default_cursor_name;
200 unsigned int rgb_bits = 8;341 unsigned int rgb_bits = 8;
201342 mir_eglapp_bool help = 0, no_vsync = 0, quiet = 0;
202 if (argc > 1)343 mir_eglapp_bool fullscreen = !*width || !*height;
203 {344
204 int i;345 struct mir_eglapp_arg const default_args[] =
205 for (i = 1; i < argc; i++)346 {
206 {347 {"-a <name>", "=", &appname, "Set application name"},
207 mir_eglapp_bool help = 0;348 {"-b <0.0-0.1>", "%f", &mir_eglapp_background_opacity, "Background opacity"},
208 const char *arg = argv[i];349 {"-c <name>", "=", &cursor_name, "Request cursor image by name"},
209350 {"-e <nbits>", "%u", &rgb_bits, "EGL colour channel size"},
210 if (arg[0] == '-')351 {"-f", "!", &fullscreen, "Force full screen"},
211 {352 {"-h", "!", &help, "Show this help text"},
212 if (arg[1] == '-' && arg[2] == '\0')353 {"-m <socket>", "=", &mir_socket, "Mir server socket"},
213 break;354 {"-n", "!", &no_vsync, "Don't sync to vblank"},
214355 {"-o <id>", "%u", &output_id, "Force placement on output monitor ID"},
215 switch (arg[1])356 {"-q", "!", &quiet, "Quiet mode (no messages output)"},
216 {357 {"-s <width>x<height>", "=", &dims, "Force surface size"},
217 case 'a':358 {"--", "$", NULL, "Ignore all arguments that follow"},
218 appname = argv[++i];359 {NULL, NULL, NULL, NULL}
219 break;360 };
220 case 'b':361
221 {362 struct mir_eglapp_arg const* const arg_lists[] =
222 float alpha = 1.0f;363 {
223 arg += 2;364 default_args,
224 if (!arg[0] && i < argc-1)365 custom_args,
225 {366 NULL
226 i++;367 };
227 arg = argv[i];368
228 }369 if (!parse_args(argc, argv, arg_lists))
229 if (sscanf(arg, "%f", &alpha) == 1)370 return 0;
230 {371
231 mir_eglapp_background_opacity = alpha;372 if (help)
232 }373 {
233 else374 printf("Usage: %s [<options>]\n", argv[0]);
234 {375 show_help(arg_lists);
235 printf("Invalid opacity value: %s\n", arg);376 return 0;
236 help = 1;377 }
237 }378
238 }379 if (no_vsync)
239 break;380 swapinterval = 0;
240 case 'e':381
241 {382 if (dims && (2 != sscanf(dims, "%ux%u", width, height)))
242 arg += 2;383 {
243 if (!arg[0] && i < argc-1)384 fprintf(stderr, "Invalid dimensions: %s\n", dims);
244 {385 return 0;
245 ++i;386 }
246 arg = argv[i];387
247 }388 if (quiet)
248 if (sscanf(arg, "%u", &rgb_bits) != 1)389 {
249 {390 FILE *unused = freopen("/dev/null", "a", stdout);
250 printf("Invalid colour channel depth: %s\n", arg);391 (void)unused;
251 help = 1;
252 }
253 }
254 break;
255 case 'n':
256 swapinterval = 0;
257 break;
258 case 'o':
259 {
260 unsigned int the_id = 0;
261 arg += 2;
262 if (!arg[0] && i < argc-1)
263 {
264 i++;
265 arg = argv[i];
266 }
267 if (sscanf(arg, "%u", &the_id) == 1)
268 {
269 output_id = the_id;
270 }
271 else
272 {
273 printf("Invalid output ID: %s\n", arg);
274 help = 1;
275 }
276 }
277 break;
278 case 'f':
279 *width = 0;
280 *height = 0;
281 break;
282 case 's':
283 {
284 unsigned int w, h;
285 arg += 2;
286 if (!arg[0] && i < argc-1)
287 {
288 i++;
289 arg = argv[i];
290 }
291 if (sscanf(arg, "%ux%u", &w, &h) == 2)
292 {
293 *width = w;
294 *height = h;
295 }
296 else
297 {
298 printf("Invalid size: %s\n", arg);
299 help = 1;
300 }
301 }
302 break;
303 case 'm':
304 mir_socket = argv[++i];
305 break;
306 case 'c':
307 cursor_name = argv[++i];
308 break;
309 case 'q':
310 {
311 FILE *unused = freopen("/dev/null", "a", stdout);
312 (void)unused;
313 break;
314 }
315 case 'h':
316 default:
317 help = 1;
318 break;
319 }
320 }
321 else
322 {
323 help = 1;
324 }
325
326 if (help)
327 {
328 printf("Usage: %s [<options>]\n"
329 " -a name Set application name\n"
330 " -b Background opacity (0.0 - 1.0)\n"
331 " -e EGL colour channel size in bits\n"
332 " -h Show this help text\n"
333 " -f Force full screen\n"
334 " -o ID Force placement on output monitor ID\n"
335 " -n Don't sync to vblank\n"
336 " -m socket Mir server socket\n"
337 " -s WIDTHxHEIGHT Force surface size\n"
338 " -c name Request cursor image by name\n"
339 " -q Quiet mode (no messages output)\n"
340 " -- Ignore all arguments that follow\n"
341 , argv[0]);
342 return 0;
343 }
344 }
345 }392 }
346393
347 connection = mir_connect_sync(mir_socket, appname);394 connection = mir_connect_sync(mir_socket, appname);
@@ -409,10 +456,11 @@
409 mode->horizontal_resolution, mode->vertical_resolution,456 mode->horizontal_resolution, mode->vertical_resolution,
410 output->position_x, output->position_y);457 output->position_x, output->position_y);
411458
412 if (*width == 0)459 if (fullscreen) /* TODO: Use surface states for this */
460 {
413 *width = mode->horizontal_resolution;461 *width = mode->horizontal_resolution;
414 if (*height == 0)
415 *height = mode->vertical_resolution;462 *height = mode->vertical_resolution;
463 }
416464
417 mir_display_config_destroy(display_config);465 mir_display_config_destroy(display_config);
418466
@@ -459,7 +507,6 @@
459 signal(SIGTERM, shutdown);507 signal(SIGTERM, shutdown);
460 signal(SIGHUP, shutdown);508 signal(SIGHUP, shutdown);
461509
462 printf("Surface %d DPI\n", mir_surface_get_dpi(surface));
463 eglSwapInterval(egldisplay, swapinterval);510 eglSwapInterval(egldisplay, swapinterval);
464511
465 running = 1;512 running = 1;
466513
=== modified file 'examples/eglapp.h'
--- examples/eglapp.h 2015-02-22 07:46:25 +0000
+++ examples/eglapp.h 2016-11-29 04:47:53 +0000
@@ -23,17 +23,31 @@
23extern "C" {23extern "C" {
24#endif24#endif
2525
26typedef int mir_eglapp_bool;
27struct MirConnection;26struct MirConnection;
28struct MirSurface;27struct MirSurface;
28struct MirEvent;
29
30typedef int mir_eglapp_bool;
31
32struct mir_eglapp_arg
33{
34 char const* syntax;
35 char const* format; /* "%" scanf format or "!"=flag, "$"=--, "="=copy */
36 void* variable;
37 char const* description;
38};
2939
30extern float mir_eglapp_background_opacity;40extern float mir_eglapp_background_opacity;
3141
32mir_eglapp_bool mir_eglapp_init(int argc, char *argv[],42mir_eglapp_bool mir_eglapp_init(int argc, char* argv[],
33 unsigned int *width, unsigned int *height);43 unsigned int* width, unsigned int* height,
44 struct mir_eglapp_arg const* custom_args);
34void mir_eglapp_swap_buffers(void);45void mir_eglapp_swap_buffers(void);
46void mir_eglapp_quit(void);
35mir_eglapp_bool mir_eglapp_running(void);47mir_eglapp_bool mir_eglapp_running(void);
36void mir_eglapp_shutdown(void);48void mir_eglapp_cleanup(void);
49void mir_eglapp_handle_event(struct MirSurface* surface, struct MirEvent const* ev, void* unused);
50double mir_eglapp_display_hz(void);
3751
38struct MirConnection* mir_eglapp_native_connection();52struct MirConnection* mir_eglapp_native_connection();
39struct MirSurface* mir_eglapp_native_surface();53struct MirSurface* mir_eglapp_native_surface();
4054
=== modified file 'examples/eglcounter.cpp'
--- examples/eglcounter.cpp 2015-02-22 07:46:25 +0000
+++ examples/eglcounter.cpp 2016-11-29 04:47:53 +0000
@@ -231,7 +231,7 @@
231 GLint linked, col;231 GLint linked, col;
232 unsigned int width = 512, height = 256;232 unsigned int width = 512, height = 256;
233233
234 if (!mir_eglapp_init(argc, argv, &width, &height))234 if (!mir_eglapp_init(argc, argv, &width, &height, NULL))
235 return 1;235 return 1;
236236
237 vshader = load_shader(vshadersrc, GL_VERTEX_SHADER);237 vshader = load_shader(vshadersrc, GL_VERTEX_SHADER);
@@ -274,7 +274,7 @@
274 mir_eglapp_swap_buffers();274 mir_eglapp_swap_buffers();
275 }275 }
276276
277 mir_eglapp_shutdown();277 mir_eglapp_cleanup();
278278
279 return 0;279 return 0;
280}280}
281281
=== modified file 'examples/eglflash.c'
--- examples/eglflash.c 2015-02-22 07:46:25 +0000
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to all changes: