check_include_file(fcntl.h HAVE_FCNTL_H)
check_include_file(inttypes.h HAVE_INTTYPES_H)
check_include_file(limits.h HAVE_LIMITS_H)
+check_include_file(link.h HAVE_LINK_H)
check_include_file(malloc.h HAVE_MALLOC_H)
check_include_file(malloc/malloc.h HAVE_MALLOC_MALLOC_H)
check_include_file(ndir.h HAVE_NDIR_H)
if( LLVM_ENABLE_FFI )
find_path(FFI_INCLUDE_PATH ffi.h PATHS ${FFI_INCLUDE_DIR})
- if( FFI_INCLUDE_PATH )
+ if( EXISTS "${FFI_INCLUDE_PATH}/ffi.h" )
set(FFI_HEADER ffi.h CACHE INTERNAL "")
set(HAVE_FFI_H 1 CACHE INTERNAL "")
else()
find_path(FFI_INCLUDE_PATH ffi/ffi.h PATHS ${FFI_INCLUDE_DIR})
- if( FFI_INCLUDE_PATH )
+ if( EXISTS "${FFI_INCLUDE_PATH}/ffi/ffi.h" )
set(FFI_HEADER ffi/ffi.h CACHE INTERNAL "")
set(HAVE_FFI_FFI_H 1 CACHE INTERNAL "")
endif()
set(ENABLE_PIC 0)
endif()
-find_package(LibXml2)
-if (LIBXML2_FOUND)
- set(CLANG_HAVE_LIBXML 1)
- # When cross-compiling, liblzma is not detected as a dependency for libxml2,
- # which makes linking c-index-test fail. But for native builds, all libraries
- # are installed and checked by CMake before Makefiles are generated and everything
- # works according to the plan. However, if a -llzma is added to native builds,
- # an additional requirement on the static liblzma.a is required, but will not
- # be checked by CMake, breaking native compilation.
- # Since this is only pertinent to cross-compilations, and there's no way CMake
- # can check for every foreign library on every OS, we add the dep and warn the dev.
- if ( CMAKE_CROSSCOMPILING )
- if (NOT PC_LIBXML_VERSION VERSION_LESS "2.8.0")
- message(STATUS "Adding LZMA as a dep to XML2 for cross-compilation, make sure liblzma.a is available.")
- set(LIBXML2_LIBRARIES ${LIBXML2_LIBRARIES} "-llzma")
- endif ()
- endif ()
-endif ()
-
check_cxx_compiler_flag("-Wno-variadic-macros" SUPPORTS_NO_VARIADIC_MACROS_FLAG)
set(USE_NO_MAYBE_UNINITIALIZED 0)
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()