Files
sysprof/src/libsysprof-profile/meson.build
Christian Hergert 52684c7a12 libsysprof-profile: start on cpu usage instrument
The goal here is to do the whole thing on a fiber rather than how we were
doing it before. This just gets the counter registration going, but we
need to follow up with the parsing/lseek/etc code.
2023-05-30 18:41:56 -07:00

90 lines
2.7 KiB
Meson

libsysprof_profile_public_sources = [
'sysprof-cpu-usage.c',
'sysprof-instrument.c',
'sysprof-profiler.c',
'sysprof-recording.c',
'sysprof-spawnable.c',
]
libsysprof_profile_private_sources = [
'mapped-ring-buffer-source.c',
'sysprof-controlfd-instrument.c',
'sysprof-podman.c',
'sysprof-polkit.c',
]
libsysprof_profile_public_headers = [
'sysprof-profile.h',
'sysprof-instrument.h',
'sysprof-cpu-usage.h',
'sysprof-profiler.h',
'sysprof-recording.h',
'sysprof-spawnable.h',
]
if host_machine.system() == 'linux'
libsysprof_profile_private_sources += [
'sysprof-linux-instrument.c',
]
endif
libsysprof_profile_deps = [
dependency('gio-2.0', version: glib_req_version),
dependency('gio-unix-2.0',
version: glib_req_version,
required: host_machine.system() != 'windows'),
dependency('json-glib-1.0'),
dependency('libdex-1', version: dex_req_version),
dependency('polkit-gobject-1', version: polkit_req_version),
libsysprof_capture_dep,
]
libsysprof_profile_static = static_library(
'sysprof-profile-@0@'.format(soname_major_version),
(libsysprof_profile_public_sources +
libsysprof_profile_private_sources +
mapped_ring_buffer_sources),
include_directories: [include_directories('.'),
ipc_include_dirs,
libsysprof_capture_include_dirs],
dependencies: libsysprof_profile_deps,
gnu_symbol_visibility: 'hidden',
)
libsysprof_profile_static_dep = declare_dependency(
link_with: libsysprof_profile_static,
dependencies: libsysprof_profile_deps,
include_directories: [include_directories('.'),
libsysprof_capture_include_dirs],
)
libsysprof_profile = library('sysprof-profile-@0@'.format(soname_major_version),
dependencies: [libsysprof_profile_static_dep],
gnu_symbol_visibility: 'hidden',
version: '@0@.0.0'.format(soname_major_version),
darwin_versions: '@0@.0'.format(soname_major_version),
install: true,
)
libsysprof_profile_dep = declare_dependency(
link_with: libsysprof_profile,
dependencies: libsysprof_profile_deps,
include_directories: [include_directories('.'), libsysprof_capture_include_dirs],
)
meson.override_dependency('sysprof-profile-@0@'.format(soname_major_version), libsysprof_profile_dep)
pkgconfig.generate(libsysprof_profile,
subdirs: [sysprof_header_subdir],
description: 'A library for recording profiles using various instruments',
install_dir: join_paths(get_option('libdir'), 'pkgconfig'),
requires: ['gio-2.0'],
variables: ['datadir=' + datadir_for_pc_file],
)
install_headers(libsysprof_profile_public_headers, subdir: sysprof_header_subdir)
subdir('tests')