From 99d3e6e9e0dba1ced53e962fedfe4a0ddb0462e7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Bobot?= <francois.bobot@cea.fr>
Date: Wed, 26 May 2021 11:01:40 +0200
Subject: [PATCH] [Static] Static version of Colibri2

---
 .gitlab-ci.yml        | 25 +++++++++++++++++++++++++
 src_colibri2/bin/dune |  4 +++-
 2 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 29e99c729..66d3a527b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -12,3 +12,28 @@ tests:
   - make test
   tags:
     - docker
+
+# generate static binary
+generate-static:
+  stage: build
+  # ocaml/opam:alpine-ocaml-4.12
+  image: ocaml/opam@sha256:6cf1b7f60ae67190d1d85dbedabd6d845e3f0b21944386bdbe894fc28273f4e6
+  script:
+  - eval `opam config env`
+  - sed -e "s/; FOR STATIC//" -i src_colibri2/bin/dune
+  - opam pin --no-action .
+  - opam depext colibri2
+  - opam install --deps-only .
+  - opam depext --install why3 core jingoo yojson logs core # For generation not done in release mode
+  - opam depext --install ounit2 # For tests move to opam file?
+  - make
+  - make test
+  - dune install --destdir=destdir
+  - ldd destdir/bin/colibri2
+  tags:
+    - docker
+#  rules:
+#    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
+  artifacts:
+   paths:
+    - destdir/bin/colibri2
diff --git a/src_colibri2/bin/dune b/src_colibri2/bin/dune
index f7ed4a1c1..6573124a6 100644
--- a/src_colibri2/bin/dune
+++ b/src_colibri2/bin/dune
@@ -46,7 +46,9 @@
  (name colibri2_stage1)
  ; (public_name colibri2)
  ; (package colibri2)
- (flags -linkall)
+ (flags -linkall
+        ; FOR STATIC -ccopt -static
+ )
  (libraries colibri2_main colibri2.theories.LRA.stages.stage1)
  (modules colibri2_stage1))
 
-- 
GitLab