diff --git a/example/meson.build b/example/meson.build
index de1cc6b..549bb48 100644
--- a/example/meson.build
+++ b/example/meson.build
@@ -1,9 +1,10 @@
-examples = [
-  'pulse',
-]
+examples = ['pulse']
 
 foreach example : examples
-  executable(example, example + '.cpp',
-             implicit_include_directories: false,
-             dependencies: gpioplus_dep)
+    executable(
+        example,
+        example + '.cpp',
+        implicit_include_directories: false,
+        dependencies: gpioplus_dep,
+    )
 endforeach
diff --git a/meson.build b/meson.build
index 8386839..0a45add 100644
--- a/meson.build
+++ b/meson.build
@@ -1,13 +1,15 @@
 project(
-  'gpioplus',
-  'cpp',
-  version: '0.1', meson_version: '>=1.1.1',
-  default_options: [
-    'warning_level=3',
-    'cpp_std=c++23',
-    'tests=' + (meson.is_subproject() ? 'disabled' : 'auto'),
-    'examples=' + (meson.is_subproject() ? 'false' : 'true'),
-  ])
+    'gpioplus',
+    'cpp',
+    version: '0.1',
+    meson_version: '>=1.1.1',
+    default_options: [
+        'warning_level=3',
+        'cpp_std=c++23',
+        'tests=' + (meson.is_subproject() ? 'disabled' : 'auto'),
+        'examples=' + (meson.is_subproject() ? 'false' : 'true'),
+    ],
+)
 
 subdir('src')
 
@@ -15,8 +17,8 @@
 build_examples = get_option('examples')
 
 if build_examples
-  subdir('example')
+    subdir('example')
 endif
 if build_tests.allowed()
-  subdir('test')
+    subdir('test')
 endif
diff --git a/src/meson.build b/src/meson.build
index c6fc4ab..df15825 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -1,46 +1,49 @@
 gpioplus_headers = include_directories('.')
 
 gpioplus_lib = library(
-  'gpioplus',
-  [
-    'gpioplus/chip.cpp',
-    'gpioplus/event.cpp',
-    'gpioplus/handle.cpp',
-    'gpioplus/internal/fd.cpp',
-    'gpioplus/internal/sys.cpp',
-  ],
-  include_directories: gpioplus_headers,
-  implicit_include_directories: false,
-  version: meson.project_version(),
-  install: true)
+    'gpioplus',
+    [
+        'gpioplus/chip.cpp',
+        'gpioplus/event.cpp',
+        'gpioplus/handle.cpp',
+        'gpioplus/internal/fd.cpp',
+        'gpioplus/internal/sys.cpp',
+    ],
+    include_directories: gpioplus_headers,
+    implicit_include_directories: false,
+    version: meson.project_version(),
+    install: true,
+)
 
 gpioplus_dep = declare_dependency(
-  include_directories: gpioplus_headers,
-  link_with: gpioplus_lib,
+    include_directories: gpioplus_headers,
+    link_with: gpioplus_lib,
 )
 
 import('pkgconfig').generate(
-  gpioplus_lib,
-  description: 'C++ systemd event wrapper',
-  version: meson.project_version())
+    gpioplus_lib,
+    description: 'C++ systemd event wrapper',
+    version: meson.project_version(),
+)
 
 install_headers(
-  'gpioplus/chip.hpp',
-  'gpioplus/event.hpp',
-  'gpioplus/handle.hpp',
-  subdir: 'gpioplus')
+    'gpioplus/chip.hpp',
+    'gpioplus/event.hpp',
+    'gpioplus/handle.hpp',
+    subdir: 'gpioplus',
+)
 
 install_headers(
-  'gpioplus/internal/fd.hpp',
-  'gpioplus/internal/sys.hpp',
-  subdir: 'gpioplus/internal')
+    'gpioplus/internal/fd.hpp',
+    'gpioplus/internal/sys.hpp',
+    subdir: 'gpioplus/internal',
+)
 
 install_headers(
-  'gpioplus/test/event.hpp',
-  'gpioplus/test/handle.hpp',
-  'gpioplus/test/sys.hpp',
-  subdir: 'gpioplus/test')
+    'gpioplus/test/event.hpp',
+    'gpioplus/test/handle.hpp',
+    'gpioplus/test/sys.hpp',
+    subdir: 'gpioplus/test',
+)
 
-install_headers(
-  'gpioplus/utility/aspeed.hpp',
-  subdir: 'gpioplus/utility')
+install_headers('gpioplus/utility/aspeed.hpp', subdir: 'gpioplus/utility')
diff --git a/test/meson.build b/test/meson.build
index f358414..2c012de 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -1,40 +1,38 @@
 gtest_dep = dependency('gtest', main: true, disabler: true, required: false)
 gmock_dep = dependency('gmock', disabler: true, required: false)
 if not gtest_dep.found() or not gmock_dep.found()
-  gtest_opts = import('cmake').subproject_options()
-  gtest_opts.add_cmake_defines({'CMAKE_CXX_FLAGS': '-Wno-pedantic'})
-  gtest_proj = import('cmake').subproject(
-    'googletest',
-    options: gtest_opts,
-    required: false)
-  if gtest_proj.found()
-    gtest_dep = declare_dependency(
-      dependencies: [
-        dependency('threads'),
-        gtest_proj.dependency('gtest'),
-        gtest_proj.dependency('gtest_main'),
-      ])
-    gmock_dep = gtest_proj.dependency('gmock')
-  else
-    assert(not build_tests.enabled(), 'Googletest is required')
-  endif
+    gtest_opts = import('cmake').subproject_options()
+    gtest_opts.add_cmake_defines({'CMAKE_CXX_FLAGS': '-Wno-pedantic'})
+    gtest_proj = import('cmake').subproject(
+        'googletest',
+        options: gtest_opts,
+        required: false,
+    )
+    if gtest_proj.found()
+        gtest_dep = declare_dependency(
+            dependencies: [
+                dependency('threads'),
+                gtest_proj.dependency('gtest'),
+                gtest_proj.dependency('gtest_main'),
+            ],
+        )
+        gmock_dep = gtest_proj.dependency('gmock')
+    else
+        assert(not build_tests.enabled(), 'Googletest is required')
+    endif
 endif
 
 
-tests = [
-  'chip',
-  'event',
-  'handle',
-  'internal/fd',
-  'mocks',
-  'utility/aspeed',
-]
+tests = ['chip', 'event', 'handle', 'internal/fd', 'mocks', 'utility/aspeed']
 
 foreach t : tests
-  test(
-    t,
-    executable(
-      t.underscorify(), t + '.cpp',
-      implicit_include_directories: false,
-      dependencies: [gpioplus_dep, gtest_dep, gmock_dep]))
+    test(
+        t,
+        executable(
+            t.underscorify(),
+            t + '.cpp',
+            implicit_include_directories: false,
+            dependencies: [gpioplus_dep, gtest_dep, gmock_dep],
+        ),
+    )
 endforeach
