llvm.cmake 1.03 KB
set(BR_WITH_LLVM OFF CACHE BOOL "Build LLVM features")

if(${BR_WITH_LLVM})
  # A convenience variable:
  set(LLVM_ROOT "/usr/local" CACHE PATH "Root of LLVM install.")

  # A bit of a sanity check:
  if (NOT EXISTS ${LLVM_ROOT}/include/llvm)
    message(FATAL_ERROR "LLVM_ROOT (${LLVM_ROOT}) is not a valid LLVM install")
  endif()

  # We incorporate the CMake features provided by LLVM:
  set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${LLVM_ROOT}/share/llvm/cmake")
  include(LLVMConfig)

  # Now set the header and library paths:
  include_directories(${LLVM_INCLUDE_DIRS})
  link_directories(${LLVM_LIBRARY_DIRS})
  add_definitions(${LLVM_DEFINITIONS})

  # Let's suppose we want to build a JIT compiler with support for binary code:
  llvm_map_components_to_libraries(REQ_LLVM_LIBRARIES jit native)

  set(BR_THIRDPARTY_SRC ${BR_THIRDPARTY_SRC}
                        ${CMAKE_SOURCE_DIR}/sdk/plugins/llvm.cpp
                        ${CMAKE_SOURCE_DIR}/sdk/jitcv/jitcv.cpp)
  set(BR_THIRDPARTY_LIBS ${BR_THIRDPARTY_LIBS} ${REQ_LLVM_LIBRARIES})
endif()