mutter/cogl/meson.build
Jonas Ådahl e5e58f8075
cogl: Add libsysprof capture based tracing
Add the ability to add tracing instrumentation to the code. When
enabled, trace entries will generate a file with timing information
that will be processable by sysprof for generating visualization of
traces over time.

While enabled by default at compile time, it is possible to disable the
expansion of the macros completely by passing --disable-tracing to
./configure.

Tracing is so far only actually done if actually enabled on explicitly
specified threads.

This will be used by Mutter passing the write end of a pipe, where the
read end is sent to Sysprof itself via the D-Bus method 'Capture()'.

By passing that, we have to detect EPIPE that is sent when Sysprof stops
recording. Fortunately, we already ignore the signal at meta_init(), so
no need to add a custom signal handler.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/197
2019-05-31 11:55:56 -03:00

126 lines
2.1 KiB
Meson

cogl_includesubdir = join_paths(pkgname, 'cogl')
cogl_includedir = join_paths(includedir, cogl_includesubdir)
cogl_srcdir = meson.current_source_dir()
cogl_includepath = include_directories('.', 'cogl')
cdata = configuration_data()
cdata.set('HAVE_COGL_GL', have_gl)
cdata.set('HAVE_COGL_GLES2', have_gles2)
cdata.set('HAVE_TRACING', have_profiler)
cdata.set('ENABLE_UNIT_TESTS', have_cogl_tests)
cogl_config_h = configure_file(
input: 'cogl-config.h.meson',
output: 'cogl-config.h',
configuration: cdata)
cogl_pkg_deps = [
glib_dep,
gobject_dep,
]
cogl_pkg_private_deps = [
cairo_dep,
gmodule_no_export_dep,
gdk_pixbuf_dep,
#uprof_dep,
]
if have_profiler
cogl_pkg_private_deps += [
sysprof_dep,
]
endif
if have_wayland
cogl_pkg_deps += [
wayland_server_dep,
]
endif
if have_egl
cogl_pkg_deps += [
egl_dep,
]
endif
if have_x11
cogl_pkg_deps += [
x11_dep,
]
cogl_pkg_private_deps += [
xext_dep,
xfixes_dep,
xdamage_dep,
xcomposite_dep,
xrandr_dep,
]
endif
if have_gl
cogl_pkg_deps += [
gl_dep,
]
endif
if have_gles2
cogl_pkg_deps += [
gles2_dep,
]
endif
cogl_deps = [
cogl_pkg_deps,
cogl_pkg_private_deps,
m_dep,
]
cogl_c_args = [
'-DCOGL_LOCALEDIR="@0@"'.format(localedir),
'-DCOGL_COMPILATION',
]
if have_gl
cogl_c_args += [
'-DCOGL_GL_LIBNAME="@0@"'.format(gl_libname)
]
endif
if have_gles2
cogl_c_args += [
'-DCOGL_GLES2_LIBNAME="@0@"'.format(gles2_libname)
]
endif
cogl_debug_c_args = []
buildtype = get_option('buildtype')
if get_option('debug')
cogl_debug_c_args += [
'-DCOGL_GL_DEBUG',
'-DCOGL_OBJECT_DEBUG',
'-DCOGL_ENABLE_DEBUG',
'-fno-omit-frame-pointer'
]
elif buildtype != 'plain'
cogl_debug_c_args += [
'-DG_DISABLE_CHECKS',
'-DG_DISABLE_CAST_CHECKS'
]
endif
supported_cogl_debug_c_args = cc.get_supported_arguments(cogl_debug_c_args)
cogl_c_args += cogl_debug_c_args
if have_cogl_tests
subdir('test-fixtures')
endif
subdir('cogl')
subdir('cogl-path')
subdir('cogl-pango')
if have_gles2
subdir('cogl-gles2')
endif
if have_cogl_tests
subdir('tests')
endif