Skip to content

Instantly share code, notes, and snippets.

@crackcomm
Created September 12, 2021 14:36
Show Gist options
  • Save crackcomm/d952955d944dcaa5f8ae50ce4100ff35 to your computer and use it in GitHub Desktop.
Save crackcomm/d952955d944dcaa5f8ae50ce4100ff35 to your computer and use it in GitHub Desktop.
diff --git a/dune-project b/dune-project
new file mode 100644
index 000000000000..475731075dbd
--- /dev/null
+++ b/dune-project
@@ -0,0 +1,15 @@
+(lang dune 2.9)
+
+(name llvm)
+
+(generate_opam_files true)
+
+(package
+ (name llvm)
+ (synopsis "LLVM bindings")
+ (description "OCaml bindings for LLVM")
+ (depends
+ (ocaml
+ (>= 4.12.0))
+ (ctypes
+ (>= 0.4))))
diff --git a/llvm.opam b/llvm.opam
new file mode 100644
index 000000000000..8cc5b2ad4b71
--- /dev/null
+++ b/llvm.opam
@@ -0,0 +1,26 @@
+# This file is generated by dune, edit dune-project instead
+opam-version: "2.0"
+synopsis: "LLVM bindings"
+description: "OCaml bindings for LLVM"
+depends: [
+ "dune" {>= "2.9"}
+ "ocaml" {>= "4.12.0"}
+ "ctypes" {>= "0.4"}
+ "odoc" {with-doc}
+]
+build: [
+ ["dune" "subst"] {dev}
+ [
+ "dune"
+ "build"
+ "-p"
+ name
+ "-j"
+ jobs
+ "--promote-install-files=false"
+ "@install"
+ "@runtest" {with-test}
+ "@doc" {with-doc}
+ ]
+ ["dune" "install" "-p" name "--create-install-files" name]
+]
diff --git a/llvm/bindings/ocaml/all_backends/dune b/llvm/bindings/ocaml/all_backends/dune
new file mode 100644
index 000000000000..93fae9f0608a
--- /dev/null
+++ b/llvm/bindings/ocaml/all_backends/dune
@@ -0,0 +1,10 @@
+(library
+ (name llvm_all_backends)
+ (public_name llvm.all_backends)
+ (foreign_stubs
+ (language c)
+ (names all_backends_ocaml)
+ (include_dirs
+ %{env:LLVM_INCLUDE=/usr/include/llvm-12}
+ %{env:LLVM_C_INCLUDE=/usr/include/llvm-c-12}))
+ (c_library_flags -L%{env:LLVM_LIBDIR=/usr/lib/llvm-12/lib} -lLLVM))
diff --git a/llvm/bindings/ocaml/analysis/dune b/llvm/bindings/ocaml/analysis/dune
new file mode 100644
index 000000000000..23cc44aebbd3
--- /dev/null
+++ b/llvm/bindings/ocaml/analysis/dune
@@ -0,0 +1,11 @@
+(library
+ (name llvm_analysis)
+ (public_name llvm.analysis)
+ (libraries llvm)
+ (foreign_stubs
+ (language c)
+ (names analysis_ocaml)
+ (include_dirs
+ %{env:LLVM_INCLUDE=/usr/include/llvm-12}
+ %{env:LLVM_C_INCLUDE=/usr/include/llvm-c-12}))
+ (c_library_flags -L%{env:LLVM_LIBDIR=/usr/lib/llvm-12/lib} -lLLVM))
diff --git a/llvm/bindings/ocaml/bitreader/dune b/llvm/bindings/ocaml/bitreader/dune
new file mode 100644
index 000000000000..f678681ac7c3
--- /dev/null
+++ b/llvm/bindings/ocaml/bitreader/dune
@@ -0,0 +1,11 @@
+(library
+ (name llvm_bitreader)
+ (public_name llvm.bitreader)
+ (libraries llvm)
+ (foreign_stubs
+ (language c)
+ (names bitreader_ocaml)
+ (include_dirs
+ %{env:LLVM_INCLUDE=/usr/include/llvm-12}
+ %{env:LLVM_C_INCLUDE=/usr/include/llvm-c-12}))
+ (c_library_flags -L%{env:LLVM_LIBDIR=/usr/lib/llvm-12/lib} -lLLVM))
diff --git a/llvm/bindings/ocaml/bitwriter/dune b/llvm/bindings/ocaml/bitwriter/dune
new file mode 100644
index 000000000000..58ffaddf7718
--- /dev/null
+++ b/llvm/bindings/ocaml/bitwriter/dune
@@ -0,0 +1,11 @@
+(library
+ (name llvm_bitwriter)
+ (public_name llvm.bitwriter)
+ (libraries llvm)
+ (foreign_stubs
+ (language c)
+ (names bitwriter_ocaml)
+ (include_dirs
+ %{env:LLVM_INCLUDE=/usr/include/llvm-12}
+ %{env:LLVM_C_INCLUDE=/usr/include/llvm-c-12}))
+ (c_library_flags -L%{env:LLVM_LIBDIR=/usr/lib/llvm-12/lib} -lLLVM))
diff --git a/llvm/bindings/ocaml/executionengine/dune b/llvm/bindings/ocaml/executionengine/dune
new file mode 100644
index 000000000000..10927ed804ad
--- /dev/null
+++ b/llvm/bindings/ocaml/executionengine/dune
@@ -0,0 +1,11 @@
+(library
+ (name llvm_executionengine)
+ (public_name llvm.executionengine)
+ (libraries llvm llvm.target ctypes)
+ (foreign_stubs
+ (language c)
+ (names executionengine_ocaml)
+ (include_dirs
+ %{env:LLVM_INCLUDE=/usr/include/llvm-12}
+ %{env:LLVM_C_INCLUDE=/usr/include/llvm-c-12}))
+ (c_library_flags -L%{env:LLVM_LIBDIR=/usr/lib/llvm-12/lib} -lLLVM))
diff --git a/llvm/bindings/ocaml/irreader/dune b/llvm/bindings/ocaml/irreader/dune
new file mode 100644
index 000000000000..2b49b178e9c6
--- /dev/null
+++ b/llvm/bindings/ocaml/irreader/dune
@@ -0,0 +1,11 @@
+(library
+ (name llvm_irreader)
+ (public_name llvm.irreader)
+ (libraries llvm)
+ (foreign_stubs
+ (language c)
+ (names irreader_ocaml)
+ (include_dirs
+ %{env:LLVM_INCLUDE=/usr/include/llvm-12}
+ %{env:LLVM_C_INCLUDE=/usr/include/llvm-c-12}))
+ (c_library_flags -L%{env:LLVM_LIBDIR=/usr/lib/llvm-12/lib} -lLLVM))
diff --git a/llvm/bindings/ocaml/linker/dune b/llvm/bindings/ocaml/linker/dune
new file mode 100644
index 000000000000..aa33ae8b8a77
--- /dev/null
+++ b/llvm/bindings/ocaml/linker/dune
@@ -0,0 +1,11 @@
+(library
+ (name llvm_linker)
+ (public_name llvm.linker)
+ (libraries llvm)
+ (foreign_stubs
+ (language c)
+ (names linker_ocaml)
+ (include_dirs
+ %{env:LLVM_INCLUDE=/usr/include/llvm-12}
+ %{env:LLVM_C_INCLUDE=/usr/include/llvm-c-12}))
+ (c_library_flags -L%{env:LLVM_LIBDIR=/usr/lib/llvm-12/lib} -lLLVM))
diff --git a/llvm/bindings/ocaml/llvm/dune b/llvm/bindings/ocaml/llvm/dune
new file mode 100644
index 000000000000..212f38eedb56
--- /dev/null
+++ b/llvm/bindings/ocaml/llvm/dune
@@ -0,0 +1,13 @@
+(library
+ (name llvm)
+ (public_name llvm)
+ (flags
+ (:standard -w -50 -w -37 -w -34 -w -32))
+ (foreign_stubs
+ (language c)
+ (names llvm_ocaml)
+ (flags -w :standard)
+ (include_dirs
+ %{env:LLVM_INCLUDE=/usr/include/llvm-12}
+ %{env:LLVM_C_INCLUDE=/usr/include/llvm-c-12}))
+ (c_library_flags -L%{env:LLVM_LIBDIR=/usr/lib/llvm-12/lib} -lLLVM))
diff --git a/llvm/bindings/ocaml/target/dune b/llvm/bindings/ocaml/target/dune
new file mode 100644
index 000000000000..29bac8df5ebb
--- /dev/null
+++ b/llvm/bindings/ocaml/target/dune
@@ -0,0 +1,12 @@
+(library
+ (name llvm_target)
+ (public_name llvm.target)
+ (libraries llvm)
+ (foreign_stubs
+ (language c)
+ (names target_ocaml)
+ (flags -w :standard)
+ (include_dirs
+ %{env:LLVM_INCLUDE=/usr/include/llvm-12}
+ %{env:LLVM_C_INCLUDE=/usr/include/llvm-c-12}))
+ (c_library_flags -L%{env:LLVM_LIBDIR=/usr/lib/llvm-12/lib} -lLLVM))
diff --git a/llvm/bindings/ocaml/transforms/ipo/dune b/llvm/bindings/ocaml/transforms/ipo/dune
new file mode 100644
index 000000000000..bf412ab5d28c
--- /dev/null
+++ b/llvm/bindings/ocaml/transforms/ipo/dune
@@ -0,0 +1,11 @@
+(library
+ (name llvm_ipo)
+ (public_name llvm.ipo)
+ (libraries llvm)
+ (foreign_stubs
+ (language c)
+ (names ipo_ocaml)
+ (include_dirs
+ %{env:LLVM_INCLUDE=/usr/include/llvm-12}
+ %{env:LLVM_C_INCLUDE=/usr/include/llvm-c-12}))
+ (c_library_flags -L%{env:LLVM_LIBDIR=/usr/lib/llvm-12/lib} -lLLVM))
diff --git a/llvm/bindings/ocaml/transforms/passmgr_builder/dune b/llvm/bindings/ocaml/transforms/passmgr_builder/dune
new file mode 100644
index 000000000000..88a6b6a86aea
--- /dev/null
+++ b/llvm/bindings/ocaml/transforms/passmgr_builder/dune
@@ -0,0 +1,11 @@
+(library
+ (name llvm_passmgr_builder)
+ (public_name llvm.passmgr_builder)
+ (libraries llvm)
+ (foreign_stubs
+ (language c)
+ (names passmgr_builder_ocaml)
+ (include_dirs
+ %{env:LLVM_INCLUDE=/usr/include/llvm-12}
+ %{env:LLVM_C_INCLUDE=/usr/include/llvm-c-12}))
+ (c_library_flags -L%{env:LLVM_LIBDIR=/usr/lib/llvm-12/lib} -lLLVM))
diff --git a/llvm/bindings/ocaml/transforms/scalar_opts/dune b/llvm/bindings/ocaml/transforms/scalar_opts/dune
new file mode 100644
index 000000000000..966379ec628d
--- /dev/null
+++ b/llvm/bindings/ocaml/transforms/scalar_opts/dune
@@ -0,0 +1,11 @@
+(library
+ (name llvm_scalar_opts)
+ (public_name llvm.scalar_opts)
+ (libraries llvm)
+ (foreign_stubs
+ (language c)
+ (names scalar_opts_ocaml)
+ (include_dirs
+ %{env:LLVM_INCLUDE=/usr/include/llvm-12}
+ %{env:LLVM_C_INCLUDE=/usr/include/llvm-c-12}))
+ (c_library_flags -L%{env:LLVM_LIBDIR=/usr/lib/llvm-12/lib} -lLLVM))
diff --git a/llvm/bindings/ocaml/transforms/utils/dune b/llvm/bindings/ocaml/transforms/utils/dune
new file mode 100644
index 000000000000..118e88cf9eb4
--- /dev/null
+++ b/llvm/bindings/ocaml/transforms/utils/dune
@@ -0,0 +1,11 @@
+(library
+ (name llvm_transform_utils)
+ (public_name llvm.transform_utils)
+ (libraries llvm)
+ (foreign_stubs
+ (language c)
+ (names transform_utils_ocaml)
+ (include_dirs
+ %{env:LLVM_INCLUDE=/usr/include/llvm-12}
+ %{env:LLVM_C_INCLUDE=/usr/include/llvm-c-12}))
+ (c_library_flags -L%{env:LLVM_LIBDIR=/usr/lib/llvm-12/lib} -lLLVM))
diff --git a/llvm/bindings/ocaml/transforms/vectorize/dune b/llvm/bindings/ocaml/transforms/vectorize/dune
new file mode 100644
index 000000000000..25a96936a963
--- /dev/null
+++ b/llvm/bindings/ocaml/transforms/vectorize/dune
@@ -0,0 +1,11 @@
+(library
+ (name llvm_vectorize)
+ (public_name llvm.vectorize)
+ (libraries llvm)
+ (foreign_stubs
+ (language c)
+ (names vectorize_ocaml)
+ (include_dirs
+ %{env:LLVM_INCLUDE=/usr/include/llvm-12}
+ %{env:LLVM_C_INCLUDE=/usr/include/llvm-c-12}))
+ (c_library_flags -L%{env:LLVM_LIBDIR=/usr/lib/llvm-12/lib} -lLLVM))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment