[OCaml] [cmake] Add CMake buildsystem for OCaml.
[oota-llvm.git] / bindings / ocaml / backends / CMakeLists.txt
diff --git a/bindings/ocaml/backends/CMakeLists.txt b/bindings/ocaml/backends/CMakeLists.txt
new file mode 100644 (file)
index 0000000..b660c1d
--- /dev/null
@@ -0,0 +1,27 @@
+foreach(TARGET ${LLVM_TARGETS_TO_BUILD})
+  set(OCAML_LLVM_TARGET ${TARGET})
+
+  foreach( ext ml mli )
+    configure_file(
+        "${CMAKE_CURRENT_SOURCE_DIR}/llvm_backend.${ext}.in"
+        "${CMAKE_CURRENT_BINARY_DIR}/llvm_${TARGET}.${ext}")
+  endforeach()
+
+  configure_file(
+    "${CMAKE_CURRENT_SOURCE_DIR}/backend_ocaml.c"
+    "${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_ocaml.c")
+
+  add_ocaml_library(llvm_${TARGET}
+    OCAML    llvm_${TARGET}
+    C        ${TARGET}_ocaml
+    CFLAGS   -DTARGET=${TARGET}
+    LLVM     ${TARGET}
+    NOCOPY)
+
+  configure_file(
+    "${CMAKE_CURRENT_SOURCE_DIR}/META.llvm_backend.in"
+    "${LLVM_LIBRARY_OUTPUT_INTDIR}/ocaml/META.llvm_${TARGET}")
+
+  install(FILES "${LLVM_LIBRARY_OUTPUT_INTDIR}/ocaml/META.llvm_${TARGET}"
+          DESTINATION lib/ocaml)
+endforeach()