tree: start on massive tree refactor

The big thing going on here is that we are going to split up the libraries
a bit better, and remove GObject from the capture library. The libsysprof
library will bring in the capture library statically, so we can export the
symbols we want.

Eventually, we will bump the version to sysprof-3, but not yet.
This commit is contained in:
Christian Hergert
2019-05-07 20:52:05 -07:00
parent 5323cffdb3
commit 1708ad1b48
193 changed files with 1400 additions and 1136 deletions

View File

@ -1,28 +0,0 @@
if get_option('with_sysprofd') == 'bundled'
sysprofd_sources = [
'sysprofd.c',
'sd-bus-helper.c',
'sd-bus-helper.h',
'../lib/sp-kallsyms.c',
'../lib/sp-kallsyms.h',
]
# NOTE: This is used in data/meson.build
pkglibexecdir = join_paths(get_option('prefix'), get_option('libexecdir'), 'sysprof')
sysprofd_deps = [
dependency('libsystemd', version: '>=222'),
dependency('glib-2.0'),
]
sysprofd = executable('sysprofd',
sysprofd_sources,
c_args: exe_c_args,
link_args: exe_link_args,
dependencies: sysprofd_deps,
install: true,
install_dir: pkglibexecdir,
)
endif

View File

@ -1,6 +1,3 @@
datadir = get_option('datadir')
podir = join_paths(meson.source_root(), 'po')
install_data('sysprof-mime.xml',
install_dir: join_paths(datadir, 'mime/packages')
)
@ -10,53 +7,23 @@ install_data('org.gnome.sysprof2.gschema.xml',
)
i18n.merge_file(
input: 'org.gnome.Sysprof2.appdata.xml.in',
output: 'org.gnome.Sysprof2.appdata.xml',
po_dir: podir,
install: true,
input: 'org.gnome.Sysprof2.appdata.xml.in',
output: 'org.gnome.Sysprof2.appdata.xml',
po_dir: podir,
install: true,
install_dir: join_paths(datadir, 'metainfo')
)
i18n.merge_file(
input: 'org.gnome.Sysprof2.desktop.in',
output: 'org.gnome.Sysprof2.desktop',
type: 'desktop',
po_dir: podir,
install: true,
input: 'org.gnome.Sysprof2.desktop.in',
output: 'org.gnome.Sysprof2.desktop',
type: 'desktop',
po_dir: podir,
install: true,
install_dir: join_paths(datadir, 'applications')
)
pkgconf = configuration_data()
pkgconf.set('VERSION', meson.project_version())
pkgconf.set('API_VERSION', libsysprof_api_version)
pkgconf.set('prefix', get_option('prefix'))
pkgconf.set('libdir', join_paths('${exec_prefix}', get_option('libdir')))
pkgconf.set('includedir', join_paths('${prefix}', get_option('includedir')))
pkgconfigdir = join_paths(get_option('libdir'), 'pkgconfig')
configure_file(
input: 'sysprof.pc.in',
output: 'sysprof-@0@.pc'.format(libsysprof_api_version),
configuration: pkgconf,
install: true,
install_dir: pkgconfigdir,
)
configure_file(
input: 'sysprof-capture.pc.in',
output: 'sysprof-capture-@0@.pc'.format(libsysprof_api_version),
configuration: pkgconf,
install: true,
install_dir: pkgconfigdir,
)
if get_option('enable_gtk')
configure_file(
input: 'sysprof-ui.pc.in',
output: 'sysprof-ui-@0@.pc'.format(libsysprof_api_version),
configuration: pkgconf,
install: true,
install_dir: pkgconfigdir,
)
icon_sizes = ['scalable', 'symbolic']
foreach size: icon_sizes
install_subdir('icons/' + size,
@ -64,45 +31,3 @@ if get_option('enable_gtk')
)
endforeach
endif
if get_option('with_sysprofd') == 'bundled'
sysprofdconf = configuration_data()
sysprofdconf.set('sysprofdprivdir', pkglibexecdir)
configure_file(
input: 'org.gnome.Sysprof2.service.in',
output: 'org.gnome.Sysprof2.service',
configuration: sysprofdconf,
install: true,
install_dir: join_paths(datadir, 'dbus-1/system-services'),
)
configure_file(
input: 'org.gnome.Sysprof2.conf.in',
output: 'org.gnome.Sysprof2.conf',
configuration: sysprofdconf,
install: true,
install_dir: join_paths(datadir, 'dbus-1/system.d'),
)
systemdunitdir = get_option('systemdunitdir')
if systemdunitdir == ''
systemdunitdir = dependency('systemd').get_pkgconfig_variable('systemdsystemunitdir')
endif
configure_file(
input: 'sysprof2.service.in',
output: 'sysprof2.service',
configuration: sysprofdconf,
install: true,
install_dir: systemdunitdir,
)
i18n.merge_file(
input: 'org.gnome.sysprof2.policy.in',
output: 'org.gnome.sysprof2.policy',
po_dir: podir,
install: true,
install_dir: join_paths(datadir, 'polkit-1/actions'),
)
endif

View File

@ -1,11 +0,0 @@
prefix=@prefix@
exec_prefix=${prefix}
libdir=@libdir@
includedir=@includedir@
Name: libsysprof-capture-@API_VERSION@
Description: The sysprof profiler library for reading and writing capture files
Version: @VERSION@
Libs: -L${libdir} -lsysprof-capture-@API_VERSION@
Cflags: -I${includedir}/sysprof-@API_VERSION@
Requires: gobject-2.0

View File

@ -1,11 +0,0 @@
prefix=@prefix@
exec_prefix=${prefix}
libdir=@libdir@
includedir=@includedir@
Name: libsysprof-ui-@API_VERSION@
Description: The sysprof library containing reusable GTK widgets
Version: @VERSION@
Libs: -L${libdir} -lsysprof-ui-@API_VERSION@
Cflags: -I${includedir}/sysprof-@API_VERSION@
Requires: gio-2.0 gtk+-3.0 sysprof-@API_VERSION@

View File

@ -1,11 +0,0 @@
prefix=@prefix@
exec_prefix=${prefix}
libdir=@libdir@
includedir=@includedir@
Name: libsysprof-@API_VERSION@
Description: The sysprof profiler library
Version: @VERSION@
Libs: -L${libdir} -lsysprof-@API_VERSION@
Cflags: -I${includedir}/sysprof-@API_VERSION@
Requires: gio-2.0

View File

@ -1,33 +0,0 @@
callgraph_headers = [
'sp-callgraph-profile.h',
]
callgraph_sources = [
'sp-callgraph-profile-private.h',
'sp-callgraph-profile.c',
]
libsysprof_headers += files(callgraph_headers)
libsysprof_sources += files(callgraph_sources)
install_headers(callgraph_headers,
subdir: join_paths(libsysprof_header_subdir, 'callgraph'))
if get_option('enable_gtk')
callgraph_ui_headers = [
'sp-callgraph-view.h',
]
callgraph_ui_sources = [
'sp-callgraph-view.c',
]
libsysprof_ui_headers += files(callgraph_ui_headers)
libsysprof_ui_sources += files(callgraph_ui_sources)
install_headers(callgraph_ui_headers,
subdir: join_paths(libsysprof_header_subdir, 'callgraph'))
endif

View File

@ -1,27 +0,0 @@
capture_headers = [
'sp-capture-condition.h',
'sp-capture-cursor.h',
'sp-capture-reader.h',
'sp-capture-types.h',
'sp-capture-writer.h',
]
capture_sources = [
'sp-capture-condition.c',
'sp-capture-cursor.c',
'sp-capture-reader.c',
'sp-capture-writer.c',
]
static_capture_sources = [
'sp-capture-reader.c',
'sp-capture-writer.c',
]
libsysprof_headers += files(capture_headers)
libsysprof_sources += files(capture_sources)
libsysprof_capture_sources += files(static_capture_sources)
install_headers(capture_headers,
subdir: join_paths(libsysprof_header_subdir, 'capture'))

View File

@ -1,143 +0,0 @@
# We split up the library code into two libraries. One containing the
# minimum necessary to do profiling on a particular host (that might not
# have GTK+ installed), and the library containing reusable GTK
# components (for IDE integration).
libsysprof_api_version = '2'
libsysprof_header_subdir = 'sysprof-' + libsysprof_api_version
libsysprof_version_conf = configuration_data()
libsysprof_version = meson.project_version().split('.')
libsysprof_version_conf.set('MAJOR_VERSION', libsysprof_version[0])
libsysprof_version_conf.set('MINOR_VERSION', libsysprof_version[1])
libsysprof_version_conf.set('MICRO_VERSION', libsysprof_version[2])
libsysprof_version_conf.set('VERSION', meson.project_version())
configure_file(
input: 'sysprof-version.h.in',
output: 'sysprof-version.h',
configuration: libsysprof_version_conf,
install: true,
install_dir: join_paths(get_option('includedir'), 'sysprof-' + libsysprof_api_version)
)
libsysprof_base_headers = [
'sysprof.h',
'sysprof-capture.h',
'sp-address.h',
'sp-clock.h',
'sp-error.h',
'sp-kallsyms.h',
]
libsysprof_base_sources = [
'sp-address.c',
'sp-clock.c',
'sp-error.c',
'sp-kallsyms.c',
]
libsysprof_headers = libsysprof_base_headers
libsysprof_sources = libsysprof_base_sources
libsysprof_ui_base_headers = ['sysprof-ui.h']
libsysprof_ui_headers = libsysprof_ui_base_headers
libsysprof_ui_sources = []
libsysprof_capture_sources = libsysprof_base_sources
subdir('callgraph')
subdir('capture')
subdir('profiler')
subdir('sources')
subdir('symbols')
subdir('util')
subdir('visualizers')
subdir('widgets')
cxx = meson.get_compiler('cpp')
libsysprof_capture_deps = [
dependency('glib-2.0'),
]
libsysprof_deps = [
cxx.find_library('stdc++'),
dependency('gio-unix-2.0'),
]
version_link_arg = '-Wl,--version-script,' + join_paths(meson.current_source_dir(), 'sysprof.map')
libsysprof_c_args = release_flags + ['-DSP_ENABLE_GOBJECT']
if get_option('with_sysprofd') != 'none'
libsysprof_deps += dependency('polkit-gobject-1')
libsysprof_c_args += '-DENABLE_POLKIT'
endif
libsysprof_capture = static_library('sysprof-capture-' + libsysprof_api_version,
libsysprof_capture_sources,
c_args: release_flags,
dependencies: libsysprof_capture_deps,
install: true,
)
libsysprof = shared_library('sysprof-' + libsysprof_api_version,
libsysprof_sources,
dependencies: libsysprof_deps,
c_args: libsysprof_c_args,
link_args: version_link_arg,
link_depends: 'sysprof.map',
install: true,
)
libsysprof_dep = declare_dependency(
include_directories: include_directories('.'),
link_with: libsysprof,
dependencies: libsysprof_deps,
)
libsysprof_capture_dep = declare_dependency(
include_directories: include_directories('.'),
link_with: libsysprof_capture,
dependencies: libsysprof_capture_deps,
)
install_headers(libsysprof_base_headers, subdir: libsysprof_header_subdir)
if get_option('enable_gtk')
# This is our GTK library containing the widgets suitable for viewing
# and manipulating the various profiler API in libsysprof. This is
# meant to be used by IDEs and the sysprof gui.
libsysprof_ui_resources = gnome.compile_resources(
'sp-ui-resources', 'resources/libsysprof.gresource.xml',
source_dir: 'resources',
c_name: 'sp',
)
libsysprof_ui_deps = [
libsysprof_dep,
dependency('gtk+-3.0', version: '>=3.22.0'),
]
libsysprof_ui_c_args = release_flags + ['-DSP_ENABLE_GOBJECT']
libsysprof_ui = shared_library('sysprof-ui-' + libsysprof_api_version,
libsysprof_ui_resources + libsysprof_ui_sources,
dependencies: libsysprof_ui_deps,
c_args: libsysprof_ui_c_args,
link_args: version_link_arg,
link_depends: 'sysprof.map',
install: true,
)
libsysprof_ui_dep = declare_dependency(
dependencies: libsysprof_ui_deps,
link_with: libsysprof_ui,
include_directories: include_directories('.'),
)
install_headers(libsysprof_ui_base_headers, subdir: libsysprof_header_subdir)
endif

View File

@ -1,17 +0,0 @@
profiler_headers = [
'sp-local-profiler.h',
'sp-profile.h',
'sp-profiler.h',
]
profiler_sources = [
'sp-local-profiler.c',
'sp-profile.c',
'sp-profiler.c',
]
libsysprof_headers += files(profiler_headers)
libsysprof_sources += files(profiler_sources)
install_headers(profiler_headers,
subdir: join_paths(libsysprof_header_subdir, 'profiler'))

View File

@ -1,25 +0,0 @@
sources_headers = [
'sp-gjs-source.h',
'sp-hostinfo-source.h',
'sp-memory-source.h',
'sp-perf-source.h',
'sp-proc-source.h',
'sp-source.h',
]
sources_sources = [
'sp-gjs-source.c',
'sp-hostinfo-source.c',
'sp-memory-source.c',
'sp-perf-counter.c',
'sp-perf-counter.h',
'sp-perf-source.c',
'sp-proc-source.c',
'sp-source.c',
]
libsysprof_headers += files(sources_headers)
libsysprof_sources += files(sources_sources)
install_headers(sources_headers,
subdir: join_paths(libsysprof_header_subdir, 'sources'))

View File

@ -1,23 +0,0 @@
symbols_headers = [
'sp-elf-symbol-resolver.h',
'sp-jitmap-symbol-resolver.h',
'sp-kernel-symbol-resolver.h',
'sp-kernel-symbol.h',
'sp-symbol-dirs.h',
'sp-symbol-resolver.h',
]
symbols_sources = [
'sp-elf-symbol-resolver.c',
'sp-jitmap-symbol-resolver.c',
'sp-kernel-symbol-resolver.c',
'sp-kernel-symbol.c',
'sp-symbol-dirs.c',
'sp-symbol-resolver.c',
]
libsysprof_headers += files(symbols_headers)
libsysprof_sources += files(symbols_sources)
install_headers(symbols_headers,
subdir: join_paths(libsysprof_header_subdir, 'symbols'))

View File

@ -1,67 +0,0 @@
/* sysprof.h
*
* Copyright (C) 2016 Christian Hergert <christian@hergert.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef SYSPROF_H
#define SYSPROF_H
#include <gio/gio.h>
G_BEGIN_DECLS
#define SYSPROF_INSIDE
#define SP_ENABLE_GOBJECT
# include "sp-address.h"
# include "sp-clock.h"
# include "sp-error.h"
# include "sysprof-version.h"
# include "callgraph/sp-callgraph-profile.h"
# include "capture/sp-capture-condition.h"
# include "capture/sp-capture-cursor.h"
# include "capture/sp-capture-reader.h"
# include "capture/sp-capture-writer.h"
# include "profiler/sp-local-profiler.h"
# include "profiler/sp-profile.h"
# include "profiler/sp-profiler.h"
# include "sources/sp-gjs-source.h"
# include "sources/sp-hostinfo-source.h"
# include "sources/sp-memory-source.h"
# include "sources/sp-perf-source.h"
# include "sources/sp-proc-source.h"
# include "sources/sp-source.h"
# include "symbols/sp-elf-symbol-resolver.h"
# include "symbols/sp-jitmap-symbol-resolver.h"
# include "symbols/sp-kernel-symbol-resolver.h"
# include "symbols/sp-kernel-symbol.h"
# include "symbols/sp-symbol-dirs.h"
# include "symbols/sp-symbol-resolver.h"
# include "util/sp-map-lookaside.h"
# include "util/sp-selection.h"
#undef SP_ENABLE_GOBJECT
#undef SYSPROF_INSIDE
G_END_DECLS
#endif /* SYSPROF_H */

View File

@ -1,6 +0,0 @@
{
global:
sp_*;
local:
*;
};

View File

@ -1,62 +0,0 @@
util_headers = [
'sp-map-lookaside.h',
'sp-selection.h',
]
util_sources = [
'binfile.c',
'binfile.h',
'demangle.cpp',
'demangle.h',
'elfparser.c',
'elfparser.h',
'sp-line-reader.c',
'sp-line-reader.h',
'sp-map-lookaside.c',
'sp-platform.c',
'sp-platform.h',
'sp-selection.c',
'stackstash.c',
'stackstash.h',
]
libsysprof_headers += files(util_headers)
libsysprof_sources += files(util_sources)
install_headers(util_headers,
subdir: join_paths(libsysprof_header_subdir, 'util'))
if get_option('enable_gtk')
util_ui_headers = [
'sp-model-filter.h',
'sp-process-model-item.h',
'sp-process-model.h',
'sp-zoom-manager.h',
]
util_ui_sources = [
'pointcache.c',
'pointcache.h',
'rectangles.c',
'rectangles.h',
'sp-color-cycle.c',
'sp-color-cycle.h',
'sp-model-filter.c',
'sp-process-model-item.c',
'sp-process-model.c',
'sp-theme-manager.c',
'sp-theme-manager.h',
'sp-zoom-manager.c',
'stackstash.c',
'stackstash.h',
]
libsysprof_ui_headers += files(util_ui_headers)
libsysprof_ui_sources += files(util_ui_sources)
install_headers(util_ui_headers,
subdir: join_paths(libsysprof_header_subdir, 'util'))
endif

View File

@ -1,30 +0,0 @@
if get_option('enable_gtk')
visualizer_ui_headers = [
'sp-cpu-visualizer-row.h',
'sp-line-visualizer-row.h',
'sp-mark-visualizer-row.h',
'sp-visualizer-row.h',
'sp-visualizer-view.h',
]
visualizer_ui_sources = [
'sp-cpu-visualizer-row.c',
'sp-line-visualizer-row.c',
'sp-mark-visualizer-row.c',
'sp-visualizer-list.c',
'sp-visualizer-list.h',
'sp-visualizer-row-private.h',
'sp-visualizer-row.c',
'sp-visualizer-ticks.c',
'sp-visualizer-ticks.h',
'sp-visualizer-view.c',
]
libsysprof_ui_headers += files(visualizer_ui_headers)
libsysprof_ui_sources += files(visualizer_ui_sources)
install_headers(visualizer_ui_headers,
subdir: join_paths(libsysprof_header_subdir, 'visualizers'))
endif

View File

@ -1,29 +0,0 @@
if get_option('enable_gtk')
widgets_ui_headers = [
'sp-cell-renderer-percent.h',
'sp-empty-state-view.h',
'sp-failed-state-view.h',
'sp-multi-paned.h',
'sp-process-model-row.h',
'sp-profiler-menu-button.h',
'sp-recording-state-view.h',
]
widgets_ui_sources = [
'sp-cell-renderer-percent.c',
'sp-empty-state-view.c',
'sp-failed-state-view.c',
'sp-multi-paned.c',
'sp-process-model-row.c',
'sp-profiler-menu-button.c',
'sp-recording-state-view.c',
]
libsysprof_ui_headers += files(widgets_ui_headers)
libsysprof_ui_sources += files(widgets_ui_sources)
install_headers(widgets_ui_headers,
subdir: join_paths(libsysprof_header_subdir, 'widgets'))
endif

View File

@ -1,19 +1,30 @@
project('sysprof', ['c', 'cpp'],
license: ['GPL3+', 'GPL2+'],
version: '3.32.0',
meson_version: '>=0.47.2',
default_options: [
'c_std=gnu11',
'cpp_std=c++03',
'warning_level=2',
license: ['GPL3+', 'GPL2+'],
version: '3.33.1',
meson_version: '>=0.49.0',
default_options: [ 'c_std=gnu11',
'cpp_std=c++03',
'warning_level=2',
]
)
gnome = import('gnome')
pkgconfig = import('pkgconfig')
i18n = import('i18n')
libsysprof_api_version = 2
version_split = meson.project_version().split('.')
datadir = get_option('datadir')
podir = join_paths(meson.source_root(), 'po')
glib_req_version = '>= 2.60'
gtk_req_version = '>= 3.24'
cc = meson.get_compiler('c')
config_h = configuration_data()
cxx = meson.get_compiler('cpp')
config_h = configuration_data()
config_h.set_quoted('PACKAGE_NAME', 'sysprof')
config_h.set_quoted('PACKAGE_VERSION', meson.project_version())
config_h.set_quoted('PACKAGE_STRING', 'sysprof-' + meson.project_version())
@ -21,7 +32,10 @@ config_h.set_quoted('PACKAGE_BUGREPORT', 'https://bugzilla.gnome.org/enter_bug.c
config_h.set('PACKAGE_TARNAME', 'PACKAGE_STRING')
config_h.set('PACKAGE', 'PACKAGE_NAME')
config_h.set('VERSION', 'PACKAGE_VERSION')
# PACKAGE_URL
if get_option('with_sysprofd') != 'none'
config_h.set10('ENABLE_POLKIT', true)
endif
debugdir = get_option('debugdir')
if debugdir == ''
@ -44,7 +58,6 @@ if has_use_clockid and has_clockid
endif
add_global_arguments([
'-DHAVE_CONFIG_H',
'-I' + meson.build_root(), # config.h
], language: 'c')
@ -145,27 +158,12 @@ int main(void) {
error('Sysprof requires a C compiler with stdatomic support such as GCC 4.9 or newer')
endif
exe_c_args = []
exe_link_args = []
if cc.has_argument('-fPIE')
exe_c_args += '-fPIE'
exe_link_args += '-fpie'
endif
configure_file(
output: 'config.h',
configuration: config_h
)
gnome = import('gnome')
i18n = import('i18n')
subdir('lib')
subdir('daemon')
subdir('src')
subdir('tools')
subdir('tests')
subdir('data')
subdir('help')
subdir('po')

View File

@ -0,0 +1,53 @@
libsysprof_capture_headers = [
'sp-capture-condition.h',
'sp-capture-cursor.h',
'sp-capture-reader.h',
'sp-capture-types.h',
'sp-capture-writer.h',
'sysprof-capture.h',
]
libsysprof_capture_sources = [
'sp-capture-condition.c',
'sp-capture-cursor.c',
'sp-capture-reader.c',
'sp-capture-writer.c',
]
configure_file(
input: 'sysprof-version.h.in',
output: 'sysprof-version.h',
configuration: sysprof_version_conf,
install_dir: join_paths(get_option('includedir'), sysprof_header_subdir),
)
libsysprof_capture_deps = [
dependency('glib-2.0', version: glib_req_version),
libshared_dep,
]
install_headers(libsysprof_capture_headers, subdir: sysprof_header_subdir)
libsysprof_capture = static_library('sysprof-capture-@0@'.format(libsysprof_api_version),
libsysprof_capture_sources,
dependencies: libsysprof_capture_deps,
c_args: [ '-DSYSPROF_CAPTURE_COMPILATION' ],
install_dir: get_option('libdir'),
install: true,
)
libsysprof_capture_dep = declare_dependency(
link_whole: libsysprof_capture,
dependencies: libsysprof_capture_deps,
include_directories: include_directories('.'),
)
pkgconfig.generate(
subdirs: [ sysprof_header_subdir ],
version: meson.project_version(),
name: 'sysprof-capture-@0@'.format(libsysprof_api_version),
filebase: 'sysprof-capture-@0@'.format(libsysprof_api_version),
description: 'The static capture library for tools that generate profiling capture data',
install_dir: join_paths(get_option('libdir'), 'pkgconfig'),
requires: [ 'glib-2.0' ],
)

View File

@ -1,6 +1,6 @@
/* sp-capture-condition.c
*
* Copyright © 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This file is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
@ -14,14 +14,18 @@
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#define G_LOG_DOMAIN "sp-capture-condition"
#include "config.h"
#include <string.h>
#include "capture/sp-capture-condition.h"
#include "sp-capture-condition.h"
/**
* SECTION:sp-capture-condition
@ -45,6 +49,7 @@ typedef enum
struct _SpCaptureCondition
{
volatile gint ref_count;
SpCaptureConditionType type;
union {
GArray *where_type_in;
@ -144,11 +149,22 @@ sp_capture_condition_match (const SpCaptureCondition *self,
}
static SpCaptureCondition *
sp_capture_condition_init (void)
{
SpCaptureCondition *self;
self = g_slice_new0 (SpCaptureCondition);
self->ref_count = 1;
return g_steal_pointer (&self);
}
SpCaptureCondition *
sp_capture_condition_copy (const SpCaptureCondition *self)
{
SpCaptureCondition *copy;
copy = g_slice_new0 (SpCaptureCondition);
copy = sp_capture_condition_init ();
copy->type = self->type;
switch (self->type)
@ -185,13 +201,13 @@ sp_capture_condition_copy (const SpCaptureCondition *self)
}
static void
sp_capture_condition_free (SpCaptureCondition *self)
sp_capture_condition_finalize (SpCaptureCondition *self)
{
switch (self->type)
{
case SP_CAPTURE_CONDITION_AND:
sp_capture_condition_free (self->u.and.left);
sp_capture_condition_free (self->u.and.right);
sp_capture_condition_unref (self->u.and.left);
sp_capture_condition_unref (self->u.and.right);
break;
case SP_CAPTURE_CONDITION_WHERE_TYPE_IN:
@ -217,10 +233,25 @@ sp_capture_condition_free (SpCaptureCondition *self)
g_slice_free (SpCaptureCondition, self);
}
G_DEFINE_BOXED_TYPE (SpCaptureCondition,
sp_capture_condition,
sp_capture_condition_copy,
sp_capture_condition_free)
SpCaptureCondition *
sp_capture_condition_ref (SpCaptureCondition *self)
{
g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (self->ref_count > 0, NULL);
g_atomic_int_inc (&self->ref_count);
return self;
}
void
sp_capture_condition_unref (SpCaptureCondition *self)
{
g_return_if_fail (self != NULL);
g_return_if_fail (self->ref_count > 0);
if (g_atomic_int_dec_and_test (&self->ref_count))
sp_capture_condition_finalize (self);
}
SpCaptureCondition *
sp_capture_condition_new_where_type_in (guint n_types,
@ -230,7 +261,7 @@ sp_capture_condition_new_where_type_in (guint n_types,
g_return_val_if_fail (types != NULL, NULL);
self = g_slice_new0 (SpCaptureCondition);
self = sp_capture_condition_init ();
self->type = SP_CAPTURE_CONDITION_WHERE_TYPE_IN;
self->u.where_type_in = g_array_sized_new (FALSE, FALSE, sizeof (SpCaptureFrameType), n_types);
g_array_set_size (self->u.where_type_in, n_types);
@ -252,7 +283,7 @@ sp_capture_condition_new_where_time_between (gint64 begin_time,
end_time = tmp;
}
self = g_slice_new0 (SpCaptureCondition);
self = sp_capture_condition_init ();
self->type = SP_CAPTURE_CONDITION_WHERE_TIME_BETWEEN;
self->u.where_time_between.begin = begin_time;
self->u.where_time_between.end = end_time;
@ -268,7 +299,7 @@ sp_capture_condition_new_where_pid_in (guint n_pids,
g_return_val_if_fail (pids != NULL, NULL);
self = g_slice_new0 (SpCaptureCondition);
self = sp_capture_condition_init ();
self->type = SP_CAPTURE_CONDITION_WHERE_PID_IN;
self->u.where_pid_in = g_array_sized_new (FALSE, FALSE, sizeof (gint32), n_pids);
g_array_set_size (self->u.where_pid_in, n_pids);
@ -285,7 +316,7 @@ sp_capture_condition_new_where_counter_in (guint n_counters,
g_return_val_if_fail (counters != NULL || n_counters == 0, NULL);
self = g_slice_new0 (SpCaptureCondition);
self = sp_capture_condition_init ();
self->type = SP_CAPTURE_CONDITION_WHERE_COUNTER_IN;
self->u.where_counter_in = g_array_sized_new (FALSE, FALSE, sizeof (guint), n_counters);
@ -317,7 +348,7 @@ sp_capture_condition_new_and (SpCaptureCondition *left,
g_return_val_if_fail (left != NULL, NULL);
g_return_val_if_fail (right != NULL, NULL);
self = g_slice_new0 (SpCaptureCondition);
self = sp_capture_condition_init ();
self->type = SP_CAPTURE_CONDITION_AND;
self->u.and.left = left;
self->u.and.right = right;

View File

@ -1,6 +1,6 @@
/* sp-capture-condition.h
*
* Copyright © 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This file is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
@ -14,20 +14,19 @@
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_CAPTURE_CONDITION_H
#define SP_CAPTURE_CONDITION_H
#pragma once
#include <glib-object.h>
#include "capture/sp-capture-types.h"
#include "sp-capture-types.h"
G_BEGIN_DECLS
#define SP_TYPE_CAPTURE_CONDITION (sp_capture_condition_get_type())
GType sp_capture_condition_get_type (void);
SpCaptureCondition *sp_capture_condition_copy (const SpCaptureCondition *self);
void sp_capture_condition_unref (SpCaptureCondition *self);
SpCaptureCondition *sp_capture_condition_ref (SpCaptureCondition *self);
SpCaptureCondition *sp_capture_condition_new_and (SpCaptureCondition *left,
SpCaptureCondition *right);
SpCaptureCondition *sp_capture_condition_new_where_type_in (guint n_types,
@ -41,6 +40,6 @@ SpCaptureCondition *sp_capture_condition_new_where_counter_in (guint
gboolean sp_capture_condition_match (const SpCaptureCondition *self,
const SpCaptureFrame *frame);
G_END_DECLS
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SpCaptureCondition, sp_capture_condition_unref)
#endif /* SP_CAPTURE_CONDITION_H */
G_END_DECLS

View File

@ -1,6 +1,6 @@
/* sp-capture-cursor.c
*
* Copyright © 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This file is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
@ -14,13 +14,17 @@
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#define G_LOG_DOMAIN "sp-capture-cursor"
#include "capture/sp-capture-condition.h"
#include "capture/sp-capture-cursor.h"
#include "capture/sp-capture-reader.h"
#include "config.h"
#include "sp-capture-condition.h"
#include "sp-capture-cursor.h"
#include "sp-capture-reader.h"
#define READ_DELEGATE(f) ((ReadDelegate)(f))
@ -28,51 +32,79 @@ typedef const SpCaptureFrame *(*ReadDelegate) (SpCaptureReader *);
struct _SpCaptureCursor
{
GObject parent_instance;
volatile gint ref_count;
GPtrArray *conditions;
SpCaptureReader *reader;
guint reversed : 1;
};
G_DEFINE_TYPE (SpCaptureCursor, sp_capture_cursor, G_TYPE_OBJECT)
static void
destroy_condition (gpointer data)
sp_capture_cursor_finalize (SpCaptureCursor *self)
{
g_boxed_free (SP_TYPE_CAPTURE_CONDITION, data);
}
static void
sp_capture_cursor_finalize (GObject *object)
{
SpCaptureCursor *self = (SpCaptureCursor *)object;
g_clear_pointer (&self->conditions, g_ptr_array_unref);
g_clear_pointer (&self->reader, sp_capture_reader_unref);
G_OBJECT_CLASS (sp_capture_cursor_parent_class)->finalize (object);
g_slice_free (SpCaptureCursor, self);
}
static void
sp_capture_cursor_class_init (SpCaptureCursorClass *klass)
static SpCaptureCursor *
sp_capture_cursor_init (void)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
SpCaptureCursor *self;
object_class->finalize = sp_capture_cursor_finalize;
self = g_slice_new0 (SpCaptureCursor);
self->conditions = g_ptr_array_new_with_free_func ((GDestroyNotify) sp_capture_condition_unref);
self->ref_count = 1;
return g_steal_pointer (&self);
}
static void
sp_capture_cursor_init (SpCaptureCursor *self)
/**
* sp_capture_cursor_ref:
* @self: a #SpCaptureCursor
*
* Returns: (transfer full): @self
*
* Since: 3.34
*/
SpCaptureCursor *
sp_capture_cursor_ref (SpCaptureCursor *self)
{
self->conditions = g_ptr_array_new_with_free_func (destroy_condition);
g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (self->ref_count > 0, NULL);
g_atomic_int_inc (&self->ref_count);
return self;
}
/**
* sp_capture_cursor_unref:
* @self: a #SpCaptureCursor
*
* Since: 3.34
*/
void
sp_capture_cursor_unref (SpCaptureCursor *self)
{
g_return_if_fail (self != NULL);
g_return_if_fail (self->ref_count > 0);
if (g_atomic_int_dec_and_test (&self->ref_count))
sp_capture_cursor_finalize (self);
}
/**
* sp_capture_cursor_foreach:
* @self: a #SpCaptureCursor
* @callback: (scope call): a closure to execute
* @user_data: user data for @callback
*
*/
void
sp_capture_cursor_foreach (SpCaptureCursor *self,
SpCaptureCursorCallback callback,
gpointer user_data)
{
g_return_if_fail (SP_IS_CAPTURE_CURSOR (self));
g_return_if_fail (self != NULL);
g_return_if_fail (self->reader != NULL);
g_return_if_fail (callback != NULL);
@ -165,7 +197,7 @@ sp_capture_cursor_foreach (SpCaptureCursor *self,
void
sp_capture_cursor_reset (SpCaptureCursor *self)
{
g_return_if_fail (SP_IS_CAPTURE_CURSOR (self));
g_return_if_fail (self != NULL);
g_return_if_fail (self->reader != NULL);
sp_capture_reader_reset (self->reader);
@ -174,7 +206,7 @@ sp_capture_cursor_reset (SpCaptureCursor *self)
void
sp_capture_cursor_reverse (SpCaptureCursor *self)
{
g_return_if_fail (SP_IS_CAPTURE_CURSOR (self));
g_return_if_fail (self != NULL);
self->reversed = !self->reversed;
}
@ -191,12 +223,18 @@ void
sp_capture_cursor_add_condition (SpCaptureCursor *self,
SpCaptureCondition *condition)
{
g_return_if_fail (SP_IS_CAPTURE_CURSOR (self));
g_return_if_fail (self != NULL);
g_return_if_fail (condition != NULL);
g_ptr_array_add (self->conditions, condition);
}
/**
* sp_capture_cursor_new:
* @self: a #SpCaptureCursor
*
* Returns: (transfer full): a new cursor for @reader
*/
SpCaptureCursor *
sp_capture_cursor_new (SpCaptureReader *reader)
{
@ -204,7 +242,7 @@ sp_capture_cursor_new (SpCaptureReader *reader)
g_return_val_if_fail (reader != NULL, NULL);
self = g_object_new (SP_TYPE_CAPTURE_CURSOR, NULL);
self = sp_capture_cursor_init ();
self->reader = sp_capture_reader_copy (reader);
sp_capture_reader_reset (self->reader);
@ -221,7 +259,7 @@ sp_capture_cursor_new (SpCaptureReader *reader)
SpCaptureReader *
sp_capture_cursor_get_reader (SpCaptureCursor *self)
{
g_return_val_if_fail (SP_IS_CAPTURE_CURSOR (self), NULL);
g_return_val_if_fail (self != NULL, NULL);
return self->reader;
}

View File

@ -1,6 +1,6 @@
/* sp-capture-cursor.h
*
* Copyright © 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This file is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
@ -14,18 +14,17 @@
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_CAPTURE_CURSOR_H
#define SP_CAPTURE_CURSOR_H
#pragma once
#include "capture/sp-capture-types.h"
#include "sp-capture-types.h"
G_BEGIN_DECLS
#define SP_TYPE_CAPTURE_CURSOR (sp_capture_cursor_get_type())
G_DECLARE_FINAL_TYPE (SpCaptureCursor, sp_capture_cursor, SP, CAPTURE_CURSOR, GObject)
typedef struct _SpCaptureCursor SpCaptureCursor;
/**
* SpCaptureCursorCallback:
@ -42,6 +41,8 @@ typedef gboolean (*SpCaptureCursorCallback) (const SpCaptureFrame *frame,
gpointer user_data);
SpCaptureCursor *sp_capture_cursor_new (SpCaptureReader *reader);
void sp_capture_cursor_unref (SpCaptureCursor *self);
SpCaptureCursor *sp_capture_cursor_ref (SpCaptureCursor *self);
SpCaptureReader *sp_capture_cursor_get_reader (SpCaptureCursor *self);
void sp_capture_cursor_foreach (SpCaptureCursor *self,
SpCaptureCursorCallback callback,
@ -51,6 +52,6 @@ void sp_capture_cursor_reverse (SpCaptureCursor *self
void sp_capture_cursor_add_condition (SpCaptureCursor *self,
SpCaptureCondition *condition);
G_END_DECLS
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SpCaptureCursor, sp_capture_cursor_unref)
#endif /* SP_CAPTURE_CURSOR_H */
G_END_DECLS

View File

@ -1,6 +1,6 @@
/* sp-capture-reader.c
*
* Copyright © 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This file is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
@ -14,6 +14,8 @@
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#include <errno.h>
@ -23,9 +25,9 @@
#include <sys/types.h>
#include <unistd.h>
#include "capture/sp-capture-reader.h"
#include "capture/sp-capture-util-private.h"
#include "capture/sp-capture-writer.h"
#include "sp-capture-reader.h"
#include "sp-capture-util-private.h"
#include "sp-capture-writer.h"
struct _SpCaptureReader
{

View File

@ -1,6 +1,6 @@
/* sp-capture-reader.h
*
* Copyright © 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This file is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
@ -14,12 +14,13 @@
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_CAPTURE_READER_H
#define SP_CAPTURE_READER_H
#pragma once
#include "capture/sp-capture-types.h"
#include "sp-capture-types.h"
G_BEGIN_DECLS
@ -69,5 +70,3 @@ gboolean sp_capture_reader_save_as (SpCapt
#endif
G_END_DECLS
#endif /* SP_CAPTURE_READER_H */

View File

@ -1,6 +1,6 @@
/* sp-capture-types.h
*
* Copyright © 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This file is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
@ -14,17 +14,14 @@
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_CAPTURE_FORMAT_H
#define SP_CAPTURE_FORMAT_H
#pragma once
#include <glib.h>
#ifdef SP_ENABLE_GOBJECT
# include <glib-object.h>
#endif
#include "sp-clock.h"
G_BEGIN_DECLS
@ -257,5 +254,3 @@ sp_capture_address_compare (SpCaptureAddress a,
}
G_END_DECLS
#endif /* SP_CAPTURE_FORMAT_H */

View File

@ -1,6 +1,6 @@
/* sp-capture-util-private.h
*
* Copyright © 2019 Christian Hergert <chergert@redhat.com>
* Copyright 2019 Christian Hergert <chergert@redhat.com>
*
* This file is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
@ -14,10 +14,11 @@
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_CAPTURE_UTIL_PRIVATE_H
#define SP_CAPTURE_UTIL_PRIVATE_H
#pragma once
#include <glib.h>
@ -53,5 +54,3 @@ ssize_t _sp_sendfile (int out_fd,
off_t *offset,
size_t count);
#endif
#endif /* SP_CAPTURE_UTIL_PRIVATE_H */

View File

@ -1,6 +1,6 @@
/* sp-capture-util.c
*
* Copyright © 2019 Christian Hergert <chergert@redhat.com>
* Copyright 2019 Christian Hergert <chergert@redhat.com>
*
* This file is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
@ -14,6 +14,8 @@
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#include <errno.h>

View File

@ -1,6 +1,6 @@
/* sp-capture-writer.c
*
* Copyright © 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This file is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
@ -14,6 +14,8 @@
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef _GNU_SOURCE
@ -29,9 +31,9 @@
#include <sys/types.h>
#include <unistd.h>
#include "capture/sp-capture-reader.h"
#include "capture/sp-capture-util-private.h"
#include "capture/sp-capture-writer.h"
#include "sp-capture-reader.h"
#include "sp-capture-util-private.h"
#include "sp-capture-writer.h"
#define DEFAULT_BUFFER_SIZE (_sp_getpagesize() * 64L)
#define INVALID_ADDRESS (G_GUINT64_CONSTANT(0))

View File

@ -1,6 +1,6 @@
/* sp-capture-writer.h
*
* Copyright © 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This file is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
@ -14,12 +14,13 @@
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_CAPTURE_WRITER_H
#define SP_CAPTURE_WRITER_H
#pragma once
#include "capture/sp-capture-types.h"
#include "sp-capture-types.h"
G_BEGIN_DECLS
@ -131,5 +132,3 @@ gboolean _sp_capture_writer_set_time_range (SpCaptureWriter *
#endif
G_END_DECLS
#endif /* SP_CAPTURE_WRITER_H */

View File

@ -1,6 +1,6 @@
/* sysprof-capture.h
*
* Copyright © 2018 Christian Hergert <chergert@redhat.com>
* Copyright 2018-2019 Christian Hergert <chergert@redhat.com>
*
* This file is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
@ -14,27 +14,27 @@
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SYSPROF_CAPTURE_H
#define SYSPROF_CAPTURE_H
#pragma once
#include <glib.h>
G_BEGIN_DECLS
#define SYSPROF_INSIDE
#define SYSPROF_CAPTURE_INSIDE
# include "sp-address.h"
# include "sp-capture-condition.h"
# include "sp-capture-cursor.h"
# include "sp-capture-reader.h"
# include "sp-capture-writer.h"
# include "sp-clock.h"
# include "sp-error.h"
# include "sysprof-version.h"
# include "capture/sp-capture-reader.h"
# include "capture/sp-capture-writer.h"
#undef SYSPROF_INSIDE
#undef SYSPROF_CAPTURE_INSIDE
G_END_DECLS
#endif /* SYSPROF_CAPTURE_H */

View File

@ -1,6 +1,6 @@
/* sysprof-version.h.in
*
* Copyright © 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This file is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
@ -14,13 +14,14 @@
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SYSPROF_VERSION_H
#define SYSPROF_VERSION_H
#pragma once
#if !defined(SYSPROF_INSIDE) && !defined(SYSPROF_COMPILATION)
# error "Only <sysprof.h> can be included directly."
#if !defined(SYSPROF_CAPTURE_INSIDE) && !defined(SYSPROF_CAPTURE_COMPILATION)
# error "Only <sysprof-capture.h> can be included directly."
#endif
/**
@ -94,4 +95,3 @@
(SYSPROF_MAJOR_VERSION == (major) && SYSPROF_MINOR_VERSION == (minor) && \
SYSPROF_MICRO_VERSION >= (micro)))
#endif /* SYSPROF_VERSION_H */

View File

@ -0,0 +1,85 @@
libsysprof_ui_public_sources = [
'sp-callgraph-view.c',
'sp-color-cycle.c',
'sp-cpu-visualizer-row.c',
'sp-empty-state-view.c',
'sp-failed-state-view.c',
'sp-line-visualizer-row.c',
'sp-mark-visualizer-row.c',
'sp-model-filter.c',
'sp-multi-paned.c',
'sp-process-model-row.c',
'sp-profiler-menu-button.c',
'sp-recording-state-view.c',
'sp-visualizer-list.c',
'sp-visualizer-row.c',
'sp-visualizer-ticks.c',
'sp-visualizer-view.c',
'sp-zoom-manager.c',
]
libsysprof_ui_private_sources = [
'pointcache.c',
'rectangles.c',
'sp-cell-renderer-percent.c',
'sp-theme-manager.c',
]
libsysprof_ui_public_headers = [
'sp-callgraph-view.h',
'sp-cell-renderer-percent.h',
'sp-cpu-visualizer-row.h',
'sp-empty-state-view.h',
'sp-failed-state-view.h',
'sp-line-visualizer-row.h',
'sp-mark-visualizer-row.h',
'sp-model-filter.h',
'sp-multi-paned.h',
'sp-process-model-row.h',
'sp-profiler-menu-button.h',
'sp-recording-state-view.h',
'sp-visualizer-list.h',
'sp-visualizer-row.h',
'sp-visualizer-ticks.h',
'sp-visualizer-view.h',
'sp-zoom-manager.h',
'sysprof-ui.h',
]
libsysprof_ui_resources = gnome.compile_resources(
'libsysprof-ui-resources',
'libsysprof-ui.gresource.xml',
c_name: 'lisysprof_ui',
)
libsysprof_ui_deps = [
dependency('gio-2.0', version: glib_req_version),
dependency('gtk+-3.0', version: gtk_req_version),
libsysprof_dep,
libshared_dep,
]
libsysprof_ui = shared_library('sysprof-ui-@0@'.format(libsysprof_api_version),
libsysprof_ui_public_sources + libsysprof_ui_private_sources + libsysprof_ui_resources,
dependencies: libsysprof_ui_deps,
install_dir: get_option('libdir'),
install: true,
)
libsysprof_ui_dep = declare_dependency(
link_with: libsysprof_ui,
dependencies: libsysprof_ui_deps,
include_directories: include_directories('.'),
)
pkgconfig.generate(
subdirs: [ sysprof_header_subdir ],
version: meson.project_version(),
name: 'sysprof-ui-@0@'.format(libsysprof_api_version),
filebase: 'sysprof-ui-@0@'.format(libsysprof_api_version),
description: 'The UI library for GTK applications embedding sysprof',
install_dir: join_paths(get_option('libdir'), 'pkgconfig'),
requires: [ 'gio-2.0', 'gtk+-3.0' ],
)
install_headers(libsysprof_ui_public_headers, subdir: sysprof_header_subdir)

View File

@ -1,6 +1,6 @@
/* pointcache.c
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,11 +14,13 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#define G_LOG_DOMAIN "pointcache"
#include "util/pointcache.h"
#include "pointcache.h"
struct _PointCache
{

View File

@ -1,6 +1,6 @@
/* pointcache.h
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,6 +14,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef POINT_CACHE_H

View File

@ -1,6 +1,6 @@
/* rectangles.c
*
* Copyright 2018 Christian Hergert <chergert@redhat.com>
* Copyright 2018-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -18,9 +18,9 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#include "util/rectangles.h"
#include "util/sp-color-cycle.h"
#include "visualizers/sp-visualizer-row.h"
#include "rectangles.h"
#include "sp-color-cycle.h"
#include "sp-visualizer-row.h"
typedef struct
{

View File

@ -1,6 +1,6 @@
/* rectangles.h
*
* Copyright 2018 Christian Hergert <chergert@redhat.com>
* Copyright 2018-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@ -1,6 +1,6 @@
/* sp-callgraph-view.c
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,6 +14,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
/* Sysprof -- Sampling, systemwide CPU profiler
@ -37,9 +39,9 @@
#include <glib/gi18n.h>
#include "callgraph/sp-callgraph-profile-private.h"
#include "callgraph/sp-callgraph-view.h"
#include "widgets/sp-cell-renderer-percent.h"
#include "sp-callgraph-profile-private.h"
#include "sp-callgraph-view.h"
#include "sp-cell-renderer-percent.h"
typedef struct
{

View File

@ -1,6 +1,6 @@
/* sp-callgraph-view.h
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,6 +14,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_CALLGRAPH_VIEW_H
@ -21,7 +23,7 @@
#include <gtk/gtk.h>
#include "callgraph/sp-callgraph-profile.h"
#include "sp-callgraph-profile.h"
G_BEGIN_DECLS

View File

@ -1,6 +1,6 @@
/* sp-cell-renderer-percent.c
*
* Copyright (C) 2016 Christian Hergert <christian@hergert.me>
* Copyright 2016-2019 Christian Hergert <christian@hergert.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,11 +14,13 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#include <glib/gi18n.h>
#include "widgets/sp-cell-renderer-percent.h"
#include "sp-cell-renderer-percent.h"
typedef struct
{

View File

@ -1,6 +1,6 @@
/* sp-cell-renderer-percent.h
*
* Copyright (C) 2016 Christian Hergert <christian@hergert.me>
* Copyright 2016-2019 Christian Hergert <christian@hergert.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,6 +14,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_CELL_RENDERER_PERCENT_H

View File

@ -1,6 +1,6 @@
/* sp-color-cycle.c
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,11 +14,13 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#define G_LOG_DOMAIN "sp-color-cycle"
#include "util/sp-color-cycle.h"
#include "sp-color-cycle.h"
G_DEFINE_BOXED_TYPE (SpColorCycle, sp_color_cycle, sp_color_cycle_ref, sp_color_cycle_unref)

View File

@ -1,6 +1,6 @@
/* sp-color-cycle.h
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,6 +14,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_COLOR_CYCLE_H

View File

@ -1,6 +1,6 @@
/* sp-cpu-visualizer-row.c
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,14 +14,16 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#define G_LOG_DOMAIN "sp-cpu-visualizer-row"
#include "capture/sp-capture-condition.h"
#include "capture/sp-capture-cursor.h"
#include "util/sp-color-cycle.h"
#include "visualizers/sp-cpu-visualizer-row.h"
#include "sp-capture-condition.h"
#include "sp-capture-cursor.h"
#include "sp-color-cycle.h"
#include "sp-cpu-visualizer-row.h"
struct _SpCpuVisualizerRow
{

View File

@ -1,6 +1,6 @@
/* sp-cpu-visualizer-row.h
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,12 +14,14 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_CPU_VISUALIZER_ROW_H
#define SP_CPU_VISUALIZER_ROW_H
#include "visualizers/sp-line-visualizer-row.h"
#include "sp-line-visualizer-row.h"
G_BEGIN_DECLS

View File

@ -1,6 +1,6 @@
/* sp-empty-state-view.c
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,13 +14,15 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#define G_LOG_DOMAIN "sp-empty-state-view"
#include <string.h>
#include "widgets/sp-empty-state-view.h"
#include "sp-empty-state-view.h"
typedef struct
{

View File

@ -1,6 +1,6 @@
/* sp-empty-state-view.h
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,6 +14,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_EMPTY_STATE_VIEW_H

View File

@ -1,6 +1,6 @@
/* sp-failed-state-view.c
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,9 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#include "widgets/sp-failed-state-view.h"
#include "sp-failed-state-view.h"
G_DEFINE_TYPE (SpFailedStateView, sp_failed_state_view, GTK_TYPE_BIN)

View File

@ -1,6 +1,6 @@
/* sp-failed-state-view.h
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,6 +14,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_FAILED_STATE_VIEW_H
@ -21,7 +23,7 @@
#include <gtk/gtk.h>
#include "profiler/sp-profiler.h"
#include "sp-profiler.h"
G_BEGIN_DECLS

View File

@ -1,6 +1,6 @@
/* sp-line-visualizer-row.c
*
* Copyright (C) 2016 Christian Hergert <christian@hergert.me>
* Copyright 2016-2019 Christian Hergert <christian@hergert.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,6 +14,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#define G_LOG_DOMAIN "sp-line-visualizer-row"
@ -21,10 +23,10 @@
#include <stdlib.h>
#include <string.h>
#include "util/pointcache.h"
#include "capture/sp-capture-condition.h"
#include "capture/sp-capture-cursor.h"
#include "visualizers/sp-line-visualizer-row.h"
#include "pointcache.h"
#include "sp-capture-condition.h"
#include "sp-capture-cursor.h"
#include "sp-line-visualizer-row.h"
typedef struct
{
@ -119,7 +121,7 @@ load_data_free (gpointer data)
if (load != NULL)
{
g_clear_pointer (&load->lines, g_array_unref);
g_clear_object (&load->cursor);
g_clear_pointer (&load->cursor, sp_capture_cursor_unref);
g_clear_pointer (&load->cache, point_cache_unref);
g_slice_free (LoadData, load);
}

View File

@ -1,6 +1,6 @@
/* sp-line-visualizer-row.h
*
* Copyright (C) 2016 Christian Hergert <christian@hergert.me>
* Copyright 2016-2019 Christian Hergert <christian@hergert.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,12 +14,14 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_LINE_VISUALIZER_ROW_H
#define SP_LINE_VISUALIZER_ROW_H
#include "visualizers/sp-visualizer-row.h"
#include "sp-visualizer-row.h"
G_BEGIN_DECLS

View File

@ -1,6 +1,6 @@
/* sp-mark-visualizer-row.c
*
* Copyright 2018 Christian Hergert <chergert@redhat.com>
* Copyright 2018-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,14 +14,16 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#define G_LOG_DOMAIN "sp-mark-visualizer-row"
#include "capture/sp-capture-condition.h"
#include "capture/sp-capture-cursor.h"
#include "util/rectangles.h"
#include "visualizers/sp-mark-visualizer-row.h"
#include "sp-capture-condition.h"
#include "sp-capture-cursor.h"
#include "rectangles.h"
#include "sp-mark-visualizer-row.h"
typedef struct
{
@ -204,7 +206,7 @@ sp_mark_visualizer_row_worker (GTask *task,
g_assert (G_IS_TASK (task));
g_assert (SP_IS_MARK_VISUALIZER_ROW (source_object));
g_assert (state != NULL);
g_assert (SP_IS_CAPTURE_CURSOR (state->cursor));
g_assert (state->cursor != NULL);
sp_capture_cursor_foreach (state->cursor, sp_mark_visualizer_row_add_rect, state);

View File

@ -1,6 +1,6 @@
/* sp-mark-visualizer-row.h
*
* Copyright 2018 Christian Hergert <chergert@redhat.com>
* Copyright 2018-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,11 +14,13 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#pragma once
#include "visualizers/sp-visualizer-row.h"
#include "sp-visualizer-row.h"
G_BEGIN_DECLS

View File

@ -1,6 +1,6 @@
/* sp-model-filter.c
*
* Copyright (C) 2016 Christian Hergert <christian@hergert.me>
* Copyright 2016-2019 Christian Hergert <christian@hergert.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,9 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#include "util/sp-model-filter.h"
#include "sp-model-filter.h"
typedef struct
{

View File

@ -1,6 +1,6 @@
/* sp-model-filter.h
*
* Copyright (C) 2016 Christian Hergert <christian@hergert.me>
* Copyright 2016-2019 Christian Hergert <christian@hergert.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,6 +14,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_MODEL_FILTER_H

View File

@ -1,6 +1,6 @@
/* sp-multi-paned.c
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
@ -15,9 +15,11 @@
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#include "widgets/sp-multi-paned.h"
#include "sp-multi-paned.h"
#define HANDLE_WIDTH 10
#define HANDLE_HEIGHT 10

View File

@ -1,6 +1,6 @@
/* sp-multi-paned.h
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
@ -15,6 +15,8 @@
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_MULTI_PANED_H

View File

@ -1,6 +1,6 @@
/* sp-process-model-row.c
*
* Copyright (C) 2016 Christian Hergert <christian@hergert.me>
* Copyright 2016-2019 Christian Hergert <christian@hergert.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,9 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#include "widgets/sp-process-model-row.h"
#include "sp-process-model-row.h"
typedef struct
{

View File

@ -1,6 +1,6 @@
/* sp-process-model-row.h
*
* Copyright (C) 2016 Christian Hergert <christian@hergert.me>
* Copyright 2016-2019 Christian Hergert <christian@hergert.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,6 +14,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_PROCESS_MODEL_ROW_H
@ -21,7 +23,7 @@
#include <gtk/gtk.h>
#include "util/sp-process-model-item.h"
#include "sp-process-model-item.h"
G_BEGIN_DECLS

View File

@ -1,6 +1,6 @@
/* sp-profiler-menu-button.c
*
* Copyright (C) 2016 Christian Hergert <christian@hergert.me>
* Copyright 2016-2019 Christian Hergert <christian@hergert.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,16 +14,18 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#include <glib/gi18n.h>
#include <string.h>
#include "util/sp-model-filter.h"
#include "util/sp-process-model.h"
#include "util/sp-process-model-item.h"
#include "widgets/sp-process-model-row.h"
#include "widgets/sp-profiler-menu-button.h"
#include "sp-model-filter.h"
#include "sp-process-model.h"
#include "sp-process-model-item.h"
#include "sp-process-model-row.h"
#include "sp-profiler-menu-button.h"
typedef struct
{

View File

@ -1,6 +1,6 @@
/* sp-profiler-menu-button.h
*
* Copyright (C) 2016 Christian Hergert <christian@hergert.me>
* Copyright 2016-2019 Christian Hergert <christian@hergert.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,6 +14,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_PROFILER_MENU_BUTTON_H
@ -21,7 +23,7 @@
#include <gtk/gtk.h>
#include "profiler/sp-profiler.h"
#include "sp-profiler.h"
G_BEGIN_DECLS

View File

@ -1,6 +1,6 @@
/* sp-recording-state-view.c
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,9 +14,11 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#include "widgets/sp-recording-state-view.h"
#include "sp-recording-state-view.h"
typedef struct
{

View File

@ -1,6 +1,6 @@
/* sp-recording-state-view.h
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,6 +14,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_RECORDING_STATE_VIEW_H
@ -21,7 +23,7 @@
#include <gtk/gtk.h>
#include "profiler/sp-profiler.h"
#include "sp-profiler.h"
G_BEGIN_DECLS

View File

@ -1,6 +1,6 @@
/* sp-theme-manager.c
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,11 +14,13 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#define G_LOG_DOMAIN "sp-theme-manager"
#include "util/sp-theme-manager.h"
#include "sp-theme-manager.h"
struct _SpThemeManager
{

View File

@ -1,6 +1,6 @@
/* sp-theme-manager.h
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,6 +14,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_THEME_MANAGER_H

View File

@ -1,6 +1,6 @@
/* sp-visualizer-list.c
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,19 +14,20 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#define G_LOG_DOMAIN "sp-visualizer-list"
#include <glib/gi18n.h>
#include <sysprof.h>
#include "capture/sp-capture-condition.h"
#include "capture/sp-capture-cursor.h"
#include "visualizers/sp-cpu-visualizer-row.h"
#include "visualizers/sp-visualizer-list.h"
#include "visualizers/sp-visualizer-row.h"
#include "visualizers/sp-mark-visualizer-row.h"
#include "util/sp-zoom-manager.h"
#include "sp-cpu-visualizer-row.h"
#include "sp-visualizer-list.h"
#include "sp-visualizer-row.h"
#include "sp-mark-visualizer-row.h"
#include "sp-zoom-manager.h"
#define NSEC_PER_SEC G_GUINT64_CONSTANT(1000000000)
#define DEFAULT_PIXELS_PER_SECOND 20
@ -64,7 +65,7 @@ discovery_free (Discovery *state)
{
g_clear_pointer (&state->mark_groups, g_hash_table_unref);
g_clear_pointer (&state->memory, g_array_unref);
g_clear_object (&state->cursor);
g_clear_pointer (&state->cursor, sp_capture_cursor_unref);
g_slice_free (Discovery, state);
}
@ -258,7 +259,7 @@ discover_new_rows_worker (GTask *task,
Discovery *state = task_data;
g_assert (state != NULL);
g_assert (SP_IS_CAPTURE_CURSOR (state->cursor));
g_assert (state->cursor != NULL);
sp_capture_cursor_foreach (state->cursor, discover_new_rows_frame_cb, state);
g_task_return_boolean (task, TRUE);

View File

@ -1,6 +1,6 @@
/* sp-visualizer-list.h
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,6 +14,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_VISUALIZER_LIST_H
@ -21,8 +23,8 @@
#include <gtk/gtk.h>
#include "capture/sp-capture-reader.h"
#include "util/sp-zoom-manager.h"
#include "sp-capture-reader.h"
#include "sp-zoom-manager.h"
G_BEGIN_DECLS

View File

@ -1,6 +1,6 @@
/* sp-visualizer-row-private.h
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,12 +14,14 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_VISUALIZER_ROW_PRIVATE_H
#define SP_VISUALIZER_ROW_PRIVATE_H
#include "visualizers/sp-visualizer-row.h"
#include "sp-visualizer-row.h"
G_BEGIN_DECLS

View File

@ -1,6 +1,6 @@
/* sp-visualizer-row.c
*
* Copyright (C) 2016 Christian Hergert <christian@hergert.me>
* Copyright 2016-2019 Christian Hergert <christian@hergert.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,12 +14,14 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#define G_LOG_DOMAIN "sp-visualizer-row"
#include "visualizers/sp-visualizer-row.h"
#include "visualizers/sp-visualizer-row-private.h"
#include "sp-visualizer-row.h"
#include "sp-visualizer-row-private.h"
#define NSEC_PER_SEC G_GINT64_CONSTANT(1000000000)
#define DEFAULT_PIXELS_PER_SECOND 20

View File

@ -1,6 +1,6 @@
/* sp-visualizer-row.h
*
* Copyright (C) 2016 Christian Hergert <christian@hergert.me>
* Copyright 2016-2019 Christian Hergert <christian@hergert.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,6 +14,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_VISUALIZER_ROW_H
@ -21,8 +23,8 @@
#include <gtk/gtk.h>
#include "capture/sp-capture-reader.h"
#include "util/sp-zoom-manager.h"
#include "sp-capture-reader.h"
#include "sp-zoom-manager.h"
G_BEGIN_DECLS

View File

@ -1,6 +1,6 @@
/* sp-visualizer-ticks.c
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,11 +14,13 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#include <glib/gi18n.h>
#include "visualizers/sp-visualizer-ticks.h"
#include "sp-visualizer-ticks.h"
#define NSEC_PER_SEC G_GINT64_CONSTANT(1000000000)
#define NSEC_PER_HOUR (NSEC_PER_SEC * 60 * 60)

View File

@ -1,6 +1,6 @@
/* sp-visualizer-ticks.h
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,6 +14,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_VISUALIZER_TICKS_H

View File

@ -1,6 +1,6 @@
/* sp-visualizer-view.c
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,19 +14,21 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#define G_LOG_DOMAIN "sp-visualizer-view"
#include <glib/gi18n.h>
#include "util/sp-theme-manager.h"
#include "visualizers/sp-visualizer-list.h"
#include "visualizers/sp-visualizer-row.h"
#include "visualizers/sp-visualizer-row-private.h"
#include "util/sp-selection.h"
#include "visualizers/sp-visualizer-ticks.h"
#include "visualizers/sp-visualizer-view.h"
#include "sp-theme-manager.h"
#include "sp-visualizer-list.h"
#include "sp-visualizer-row.h"
#include "sp-visualizer-row-private.h"
#include "sp-selection.h"
#include "sp-visualizer-ticks.h"
#include "sp-visualizer-view.h"
#define NSEC_PER_SEC G_GINT64_CONSTANT(1000000000)
#define DEFAULT_PIXELS_PER_SECOND 20

View File

@ -1,6 +1,6 @@
/* sp-visualizer-view.h
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,16 +14,19 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_VISUALIZER_VIEW_H
#define SP_VISUALIZER_VIEW_H
#include <gtk/gtk.h>
#include <sysprof.h>
#include "visualizers/sp-visualizer-row.h"
#include "util/sp-selection.h"
#include "util/sp-zoom-manager.h"
#include "sp-visualizer-row.h"
#include "sp-selection.h"
#include "sp-zoom-manager.h"
G_BEGIN_DECLS

View File

@ -1,6 +1,6 @@
/* sp-zoom-manager.c
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,6 +14,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#define G_LOG_DOMAIN "sp-zoom-manager"
@ -21,7 +23,7 @@
#include <glib/gi18n.h>
#include <gio/gio.h>
#include "util/sp-zoom-manager.h"
#include "sp-zoom-manager.h"
struct _SpZoomManager
{

View File

@ -1,6 +1,6 @@
/* sp-zoom-manager.h
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,6 +14,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SP_ZOOM_MANAGER_H

View File

@ -1,6 +1,6 @@
/* sysprof-ui.h
*
* Copyright (C) 2016 Christian Hergert <christian@hergert.me>
* Copyright 2016-2019 Christian Hergert <christian@hergert.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,6 +14,8 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef SYSPROF_UI_H
@ -24,22 +26,22 @@
G_BEGIN_DECLS
#define SYSPROF_INSIDE
# include "callgraph/sp-callgraph-view.h"
# include "widgets/sp-cell-renderer-percent.h"
# include "visualizers/sp-cpu-visualizer-row.h"
# include "widgets/sp-failed-state-view.h"
# include "visualizers/sp-line-visualizer-row.h"
# include "widgets/sp-empty-state-view.h"
# include "util/sp-model-filter.h"
# include "widgets/sp-multi-paned.h"
# include "widgets/sp-recording-state-view.h"
# include "util/sp-process-model.h"
# include "util/sp-process-model-item.h"
# include "widgets/sp-process-model-row.h"
# include "widgets/sp-profiler-menu-button.h"
# include "visualizers/sp-visualizer-row.h"
# include "visualizers/sp-visualizer-view.h"
# include "util/sp-zoom-manager.h"
# include "sp-callgraph-view.h"
# include "sp-cell-renderer-percent.h"
# include "sp-cpu-visualizer-row.h"
# include "sp-failed-state-view.h"
# include "sp-line-visualizer-row.h"
# include "sp-empty-state-view.h"
# include "sp-model-filter.h"
# include "sp-multi-paned.h"
# include "sp-recording-state-view.h"
# include "sp-process-model.h"
# include "sp-process-model-item.h"
# include "sp-process-model-row.h"
# include "sp-profiler-menu-button.h"
# include "sp-visualizer-row.h"
# include "sp-visualizer-view.h"
# include "sp-zoom-manager.h"
#undef SYSPROF_INSIDE
G_END_DECLS

View File

@ -35,10 +35,9 @@
#include <sys/stat.h>
#include <stdint.h>
#include "util/binfile.h"
#include "util/elfparser.h"
#include "symbols/sp-symbol-dirs.h"
#include "binfile.h"
#include "elfparser.h"
#include "sp-symbol-dirs.h"
struct bin_file_t
{

View File

@ -1,6 +1,6 @@
/* demangle.h
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@ -20,8 +20,8 @@
#include <elf.h>
#include <sys/mman.h>
#include "util/demangle.h"
#include "util/elfparser.h"
#include "demangle.h"
#include "elfparser.h"
typedef struct Section Section;

View File

@ -0,0 +1,97 @@
libsysprof_public_sources = [
'sp-callgraph-profile.c',
'sp-capture-gobject.c',
'sp-elf-symbol-resolver.c',
'sp-gjs-source.c',
'sp-hostinfo-source.c',
'sp-jitmap-symbol-resolver.c',
'sp-kernel-symbol.c',
'sp-kernel-symbol-resolver.c',
'sp-local-profiler.c',
'sp-map-lookaside.c',
'sp-memory-source.c',
'sp-perf-counter.c',
'sp-perf-source.c',
'sp-process-model.c',
'sp-process-model-item.c',
'sp-proc-source.c',
'sp-profile.c',
'sp-profiler.c',
'sp-selection.c',
'sp-source.c',
'sp-symbol-dirs.c',
'sp-symbol-resolver.c',
]
libsysprof_public_headers = [
'sp-callgraph-profile.h',
'sp-callgraph-profile-private.h',
'sp-capture-gobject.h',
'sp-elf-symbol-resolver.h',
'sp-gjs-source.h',
'sp-hostinfo-source.h',
'sp-jitmap-symbol-resolver.h',
'sp-kernel-symbol.h',
'sp-kernel-symbol-resolver.h',
'sp-local-profiler.h',
'sp-map-lookaside.h',
'sp-memory-source.h',
'sp-perf-counter.h',
'sp-perf-source.h',
'sp-process-model.h',
'sp-process-model-item.h',
'sp-proc-source.h',
'sp-profile.h',
'sp-profiler.h',
'sp-selection.h',
'sp-source.h',
'sp-symbol-dirs.h',
'sp-symbol-resolver.h',
'sysprof.h',
]
libsysprof_private_sources = [
'binfile.c',
'demangle.cpp',
'elfparser.c',
'stackstash.c',
'sp-source-util.c',
]
libsysprof_deps = [
cxx.find_library('stdc++'),
dependency('gio-2.0', version: glib_req_version),
dependency('gio-unix-2.0', version: glib_req_version),
libsysprof_capture_dep,
libshared_dep,
]
if get_option('with_sysprofd') != 'none'
libsysprof_deps += dependency('polkit-gobject-1')
endif
libsysprof = shared_library('sysprof-@0@'.format(libsysprof_api_version),
libsysprof_public_sources + libsysprof_private_sources,
dependencies: libsysprof_deps,
c_args: [ '-DSYSPROF_COMPILATION' ],
install: true,
install_dir: get_option('libdir'),
)
libsysprof_dep = declare_dependency(
link_with: libsysprof,
dependencies: libsysprof_deps,
include_directories: include_directories('.'),
)
pkgconfig.generate(
subdirs: [ sysprof_header_subdir ],
version: meson.project_version(),
name: 'sysprof-@0@'.format(libsysprof_api_version),
filebase: 'sysprof-@0@'.format(libsysprof_api_version),
description: 'The library for console applications embedding sysprof',
install_dir: join_paths(get_option('libdir'), 'pkgconfig'),
requires: [ 'gio-2.0' ],
)
install_headers(libsysprof_public_headers, subdir: sysprof_header_subdir)

View File

@ -1,6 +1,6 @@
/* sp-callgraph-profile-private.h
*
* Copyright (C) 2016 Christian Hergert <christian@hergert.me>
* Copyright 2016 Christian Hergert <christian@hergert.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -19,8 +19,8 @@
#ifndef SP_CALLGRAPH_PROFILE_PRIVATE_H
#define SP_CALLGRAPH_PROFILE_PRIVATE_H
#include "callgraph/sp-callgraph-profile.h"
#include "util/stackstash.h"
#include "sp-callgraph-profile.h"
#include "stackstash.h"
G_BEGIN_DECLS

View File

@ -1,6 +1,6 @@
/* sp-callgraph-profile.c
*
* Copyright (C) 2016 Christian Hergert <christian@hergert.me>
* Copyright 2016 Christian Hergert <christian@hergert.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -36,19 +36,18 @@
#include <glib/gi18n.h>
#include <string.h>
#include <sysprof-capture.h>
#include <unistd.h>
#include "sp-address.h"
#include "callgraph/sp-callgraph-profile.h"
#include "callgraph/sp-callgraph-profile-private.h"
#include "capture/sp-capture-reader.h"
#include "symbols/sp-elf-symbol-resolver.h"
#include "symbols/sp-jitmap-symbol-resolver.h"
#include "util/sp-map-lookaside.h"
#include "symbols/sp-kernel-symbol-resolver.h"
#include "util/sp-selection.h"
#include "util/stackstash.h"
#include "sp-callgraph-profile.h"
#include "sp-callgraph-profile-private.h"
#include "sp-capture-reader.h"
#include "sp-elf-symbol-resolver.h"
#include "sp-jitmap-symbol-resolver.h"
#include "sp-map-lookaside.h"
#include "sp-kernel-symbol-resolver.h"
#include "sp-selection.h"
#include "stackstash.h"
#define CHECK_CANCELLABLE_INTERVAL 100

View File

@ -1,6 +1,6 @@
/* sp-callgraph-profile.h
*
* Copyright (C) 2016 Christian Hergert <christian@hergert.me>
* Copyright 2016 Christian Hergert <christian@hergert.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -19,8 +19,8 @@
#ifndef SP_CALLGRAPH_PROFILE_H
#define SP_CALLGRAPH_PROFILE_H
#include "profiler/sp-profile.h"
#include "util/sp-selection.h"
#include "sp-profile.h"
#include "sp-selection.h"
G_BEGIN_DECLS

View File

@ -0,0 +1,25 @@
/* sp-capture-gobject.c
*
* Copyright 2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#include "sp-capture-gobject.h"
G_DEFINE_BOXED_TYPE (SpCaptureReader, sp_capture_reader, (GBoxedCopyFunc)sp_capture_reader_ref, (GBoxedFreeFunc)sp_capture_reader_unref)
G_DEFINE_BOXED_TYPE (SpCaptureWriter, sp_capture_writer, (GBoxedCopyFunc)sp_capture_writer_ref, (GBoxedFreeFunc)sp_capture_writer_unref)
G_DEFINE_BOXED_TYPE (SpCaptureCursor, sp_capture_cursor, (GBoxedCopyFunc)sp_capture_cursor_ref, (GBoxedFreeFunc)sp_capture_cursor_unref)

View File

@ -0,0 +1,36 @@
/* sp-capture-gobject.h
*
* Copyright 2019 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#pragma once
#include <glib-object.h>
#include <sysprof-capture.h>
G_BEGIN_DECLS
#define SP_TYPE_CAPTURE_READER (sp_capture_reader_get_type())
#define SP_TYPE_CAPTURE_WRITER (sp_capture_writer_get_type())
#define SP_TYPE_CAPTURE_CURSOR (sp_capture_cursor_get_type())
GType sp_capture_reader_get_type (void);
GType sp_capture_writer_get_type (void);
GType sp_capture_cursor_get_type (void);
G_END_DECLS

View File

@ -1,6 +1,6 @@
/* sp-elf-symbol-resolver.c
*
* Copyright (C) 2016 Christian Hergert <chergert@redhat.com>
* Copyright 2016 Christian Hergert <chergert@redhat.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -18,10 +18,10 @@
#include <string.h>
#include "symbols/sp-elf-symbol-resolver.h"
#include "util/binfile.h"
#include "util/elfparser.h"
#include "util/sp-map-lookaside.h"
#include "sp-elf-symbol-resolver.h"
#include "binfile.h"
#include "elfparser.h"
#include "sp-map-lookaside.h"
struct _SpElfSymbolResolver
{

Some files were not shown because too many files have changed in this diff Show More