diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 87d65d5591a26341fecf9f5c8e2e77512a365b82..7e14dfd7ff3072248ca5b9b640d5a926663f0df3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -92,6 +92,13 @@ volatile:
   tags:
    - nix
 
+metacsl:
+  stage: tests
+  script:
+  - nix/frama-ci.sh build -A meta.tests
+  tags:
+  - nix
+
 Security:
   stage: tests
   script:
diff --git a/nix/default.nix b/nix/default.nix
index fdce398cfe5fadaca673a976eb8bb381dec43ffa..610b886c089a9da73b709082f2bde0900ac13421 100644
--- a/nix/default.nix
+++ b/nix/default.nix
@@ -214,7 +214,9 @@ rec {
         inherit src;
         buildInputs = (mk_buildInputs { opamPackages = [ "xml-light" ]; } ) ++
                     [ pkgs.getopt
-                      pkgs.libxslt pkgs.libxml2 pkgs.autoPatchelfHook stdenv.cc.cc.lib
+                      pkgs.libxslt pkgs.libxml2 pkgs.autoPatchelfHook
+                      pkgs.swiProlog
+                      stdenv.cc.cc.lib
         ];
         counter_examples_src = plugins.counter-examples.src;
         genassigns_src = plugins.genassigns.src;
@@ -226,6 +228,7 @@ rec {
         volatile_src = plugins.volatile.src;
         security_src = plugins.security.src;
         context_from_precondition_src = plugins.context-from-precondition.src;
+        metacsl_src = plugins.meta.src;
         postPatch = ''
                patchShebangs .
         '';