diff --git a/test/meson.build b/test/meson.build
index a63240f..0de7168 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -36,24 +36,44 @@
   endforeach
 endif
 
-# catch2 might not have a pkg-config. It is header only so just make
-# sure we can access the needed symbols from the header.
-catch2_dep = dependency('Catch2', required: false)
-has_catch2 = meson.get_compiler('cpp').has_header_symbol(
-  'catch2/catch.hpp',
-  'Approx',
-  dependencies: catch2_dep,
-  required: false)
-if not has_catch2
+# Switch to `catch2-with-main.pc` when 2.x supports it
+catch2 = dependency('catch2-with-main', required: false)
+if not catch2.found()
+  catch2 = dependency('catch2', required: false)
+  if catch2.found()
+    catch2_main = meson.get_compiler('cpp').find_library(
+      'Catch2WithMain', required: false)
+    if catch2_main.found()
+      catch2 = declare_dependency(
+        dependencies: [
+          catch2,
+          catch2_main,
+        ])
+    else
+      catch2 = declare_dependency(
+        link_with: static_library(
+          'catch2', 'catch2_main.cpp',
+          implicit_include_directories: false,
+          build_by_default: false,
+          dependencies: catch2),
+        dependencies: catch2)
+    endif
+  endif
+endif
+if not catch2.found()
   catch2_proj = import('cmake').subproject(
     'Catch2',
     cmake_options: [
-      '-DBUILD_TESTING=OFF'
+      '-DBUILD_TESTING=OFF',
+      '-DCMAKE_CXX_FLAGS=-Wno-non-virtual-dtor',
     ],
     required: false)
   if catch2_proj.found()
-    catch2_dep = catch2_proj.dependency('Catch2')
-    has_catch2 = true
+    catch2 = declare_dependency(
+      dependencies: [
+        catch2_proj.dependency('Catch2'),
+        catch2_proj.dependency('Catch2WithMain'),
+      ])
   else
     assert(not build_tests.enabled(), 'Catch2 is required')
   endif
@@ -64,18 +84,11 @@
   'raw',
 ]
 
-if has_catch2
-  libcatch2 = static_library(
-    'catch2', 'catch2_main.cpp',
-    implicit_include_directories: false,
-    build_by_default: false,
-    dependencies: catch2_dep)
-
+if catch2.found()
   foreach t : catch2_tests
     test(t, executable(t.underscorify(), t + '.cpp',
                        build_by_default: false,
                        implicit_include_directories: false,
-                       link_with: libcatch2,
-                       dependencies: [stdplus, span_dep, catch2_dep]))
+                       dependencies: [stdplus, span_dep, catch2]))
   endforeach
 endif
diff --git a/test/raw.cpp b/test/raw.cpp
index b781054..79fb2ad 100644
--- a/test/raw.cpp
+++ b/test/raw.cpp
@@ -1,5 +1,9 @@
 #include <array>
+#if __has_include(<catch2/catch.hpp>)
 #include <catch2/catch.hpp>
+#else
+#include <catch2/catch_test_macros.hpp>
+#endif
 #include <endian.h>
 #include <stdexcept>
 #include <stdplus/raw.hpp>
diff --git a/test/signal.cpp b/test/signal.cpp
index 91c717f..4778dac 100644
--- a/test/signal.cpp
+++ b/test/signal.cpp
@@ -1,4 +1,8 @@
+#if __has_include(<catch2/catch.hpp>)
 #include <catch2/catch.hpp>
+#else
+#include <catch2/catch_test_macros.hpp>
+#endif
 #include <cstring>
 #include <signal.h>
 #include <stdplus/signal.hpp>
