X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=cmake%2Fconfig-ix.cmake;h=29762380e85834a0d19dc53c3bddebedf8087ba7;hb=4ea1a1185a9062d544211688008253bd4814bef0;hp=dc991a23be075ad3554717c0218bbb594d158775;hpb=55e6c6184ae5c018fa8fc79a9b844557fa2a0787;p=oota-llvm.git diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake index dc991a23be0..29762380e85 100755 --- a/cmake/config-ix.cmake +++ b/cmake/config-ix.cmake @@ -11,10 +11,17 @@ include(CheckFunctionExists) include(CheckCXXSourceCompiles) include(TestBigEndian) +include(HandleLLVMStdlib) + 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) @@ -49,7 +56,6 @@ check_include_file(ndir.h HAVE_NDIR_H) if( NOT PURE_WINDOWS ) check_include_file(pthread.h HAVE_PTHREAD_H) endif() -check_include_file(sanitizer/msan_interface.h HAVE_SANITIZER_MSAN_INTERFACE_H) check_include_file(signal.h HAVE_SIGNAL_H) check_include_file(stdint.h HAVE_STDINT_H) check_include_file(sys/dir.h HAVE_SYS_DIR_H) @@ -97,6 +103,7 @@ if( NOT PURE_WINDOWS ) else() set(HAVE_LIBZ 0) endif() + check_library_exists(edit el_init "" HAVE_LIBEDIT) if(LLVM_ENABLE_TERMINFO) set(HAVE_TERMINFO 0) foreach(library tinfo terminfo curses ncurses ncursesw) @@ -114,7 +121,7 @@ if( NOT PURE_WINDOWS ) endif() # function checks -check_symbol_exists(arc4random "stdlib.h" HAVE_ARC4RANDOM) +check_symbol_exists(arc4random "stdlib.h" HAVE_DECL_ARC4RANDOM) check_symbol_exists(backtrace "execinfo.h" HAVE_BACKTRACE) check_symbol_exists(getpagesize unistd.h HAVE_GETPAGESIZE) check_symbol_exists(getrusage sys/resource.h HAVE_GETRUSAGE) @@ -245,24 +252,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() @@ -297,27 +298,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 () - -include(CheckCXXCompilerFlag) - check_cxx_compiler_flag("-Wno-variadic-macros" SUPPORTS_NO_VARIADIC_MACROS_FLAG) set(USE_NO_MAYBE_UNINITIALIZED 0) @@ -366,6 +346,8 @@ elseif (LLVM_NATIVE_ARCH MATCHES "powerpc") set(LLVM_NATIVE_ARCH PowerPC) elseif (LLVM_NATIVE_ARCH MATCHES "aarch64") set(LLVM_NATIVE_ARCH AArch64) +elseif (LLVM_NATIVE_ARCH MATCHES "arm64") + set(LLVM_NATIVE_ARCH AArch64) elseif (LLVM_NATIVE_ARCH MATCHES "arm") set(LLVM_NATIVE_ARCH ARM) elseif (LLVM_NATIVE_ARCH MATCHES "mips") @@ -479,7 +461,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 @@ -498,3 +480,13 @@ 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()