diff --git a/Makefile b/Makefile
index 59a077056850523f9ab8563171208ba7044c4c1a..733ef52bad27d66e90658a96da3ba120d349694a 100644
--- a/Makefile
+++ b/Makefile
@@ -133,3 +133,10 @@ stresstest: test
 .PHONY: gitlab-runner
 gitlab-runner:
 	gitlab-runner exec docker smoke-test
+
+.PHONY: subprojects
+subprojects:
+	meson subprojects update --reset
+
+.PHONY: external-deps
+external-deps: subprojects
diff --git a/subprojects/gtest.wrap b/subprojects/gtest.wrap
index ca5d699ec0a54c3a1ffa72a733d1e78507f12dd9..730de1aef595d38e90cd70813af2d1d88478313a 100644
--- a/subprojects/gtest.wrap
+++ b/subprojects/gtest.wrap
@@ -1,10 +1,15 @@
 [wrap-file]
-directory = googletest-release-1.10.0
+directory = googletest-release-1.11.0
+source_url = https://github.com/google/googletest/archive/release-1.11.0.tar.gz
+source_filename = gtest-1.11.0.tar.gz
+source_hash = b4870bf121ff7795ba20d20bcdd8627b8e088f2d1dab299a031c1034eddc93d5
+patch_filename = gtest_1.11.0-2_patch.zip
+patch_url = https://wrapdb.mesonbuild.com/v2/gtest_1.11.0-2/get_patch
+patch_hash = 764530d812ac161c9eab02a8cfaec67c871fcfc5548e29fd3d488070913d4e94
 
-source_url = https://github.com/google/googletest/archive/release-1.10.0.zip
-source_filename = gtest-1.10.0.zip
-source_hash = 94c634d499558a76fa649edb13721dce6e98fb1e7018dfaeba3cd7a083945e91
+[provide]
+gtest = gtest_dep
+gtest_main = gtest_main_dep
+gmock = gmock_dep
+gmock_main = gmock_main_dep
 
-patch_url = https://wrapdb.mesonbuild.com/v1/projects/gtest/1.10.0/1/get_zip
-patch_filename = gtest-1.10.0-1-wrap.zip
-patch_hash = 04ff14e8880e4e465f6260221e9dfd56fea6bc7cce4c4aff0dc528e4a2c8f514