From 70830bd01902b7d312ec7cb495e06e6929df18f6 Mon Sep 17 00:00:00 2001 From: Tristan Partin Date: Fri, 28 Jul 2023 13:07:47 -0500 Subject: [PATCH 01/11] meson: use SPDX license string --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index f41bc27c..df895ba8 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('sysprof', ['c', 'cpp'], - license: ['GPL3+', 'GPL2+'], + license: 'GPL-3.0-or-later OR GPL-2.0-or-later', version: '45.alpha', meson_version: '>=0.59.0', default_options: [ 'c_std=gnu17', From 79ba6ab3d57e966d9ce35744fd9fda0011125419 Mon Sep 17 00:00:00 2001 From: Tristan Partin Date: Fri, 28 Jul 2023 13:09:48 -0500 Subject: [PATCH 02/11] meson: remove explicit pkgconfig install_dir This is the default. --- src/libsysprof-capture/meson.build | 1 - src/libsysprof/meson.build | 1 - 2 files changed, 2 deletions(-) diff --git a/src/libsysprof-capture/meson.build b/src/libsysprof-capture/meson.build index aa75b636..cb2eb36c 100644 --- a/src/libsysprof-capture/meson.build +++ b/src/libsysprof-capture/meson.build @@ -75,7 +75,6 @@ if install_static libsysprof_capture, subdirs: [ sysprof_header_subdir ], description: 'The static capture library for tools that generate profiling capture data', - install_dir: join_paths(get_option('libdir'), 'pkgconfig'), variables: [ 'datadir=' + datadir_for_pc_file ], libraries_private: libsysprof_capture_deps, ) diff --git a/src/libsysprof/meson.build b/src/libsysprof/meson.build index e7855fa8..7d221ff9 100644 --- a/src/libsysprof/meson.build +++ b/src/libsysprof/meson.build @@ -225,7 +225,6 @@ meson.override_dependency('sysprof-@0@'.format(soname_major_version), libsysprof pkgconfig.generate(libsysprof, subdirs: [sysprof_header_subdir], description: 'A library for recording and analyzing system performance', - install_dir: join_paths(get_option('libdir'), 'pkgconfig'), requires: ['gio-2.0'], variables: ['datadir=' + datadir_for_pc_file], ) From 39fc1161f69eefd7d7b5fd48baf9a8878adc0389 Mon Sep 17 00:00:00 2001 From: Tristan Partin Date: Fri, 28 Jul 2023 13:10:54 -0500 Subject: [PATCH 03/11] meson: cleanup formatting --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index df895ba8..2e4c4a48 100644 --- a/meson.build +++ b/meson.build @@ -39,7 +39,7 @@ need_glib = (need_gtk or get_option('examples') or get_option('sysprofd') != 'none' or get_option('tools') or - get_option('tests')) + get_option('tests')) need_libsysprof = (need_gtk or get_option('libsysprof') or get_option('examples') or From f93767cfb244b87271c823761d5ea0f838227f5e Mon Sep 17 00:00:00 2001 From: Tristan Partin Date: Fri, 28 Jul 2023 14:00:04 -0500 Subject: [PATCH 04/11] meson: use variables for gio-2.0, glib-2.0, and gio-unix-2.0 --- contrib/eggbitset/meson.build | 2 +- contrib/linereader/meson.build | 2 +- meson.build | 2 ++ src/libsysprof-capture/tests/meson.build | 2 +- src/libsysprof/meson.build | 6 ++---- src/sysprofd/meson.build | 6 +++--- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/contrib/eggbitset/meson.build b/contrib/eggbitset/meson.build index 0b5fd036..82cd8a40 100644 --- a/contrib/eggbitset/meson.build +++ b/contrib/eggbitset/meson.build @@ -3,7 +3,7 @@ libeggbitset_sources = [ ] libeggbitset_deps = [ - dependency('gio-2.0', version: glib_req_version), + gio_dep, ] libeggbitset_static = static_library('eggbitset', libeggbitset_sources, diff --git a/contrib/linereader/meson.build b/contrib/linereader/meson.build index 9055b71e..ef78c3ae 100644 --- a/contrib/linereader/meson.build +++ b/contrib/linereader/meson.build @@ -1,5 +1,5 @@ liblinereader_deps = [ - dependency('gio-2.0', version: glib_req_version), + gio_dep, ] liblinereader_static_dep = declare_dependency( diff --git a/meson.build b/meson.build index 2e4c4a48..44397b12 100644 --- a/meson.build +++ b/meson.build @@ -60,6 +60,8 @@ cc = meson.get_compiler('c') cxx = meson.get_compiler('cpp') glib_dep = dependency('glib-2.0', version: glib_req_version, required: need_glib) +gio_dep = dependency('gio-2.0', version: glib_req_version, required: need_glib) +gio_unix_dep = dependency('gio-unix-2.0', version: glib_req_version, required: host_machine.system() != 'windows') gtk_dep = dependency('gtk4', version: gtk_req_version, required: need_gtk) libsystemd_dep = dependency('libsystemd', required: false) diff --git a/src/libsysprof-capture/tests/meson.build b/src/libsysprof-capture/tests/meson.build index d5d7ddb0..db0a3681 100644 --- a/src/libsysprof-capture/tests/meson.build +++ b/src/libsysprof-capture/tests/meson.build @@ -25,7 +25,7 @@ libsysprof_capture_testsuite = { } libsysprof_capture_testsuite_deps = [ - dependency('gio-2.0'), + gio_dep, libsysprof_capture_dep, ] diff --git a/src/libsysprof/meson.build b/src/libsysprof/meson.build index 7d221ff9..1c3ed34a 100644 --- a/src/libsysprof/meson.build +++ b/src/libsysprof/meson.build @@ -171,10 +171,8 @@ libsysprof_resources = gnome.compile_resources('libsysprof-resources', 'libsyspr ) libsysprof_deps = [ - dependency('gio-2.0', version: glib_req_version), - dependency('gio-unix-2.0', - version: glib_req_version, - required: host_machine.system() != 'windows'), + gio_dep, + gio_unix_dep, dependency('libdex-1', version: dex_req_version), dependency('json-glib-1.0'), diff --git a/src/sysprofd/meson.build b/src/sysprofd/meson.build index 456d7a9a..254c4d6c 100644 --- a/src/sysprofd/meson.build +++ b/src/sysprofd/meson.build @@ -23,9 +23,9 @@ sysprofd_sources = [ pkglibexecdir = join_paths(get_option('prefix'), get_option('libexecdir')) sysprofd_deps = [ - dependency('glib-2.0', version: glib_req_version), - dependency('gio-2.0', version: glib_req_version), - dependency('gio-unix-2.0', version: glib_req_version), + glib_dep, + gio_dep, + gio_unix_dep, polkit_dep, libsysprof_capture_dep, From b10d056635fee0f4e5caa8e4f19849961e0f8b67 Mon Sep 17 00:00:00 2001 From: Tristan Partin Date: Fri, 28 Jul 2023 14:00:57 -0500 Subject: [PATCH 05/11] meson: use dependency('dl') Added in Meson 0.62.0. It aids in finding libdl on various platforms. --- meson.build | 2 +- src/preload/meson.build | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build index 44397b12..cca0a644 100644 --- a/meson.build +++ b/meson.build @@ -1,7 +1,7 @@ project('sysprof', ['c', 'cpp'], license: 'GPL-3.0-or-later OR GPL-2.0-or-later', version: '45.alpha', - meson_version: '>=0.59.0', + meson_version: '>=0.62.0', default_options: [ 'c_std=gnu17', 'cpp_std=gnu++17', 'warning_level=2', diff --git a/src/preload/meson.build b/src/preload/meson.build index 9c39af50..924a6ddf 100644 --- a/src/preload/meson.build +++ b/src/preload/meson.build @@ -1,4 +1,4 @@ -libdl_dep = cc.find_library('dl', required: false) +libdl_dep = dependency('dl', required: false) preload_deps = [ dependency('glib-2.0'), From 50cfd82286b759546ad08a891f49c2b4f143de0b Mon Sep 17 00:00:00 2001 From: Tristan Partin Date: Fri, 28 Jul 2023 14:02:33 -0500 Subject: [PATCH 06/11] meson: remove extraneous default install_dir arguments --- src/libsysprof-capture/meson.build | 1 - src/preload/meson.build | 3 --- src/sysprof-agent/meson.build | 1 - src/sysprof-cli/meson.build | 1 - src/sysprof/meson.build | 1 - 5 files changed, 7 deletions(-) diff --git a/src/libsysprof-capture/meson.build b/src/libsysprof-capture/meson.build index cb2eb36c..64a87795 100644 --- a/src/libsysprof-capture/meson.build +++ b/src/libsysprof-capture/meson.build @@ -55,7 +55,6 @@ libsysprof_capture = static_library( dependencies: libsysprof_capture_deps, c_args: [ '-DSYSPROF_CAPTURE_COMPILATION' ], - install_dir: get_option('libdir'), install: install_static, gnu_symbol_visibility: 'hidden', pic: true, diff --git a/src/preload/meson.build b/src/preload/meson.build index 924a6ddf..602bb531 100644 --- a/src/preload/meson.build +++ b/src/preload/meson.build @@ -15,19 +15,16 @@ libsysprof_memory_preload = shared_library('sysprof-memory-@0@'.format(libsyspro ['sysprof-memory-collector.c'], dependencies: preload_deps, install: true, - install_dir: get_option('libdir'), ) libsysprof_speedtrack_preload = shared_library('sysprof-speedtrack-@0@'.format(libsysprof_api_version), ['sysprof-speedtrack-collector.c'], dependencies: preload_deps, install: true, - install_dir: get_option('libdir'), ) libsysprof_tracer_preload = shared_library('sysprof-tracer-@0@'.format(libsysprof_api_version), ['sysprof-tracer-collector.c'], dependencies: preload_deps, install: true, - install_dir: get_option('libdir'), ) diff --git a/src/sysprof-agent/meson.build b/src/sysprof-agent/meson.build index 7713abce..ccd9a463 100644 --- a/src/sysprof-agent/meson.build +++ b/src/sysprof-agent/meson.build @@ -19,7 +19,6 @@ sysprof_agent_deps = [ sysprof_agent = executable('sysprof-agent', sysprof_agent_sources, dependencies: sysprof_agent_deps, c_args: release_flags + sysprof_agent_c_args, - install_dir: get_option('bindir'), install: true, ) diff --git a/src/sysprof-cli/meson.build b/src/sysprof-cli/meson.build index 4bf0acc6..a6ea83e1 100644 --- a/src/sysprof-cli/meson.build +++ b/src/sysprof-cli/meson.build @@ -14,6 +14,5 @@ sysprof_cli_deps = [ sysprof_cli = executable('sysprof-cli', sysprof_cli_sources, dependencies: sysprof_cli_deps, c_args: release_flags + sysprof_cli_c_args, - install_dir: get_option('bindir'), install: true, ) diff --git a/src/sysprof/meson.build b/src/sysprof/meson.build index 6a246d9e..0c64bb76 100644 --- a/src/sysprof/meson.build +++ b/src/sysprof/meson.build @@ -84,6 +84,5 @@ sysprof_deps = [ sysprof = executable('sysprof', sysprof_resources + sysprof_sources, dependencies: sysprof_deps, - install_dir: get_option('bindir'), install: true, ) From f40587a38a4dea7b4ecdf89e20cded9df8d2e0d3 Mon Sep 17 00:00:00 2001 From: Tristan Partin Date: Fri, 28 Jul 2023 14:03:51 -0500 Subject: [PATCH 07/11] meson: remove unnecessary argument nesting --- meson.build | 4 ++-- src/libsysprof-capture/meson.build | 12 ++++++------ src/sysprof-agent/meson.build | 2 +- src/sysprofd/meson.build | 7 +++---- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/meson.build b/meson.build index cca0a644..fa4e278b 100644 --- a/meson.build +++ b/meson.build @@ -1,4 +1,4 @@ -project('sysprof', ['c', 'cpp'], +project('sysprof', 'c', 'cpp', license: 'GPL-3.0-or-later OR GPL-2.0-or-later', version: '45.alpha', meson_version: '>=0.62.0', @@ -135,7 +135,7 @@ has_clockid = cc.has_member('struct perf_event_attr', config_h.set('HAVE_PERF_CLOCKID', has_use_clockid and has_clockid) # For config.h -add_project_arguments(['-I'+meson.current_build_dir()], language: 'c') +add_project_arguments('-I' + meson.current_build_dir(), language: 'c') global_c_args = [ '-DSYSPROF_COMPILATION', diff --git a/src/libsysprof-capture/meson.build b/src/libsysprof-capture/meson.build index 64a87795..828b8ed2 100644 --- a/src/libsysprof-capture/meson.build +++ b/src/libsysprof-capture/meson.build @@ -1,6 +1,6 @@ install_static = not meson.is_subproject() and get_option('install-static') -libsysprof_capture_headers = files([ +libsysprof_capture_headers = files( 'sysprof-address.h', 'sysprof-clock.h', 'sysprof-capture-condition.h', @@ -13,17 +13,17 @@ libsysprof_capture_headers = files([ 'sysprof-platform.h', 'sysprof-capture.h', 'sysprof-version-macros.h', -]) +) if not meson.is_subproject() install_headers(libsysprof_capture_headers, subdir: sysprof_header_subdir) endif -mapped_ring_buffer_sources = files([ +mapped_ring_buffer_sources = files( 'mapped-ring-buffer.c', -]) +) -libsysprof_capture_sources = files([ +libsysprof_capture_sources = files( 'sysprof-address.c', 'sysprof-capture-condition.c', 'sysprof-capture-cursor.c', @@ -34,7 +34,7 @@ libsysprof_capture_sources = files([ 'sysprof-collector.c', 'sysprof-clock.c', 'sysprof-platform.c', -]) +) configure_file( input: 'sysprof-version.h.in', diff --git a/src/sysprof-agent/meson.build b/src/sysprof-agent/meson.build index ccd9a463..d85b828f 100644 --- a/src/sysprof-agent/meson.build +++ b/src/sysprof-agent/meson.build @@ -22,6 +22,6 @@ sysprof_agent = executable('sysprof-agent', sysprof_agent_sources, install: true, ) -install_data(['org.gnome.Sysprof.Agent.xml'], +install_data('org.gnome.Sysprof.Agent.xml', install_dir: join_paths(datadir, 'dbus-1/interfaces'), ) diff --git a/src/sysprofd/meson.build b/src/sysprofd/meson.build index 254c4d6c..34901f44 100644 --- a/src/sysprofd/meson.build +++ b/src/sysprofd/meson.build @@ -80,9 +80,8 @@ i18n.merge_file( install_dir: join_paths(datadir, 'polkit-1/actions'), ) -install_data([ - 'org.gnome.Sysprof3.Profiler.xml', - 'org.gnome.Sysprof3.Service.xml', - ], +install_data( + 'org.gnome.Sysprof3.Profiler.xml', + 'org.gnome.Sysprof3.Service.xml', install_dir: join_paths(datadir, 'dbus-1/interfaces'), ) From 602a4d7fa7f1c20c6663c2902c0429d379e394c7 Mon Sep 17 00:00:00 2001 From: Tristan Partin Date: Fri, 28 Jul 2023 14:04:48 -0500 Subject: [PATCH 08/11] meson: remove unnecessary join_path() with get_option('prefix') Meson will expand the paths for you. --- meson.build | 4 ++-- src/sysprofd/meson.build | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/meson.build b/meson.build index fa4e278b..49ab73d0 100644 --- a/meson.build +++ b/meson.build @@ -72,8 +72,8 @@ 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()) config_h.set_quoted('PACKAGE_BUGREPORT', 'https://gitlab.gnome.org/GNOME/sysprof/-/issues/new') -config_h.set_quoted('PACKAGE_LIBEXECDIR', join_paths(get_option('prefix'), get_option('libexecdir'))) -config_h.set_quoted('PACKAGE_LIBDIR', join_paths(get_option('prefix'), get_option('libdir'))) +config_h.set_quoted('PACKAGE_LIBEXECDIR', get_option('libexecdir')) +config_h.set_quoted('PACKAGE_LIBDIR', get_option('libdir')) config_h.set('PACKAGE_TARNAME', 'PACKAGE_STRING') config_h.set('PACKAGE', 'PACKAGE_NAME') config_h.set('VERSION', 'PACKAGE_VERSION') diff --git a/src/sysprofd/meson.build b/src/sysprofd/meson.build index 34901f44..7aea6631 100644 --- a/src/sysprofd/meson.build +++ b/src/sysprofd/meson.build @@ -20,7 +20,7 @@ sysprofd_sources = [ ipc_service_src, ] -pkglibexecdir = join_paths(get_option('prefix'), get_option('libexecdir')) +pkglibexecdir = get_option('libexecdir') sysprofd_deps = [ glib_dep, From 4927e75b0b97ea1ac1efe752a149b26872110375 Mon Sep 17 00:00:00 2001 From: Tristan Partin Date: Fri, 28 Jul 2023 14:05:36 -0500 Subject: [PATCH 09/11] meson: fix future deprecation warning --- meson_options.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson_options.txt b/meson_options.txt index d36570ad..970022f2 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,7 +1,7 @@ # If this is a development build, which is used for our Flatpak build # so that we have a different app-id (.Devel suffix) than the regular # application. -option('development', type: 'boolean', value: 'false') +option('development', type: 'boolean', value: false) # Optionally disable the GTK application in case you're building the # sysprof-cli only for your platform. Might be useful in IoT or various From ba2f3b23c696ef1ba9a73c103d4d851e24c46293 Mon Sep 17 00:00:00 2001 From: Tristan Partin Date: Fri, 28 Jul 2023 14:06:00 -0500 Subject: [PATCH 10/11] meson: use to_string() method on integer --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 49ab73d0..ba3f1cc3 100644 --- a/meson.build +++ b/meson.build @@ -67,7 +67,7 @@ libsystemd_dep = dependency('libsystemd', required: false) config_h = configuration_data() config_h.set_quoted('SYMBOLIC_VERSION', symbolic_version) -config_h.set_quoted('API_VERSION_S', '@0@'.format(libsysprof_api_version)) +config_h.set_quoted('API_VERSION_S', libsysprof_api_version.to_string()) 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()) From bdd6ea8165257e852ead70f707eb0f83995ea8cb Mon Sep 17 00:00:00 2001 From: Tristan Partin Date: Fri, 28 Jul 2023 14:06:22 -0500 Subject: [PATCH 11/11] meson: remove useless if statement Just always pass the boolean option. --- meson.build | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/meson.build b/meson.build index ba3f1cc3..ac03c744 100644 --- a/meson.build +++ b/meson.build @@ -122,9 +122,7 @@ if get_option('libunwind') endif # Development build setup -if get_option('development') - config_h.set10('DEVELOPMENT_BUILD', true) -endif +config_h.set10('DEVELOPMENT_BUILD', get_option('development')) has_use_clockid = cc.has_member('struct perf_event_attr', 'use_clockid',