X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=cmake%2Fconfig-ix.cmake;h=358a32cd10736b71ee88d3060a106a586a582048;hb=015776f38c9a3f24ce3fdcda3b296bbaa823dcec;hp=f007b37dc30de99e719f6014c8285fc5489bb31a;hpb=7b837d8c75f78fe55c9b348b9ec2281169a48d2a;p=oota-llvm.git diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake index f007b37dc30..358a32cd107 100755 --- a/cmake/config-ix.cmake +++ b/cmake/config-ix.cmake @@ -17,6 +17,11 @@ if( UNIX AND NOT BEOS ) # Used by check_symbol_exists: set(CMAKE_REQUIRED_LIBRARIES m) endif() +# x86_64 FreeBSD 9.2 requires libcxxrt to be specified explicitly. +if( CMAKE_SYSTEM MATCHES "FreeBSD-9.2-RELEASE" AND + CMAKE_SIZEOF_VOID_P EQUAL 8 ) + list(APPEND CMAKE_REQUIRED_LIBRARIES "cxxrt") +endif() # Helper macros and functions macro(add_cxx_include result files) @@ -45,6 +50,7 @@ check_include_file(execinfo.h HAVE_EXECINFO_H) 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) @@ -247,24 +253,18 @@ function(llvm_find_program name) endif(LLVM_PATH_${NAME}) endfunction() -llvm_find_program(gv) -llvm_find_program(circo) -llvm_find_program(twopi) -llvm_find_program(neato) -llvm_find_program(fdp) -llvm_find_program(dot) -llvm_find_program(dotty) -llvm_find_program(xdot xdot.py) -llvm_find_program(Graphviz) +if (LLVM_ENABLE_DOXYGEN) + llvm_find_program(dot) +endif () 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() @@ -299,25 +299,6 @@ else() 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) @@ -367,7 +348,7 @@ elseif (LLVM_NATIVE_ARCH MATCHES "powerpc") elseif (LLVM_NATIVE_ARCH MATCHES "aarch64") set(LLVM_NATIVE_ARCH AArch64) elseif (LLVM_NATIVE_ARCH MATCHES "arm64") - set(LLVM_NATIVE_ARCH ARM64) + set(LLVM_NATIVE_ARCH AArch64) elseif (LLVM_NATIVE_ARCH MATCHES "arm") set(LLVM_NATIVE_ARCH ARM) elseif (LLVM_NATIVE_ARCH MATCHES "mips") @@ -481,7 +462,7 @@ set(LLVM_PREFIX ${CMAKE_INSTALL_PREFIX}) if (LLVM_ENABLE_DOXYGEN) message(STATUS "Doxygen enabled.") - find_package(Doxygen) + find_package(Doxygen REQUIRED) if (DOXYGEN_FOUND) # If we find doxygen and we want to enable doxygen by default create a @@ -500,3 +481,28 @@ if (LLVM_ENABLE_DOXYGEN) else() message(STATUS "Doxygen disabled.") endif() + +if (LLVM_ENABLE_SPHINX) + message(STATUS "Sphinx enabled.") + find_package(Sphinx REQUIRED) + if (LLVM_BUILD_DOCS) + add_custom_target(sphinx ALL) + endif() +else() + message(STATUS "Sphinx disabled.") +endif() + +set(LLVM_BINDINGS "") +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()