[sysprof: 8/63] libsysprof-capture: Move autocleanup definitions to libsysprof



commit d2047fb5570429266b540fcef697b01b57b9838b
Author: Philip Withnall <withnall endlessm com>
Date:   Tue Jun 30 16:30:14 2020 +0100

    libsysprof-capture: Move autocleanup definitions to libsysprof
    
    In preparation for dropping the GLib dependency from libsysprof-capture,
    move the autocleanup definitions up to libsysprof. Add a new header for
    them.
    
    This is slightly awkward in the tools, which depend on
    libsysprof-capture but not libsysprof. Rather than make them depend on
    libsysprof (which might be disabled at configure time), include the
    `sysprof-capture-autocleanups.h` file between source directories.
    `SYSPROF_COMPILATION` needs to be defined for this to work.
    
    Signed-off-by: Philip Withnall <withnall endlessm com>
    
    Helps: #40

 src/libsysprof-capture/sysprof-capture-condition.h |  2 --
 src/libsysprof-capture/sysprof-capture-cursor.h    |  2 --
 src/libsysprof-capture/sysprof-capture-reader.h    |  1 -
 src/libsysprof-capture/sysprof-capture-writer.h    |  2 --
 src/libsysprof/meson.build                         |  1 +
 src/libsysprof/sysprof-capture-autocleanups.h      | 41 ++++++++++++++++++++++
 src/libsysprof/sysprof-local-profiler.c            |  1 +
 src/libsysprof/sysprof-memprof-profile.c           |  1 +
 src/libsysprof/sysprof-tracefd-source.c            |  1 +
 src/libsysprof/sysprof.h                           |  1 +
 src/tools/list-threads.c                           |  2 ++
 src/tools/meson.build                              |  7 ++++
 src/tools/sysprof-cat.c                            |  1 +
 13 files changed, 56 insertions(+), 7 deletions(-)
---
diff --git a/src/libsysprof-capture/sysprof-capture-condition.h 
b/src/libsysprof-capture/sysprof-capture-condition.h
index 077b8ce..33c356c 100644
--- a/src/libsysprof-capture/sysprof-capture-condition.h
+++ b/src/libsysprof-capture/sysprof-capture-condition.h
@@ -91,6 +91,4 @@ SYSPROF_AVAILABLE_IN_ALL
 gboolean                 sysprof_capture_condition_match                  (const SysprofCaptureCondition 
*self,
                                                                            const SysprofCaptureFrame     
*frame);
 
-G_DEFINE_AUTOPTR_CLEANUP_FUNC (SysprofCaptureCondition, sysprof_capture_condition_unref)
-
 G_END_DECLS
diff --git a/src/libsysprof-capture/sysprof-capture-cursor.h b/src/libsysprof-capture/sysprof-capture-cursor.h
index 19d4fb4..13ef791 100644
--- a/src/libsysprof-capture/sysprof-capture-cursor.h
+++ b/src/libsysprof-capture/sysprof-capture-cursor.h
@@ -97,6 +97,4 @@ SYSPROF_AVAILABLE_IN_ALL
 void                  sysprof_capture_cursor_add_condition (SysprofCaptureCursor         *self,
                                                             SysprofCaptureCondition      *condition);
 
-G_DEFINE_AUTOPTR_CLEANUP_FUNC (SysprofCaptureCursor, sysprof_capture_cursor_unref)
-
 G_END_DECLS
diff --git a/src/libsysprof-capture/sysprof-capture-reader.h b/src/libsysprof-capture/sysprof-capture-reader.h
index 3c58524..9c732b0 100644
--- a/src/libsysprof-capture/sysprof-capture-reader.h
+++ b/src/libsysprof-capture/sysprof-capture-reader.h
@@ -147,6 +147,5 @@ gboolean                            sysprof_capture_reader_read_file_fd        (
                                                                                 const gchar               
*path,
                                                                                 gint                       
fd);
 
-G_DEFINE_AUTOPTR_CLEANUP_FUNC (SysprofCaptureReader, sysprof_capture_reader_unref)
 
 G_END_DECLS
diff --git a/src/libsysprof-capture/sysprof-capture-writer.h b/src/libsysprof-capture/sysprof-capture-writer.h
index 6e49025..409e88b 100644
--- a/src/libsysprof-capture/sysprof-capture-writer.h
+++ b/src/libsysprof-capture/sysprof-capture-writer.h
@@ -249,6 +249,4 @@ gboolean              _sysprof_capture_writer_set_time_range                 (Sy
                                                                               gint64                         
    end_time) G_GNUC_INTERNAL;
 
 
-G_DEFINE_AUTOPTR_CLEANUP_FUNC (SysprofCaptureWriter, sysprof_capture_writer_unref)
-
 G_END_DECLS
diff --git a/src/libsysprof/meson.build b/src/libsysprof/meson.build
index 6611a0d..e2df0b8 100644
--- a/src/libsysprof/meson.build
+++ b/src/libsysprof/meson.build
@@ -37,6 +37,7 @@ libsysprof_public_sources = [
 libsysprof_public_headers = [
   'sysprof-battery-source.h',
   'sysprof-callgraph-profile.h',
+  'sysprof-capture-autocleanups.h',
   'sysprof-capture-gobject.h',
   'sysprof-capture-symbol-resolver.h',
   'sysprof-control-source.h',
diff --git a/src/libsysprof/sysprof-capture-autocleanups.h b/src/libsysprof/sysprof-capture-autocleanups.h
new file mode 100644
index 0000000..d640b7e
--- /dev/null
+++ b/src/libsysprof/sysprof-capture-autocleanups.h
@@ -0,0 +1,41 @@
+/* sysprof-capture-gobject.h
+ *
+ * Copyright 2020 Endless Mobile, Inc.
+ *
+ * Author:
+ *  - Philip Withnall <withnall endlessm 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
+
+#if !defined (SYSPROF_INSIDE) && !defined (SYSPROF_COMPILATION)
+# error "Only <sysprof.h> can be included directly."
+#endif
+
+#include <glib.h>
+
+#include "sysprof-capture.h"
+
+G_BEGIN_DECLS
+
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (SysprofCaptureCondition, sysprof_capture_condition_unref)
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (SysprofCaptureCursor, sysprof_capture_cursor_unref)
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (SysprofCaptureReader, sysprof_capture_reader_unref)
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (SysprofCaptureWriter, sysprof_capture_writer_unref)
+
+G_END_DECLS
diff --git a/src/libsysprof/sysprof-local-profiler.c b/src/libsysprof/sysprof-local-profiler.c
index 37f7e9e..f993a8e 100644
--- a/src/libsysprof/sysprof-local-profiler.c
+++ b/src/libsysprof/sysprof-local-profiler.c
@@ -34,6 +34,7 @@
 #include "sysprof-local-profiler.h"
 #include "sysprof-platform.h"
 
+#include "sysprof-capture-autocleanups.h"
 #include "sysprof-control-source.h"
 #include "sysprof-gjs-source.h"
 #include "sysprof-hostinfo-source.h"
diff --git a/src/libsysprof/sysprof-memprof-profile.c b/src/libsysprof/sysprof-memprof-profile.c
index a8f5c48..dca1cca 100644
--- a/src/libsysprof/sysprof-memprof-profile.c
+++ b/src/libsysprof/sysprof-memprof-profile.c
@@ -24,6 +24,7 @@
 
 #include <sysprof-capture.h>
 
+#include "sysprof-capture-autocleanups.h"
 #include "sysprof-capture-symbol-resolver.h"
 #include "sysprof-elf-symbol-resolver.h"
 #include "sysprof-kernel-symbol-resolver.h"
diff --git a/src/libsysprof/sysprof-tracefd-source.c b/src/libsysprof/sysprof-tracefd-source.c
index af5e90e..a59cd1d 100644
--- a/src/libsysprof/sysprof-tracefd-source.c
+++ b/src/libsysprof/sysprof-tracefd-source.c
@@ -25,6 +25,7 @@
 #include <errno.h>
 #include <sysprof-capture.h>
 
+#include "sysprof-capture-autocleanups.h"
 #include "sysprof-platform.h"
 #include "sysprof-tracefd-source.h"
 
diff --git a/src/libsysprof/sysprof.h b/src/libsysprof/sysprof.h
index c682f2f..c9164f7 100644
--- a/src/libsysprof/sysprof.h
+++ b/src/libsysprof/sysprof.h
@@ -26,6 +26,7 @@ G_BEGIN_DECLS
 
 # include "sysprof-battery-source.h"
 # include "sysprof-callgraph-profile.h"
+# include "sysprof-capture-autocleanups.h"
 # include "sysprof-capture-gobject.h"
 # include "sysprof-capture-symbol-resolver.h"
 # include "sysprof-control-source.h"
diff --git a/src/tools/list-threads.c b/src/tools/list-threads.c
index 42bfc1d..5016c7b 100644
--- a/src/tools/list-threads.c
+++ b/src/tools/list-threads.c
@@ -24,6 +24,8 @@
 #include <sysprof-capture.h>
 #include <unistd.h>
 
+#include "../libsysprof/sysprof-capture-autocleanups.h"
+
 static gboolean
 foreach_cb (const SysprofCaptureFrame *frame,
             gpointer                   user_data)
diff --git a/src/tools/meson.build b/src/tools/meson.build
index bb6603d..7cd6927 100644
--- a/src/tools/meson.build
+++ b/src/tools/meson.build
@@ -3,10 +3,13 @@ tools_deps = [
   libsysprof_capture_dep,
 ]
 
+tools_cflags = [ '-DSYSPROF_COMPILATION ']
+
 if get_option('libsysprof') and host_machine.system() == 'linux'
   polkit_agent_dep = dependency('polkit-agent-1')
   sysprof_cli = executable('sysprof-cli', 'sysprof-cli.c',
     dependencies: tools_deps + [libsysprof_dep, polkit_dep, polkit_agent_dep],
+          c_args: tools_cflags,
      install_dir: get_option('bindir'),
          install: true,
   )
@@ -14,21 +17,25 @@ endif
 
 sysprof_cat = executable('sysprof-cat', 'sysprof-cat.c',
   dependencies: tools_deps,
+        c_args: tools_cflags,
        install: false,
 )
 
 sysprof_dump = executable('sysprof-dump', 'sysprof-dump.c',
   dependencies: tools_deps,
+        c_args: tools_cflags,
        install: false,
 )
 
 sysprof_profiler_ctl = executable('sysprof-profiler-ctl',
   [ 'sysprof-profiler-ctl.c', ipc_profiler_src ],
   dependencies: [ tools_deps, gio_unix_dep ],
+        c_args: tools_cflags,
        install: false,
 )
 
 list_threads = executable('list-threads', ['list-threads.c'],
   dependencies: [ tools_deps ],
+        c_args: tools_cflags,
        install: false,
 )
diff --git a/src/tools/sysprof-cat.c b/src/tools/sysprof-cat.c
index 5d53435..eeca139 100644
--- a/src/tools/sysprof-cat.c
+++ b/src/tools/sysprof-cat.c
@@ -29,6 +29,7 @@
 #include <sysprof-capture.h>
 #include <unistd.h>
 
+#include "../libsysprof/sysprof-capture-autocleanups.h"
 #include "sysprof-capture-util-private.h"
 
 gint


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]