2018-05-29 17:54:48 +00:00
|
|
|
option (ENABLE_EMBEDDED_COMPILER "Set to TRUE to enable support for 'compile' option for query execution" 1)
|
2018-05-14 17:28:26 +00:00
|
|
|
option (USE_INTERNAL_LLVM_LIBRARY "Use bundled or system LLVM library. Default: system library for quicker developer builds." ${APPLE})
|
2017-11-12 12:58:40 +00:00
|
|
|
|
2018-02-26 18:34:22 +00:00
|
|
|
if (ENABLE_EMBEDDED_COMPILER)
|
2018-05-09 20:31:03 +00:00
|
|
|
if (USE_INTERNAL_LLVM_LIBRARY AND NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/llvm/llvm/CMakeLists.txt")
|
|
|
|
message (WARNING "submodule contrib/llvm is missing. to fix try run: \n git submodule update --init --recursive")
|
|
|
|
set (USE_INTERNAL_LLVM_LIBRARY 0)
|
2018-04-26 15:36:27 +00:00
|
|
|
endif ()
|
2017-11-12 12:58:40 +00:00
|
|
|
|
2018-05-09 20:38:03 +00:00
|
|
|
if (NOT USE_INTERNAL_LLVM_LIBRARY)
|
2018-05-09 20:31:03 +00:00
|
|
|
set (LLVM_PATHS "/usr/local/lib/llvm")
|
2017-11-12 12:58:40 +00:00
|
|
|
|
2018-05-13 10:34:29 +00:00
|
|
|
if (LLVM_VERSION)
|
|
|
|
find_package(LLVM ${LLVM_VERSION} CONFIG PATHS ${LLVM_PATHS})
|
|
|
|
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
|
|
|
find_package(LLVM ${CMAKE_CXX_COMPILER_VERSION} CONFIG PATHS ${LLVM_PATHS})
|
2018-05-09 20:31:03 +00:00
|
|
|
else ()
|
2018-05-13 10:34:29 +00:00
|
|
|
find_package (LLVM 6 CONFIG PATHS ${LLVM_PATHS})
|
|
|
|
if (NOT LLVM_FOUND)
|
|
|
|
find_package (LLVM 5 CONFIG PATHS ${LLVM_PATHS})
|
|
|
|
endif ()
|
|
|
|
if (NOT LLVM_FOUND)
|
|
|
|
find_package (LLVM 7 CONFIG PATHS ${LLVM_PATHS})
|
|
|
|
endif ()
|
2018-05-09 20:31:03 +00:00
|
|
|
endif ()
|
2018-05-07 08:59:24 +00:00
|
|
|
|
2018-05-09 20:31:03 +00:00
|
|
|
if (LLVM_FOUND)
|
|
|
|
# Remove dynamically-linked zlib and libedit from LLVM's dependencies:
|
|
|
|
set_target_properties(LLVMSupport PROPERTIES INTERFACE_LINK_LIBRARIES "-lpthread;LLVMDemangle")
|
|
|
|
set_target_properties(LLVMLineEditor PROPERTIES INTERFACE_LINK_LIBRARIES "LLVMSupport")
|
2018-05-07 08:59:24 +00:00
|
|
|
|
2018-05-09 20:31:03 +00:00
|
|
|
option(LLVM_HAS_RTTI "Enable if LLVM was build with RTTI enabled" ON)
|
|
|
|
set (USE_EMBEDDED_COMPILER 1)
|
2017-11-12 12:58:40 +00:00
|
|
|
endif()
|
2018-05-09 20:31:03 +00:00
|
|
|
else()
|
|
|
|
set (LLVM_FOUND 1)
|
2018-04-25 05:59:48 +00:00
|
|
|
set (USE_EMBEDDED_COMPILER 1)
|
2018-05-09 20:31:03 +00:00
|
|
|
set (LLVM_VERSION "7.0.0bundled")
|
2018-05-09 21:07:52 +00:00
|
|
|
set (LLVM_INCLUDE_DIRS
|
|
|
|
${ClickHouse_SOURCE_DIR}/contrib/llvm/llvm/include
|
|
|
|
${ClickHouse_BINARY_DIR}/contrib/llvm/llvm/include
|
|
|
|
${ClickHouse_SOURCE_DIR}/contrib/llvm/clang/include
|
|
|
|
${ClickHouse_BINARY_DIR}/contrib/llvm/clang/include
|
2018-05-09 21:12:15 +00:00
|
|
|
${ClickHouse_BINARY_DIR}/contrib/llvm/llvm/tools/clang/include
|
2018-05-09 21:07:52 +00:00
|
|
|
${ClickHouse_SOURCE_DIR}/contrib/llvm/lld/include
|
2018-05-09 21:12:15 +00:00
|
|
|
${ClickHouse_BINARY_DIR}/contrib/llvm/lld/include
|
|
|
|
${ClickHouse_BINARY_DIR}/contrib/llvm/llvm/tools/lld/include)
|
2018-05-09 20:31:03 +00:00
|
|
|
set (LLVM_LIBRARY_DIRS ${ClickHouse_BINARY_DIR}/contrib/llvm/llvm)
|
2017-11-12 12:58:40 +00:00
|
|
|
endif()
|
2018-02-26 18:34:22 +00:00
|
|
|
|
2018-05-09 20:31:03 +00:00
|
|
|
if (LLVM_FOUND)
|
|
|
|
message(STATUS "LLVM version: ${LLVM_PACKAGE_VERSION}")
|
|
|
|
message(STATUS "LLVM include Directory: ${LLVM_INCLUDE_DIRS}")
|
|
|
|
message(STATUS "LLVM library Directory: ${LLVM_LIBRARY_DIRS}")
|
|
|
|
message(STATUS "LLVM C++ compiler flags: ${LLVM_CXXFLAGS}")
|
2018-02-26 18:34:22 +00:00
|
|
|
endif()
|
2017-11-12 12:58:40 +00:00
|
|
|
endif()
|
2018-05-29 17:54:48 +00:00
|
|
|
|
|
|
|
|
|
|
|
function(llvm_libs_all REQUIRED_LLVM_LIBRARIES)
|
|
|
|
llvm_map_components_to_libnames (result all)
|
|
|
|
list (REMOVE_ITEM result "LTO" "LLVM")
|
|
|
|
if (TERMCAP_LIBRARY)
|
|
|
|
list (APPEND result ${TERMCAP_LIBRARY})
|
|
|
|
endif ()
|
|
|
|
list (APPEND result ${CMAKE_DL_LIBS})
|
|
|
|
set (${REQUIRED_LLVM_LIBRARIES} ${result} PARENT_SCOPE)
|
|
|
|
endfunction()
|