diff --git a/var/spack/repos/builtin/packages/vecmem/package.py b/var/spack/repos/builtin/packages/vecmem/package.py
index 67ba53e95e6b3b15e589c64305bf7cef99217d79..c146f3ee3cddd8c226d7ded198aad8d39908fa2c 100644
--- a/var/spack/repos/builtin/packages/vecmem/package.py
+++ b/var/spack/repos/builtin/packages/vecmem/package.py
@@ -67,6 +67,11 @@ class Vecmem(CMakePackage, CudaPackage):
     depends_on("hip", when="+hip")
     depends_on("sycl", when="+sycl")
 
+    # NOTE: this package uses a non-standard "SYCLCXX" environment variable which we can
+    # set easily only by requiring the OneAPI compiler, as this is automatically capable
+    # of compiling SYCL code.
+    requires("%oneapi", when="+sycl")
+
     # FIXME: due to #29447, googletest is not available to cmake when building with --test,
     # and we can choose between always depending on googletest, or using FetchContent
     # depends_on("googletest", type="test")