diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake
index 849da2dc14849c486c6c514505c438d4dfa3c972..f806d9c54ed93506498281e7c5f1463881879f3d 100755 (executable)
--- a/cmake/config-ix.cmake
+++ b/cmake/config-ix.cmake
endfunction()
# include checks
-check_include_file_cxx(cxxabi.h HAVE_CXXABI_H)
check_include_file(dirent.h HAVE_DIRENT_H)
check_include_file(dlfcn.h HAVE_DLFCN_H)
check_include_file(errno.h HAVE_ERRNO_H)
check_include_file(mach/mach.h HAVE_MACH_MACH_H)
check_include_file(mach-o/dyld.h HAVE_MACH_O_DYLD_H)
+# size_t must be defined before including cxxabi.h on FreeBSD 10.0.
+check_cxx_source_compiles("
+#include <stddef.h>
+#include <cxxabi.h>
+int main() { return 0; }
+" HAVE_CXXABI_H)
+
# library checks
if( NOT PURE_WINDOWS )
check_library_exists(pthread pthread_create "" HAVE_LIBPTHREAD)
else()
message(STATUS "Sphinx disabled.")
endif()
+
+set(LLVM_BINDINGS "")
+if(WIN32)
+ message(STATUS "Go bindings disabled.")
+else()
+ find_program(GO_EXECUTABLE NAMES go DOC "go executable")
+ if(GO_EXECUTABLE STREQUAL "GO_EXECUTABLE-NOTFOUND")
+ message(STATUS "Go bindings disabled.")
+ else()
+ execute_process(COMMAND ${GO_EXECUTABLE} run ${CMAKE_SOURCE_DIR}/bindings/go/conftest.go
+ RESULT_VARIABLE GO_CONFTEST)
+ if(GO_CONFTEST STREQUAL "0")
+ set(LLVM_BINDINGS "${LLVM_BINDINGS} go")
+ message(STATUS "Go bindings enabled.")
+ else()
+ message(STATUS "Go bindings disabled, need at least Go 1.2.")
+ endif()
+ endif()
+endif()
+
+include(FindOCaml)
+include(AddOCaml)
+if(WIN32)
+ message(STATUS "OCaml bindings disabled.")
+else()
+ find_package(OCaml)
+ if( NOT OCAML_FOUND )
+ message(STATUS "OCaml bindings disabled.")
+ else()
+ if( OCAML_VERSION VERSION_LESS "4.00.0" )
+ message(STATUS "OCaml bindings disabled, need OCaml >=4.00.0.")
+ else()
+ find_ocamlfind_package(ctypes VERSION 0.3 OPTIONAL)
+ if( HAVE_OCAML_CTYPES )
+ message(STATUS "OCaml bindings enabled.")
+ find_ocamlfind_package(oUnit VERSION 2 OPTIONAL)
+ set(LLVM_BINDINGS "${LLVM_BINDINGS} ocaml")
+ else()
+ message(STATUS "OCaml bindings disabled, need ctypes >=0.3.")
+ endif()
+ endif()
+ endif()
+endif()
+
+string(REPLACE " " ";" LLVM_BINDINGS_LIST "${LLVM_BINDINGS}")