diff --git a/docs/CMake.html b/docs/CMake.html index a0473c97e57..ca0b50f628e 100644 --- a/docs/CMake.html +++ b/docs/CMake.html @@ -354,7 +354,38 @@
TODO
+The most difficult part of adding LLVM to the build of a project + is to determine the set of LLVM libraries corresponding to the set + of required LLVM features. What follows is an example of how to + obtain this information:
+ ++ # A convenience variable: + set(LLVM_ROOT "" 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(LLVM) + # Now set the header and library paths: + include_directories( ${LLVM_ROOT}/include ) + link_directories( ${LLVM_ROOT}/lib ) + # Let's suppose we want to build a JIT compiler with support for + # binary code (no interpreter): + llvm_map_components_to_libraries(REQ_LLVM_LIBRARIES jit native) + # Finally, we link the LLVM libraries to our executable: + target_link_libraries(mycompiler ${REQ_LLVM_LIBRARIES}) ++
This assumes that LLVM_ROOT points to an install of LLVM. The + procedure works too for uninstalled builds although we need to take + care to add an include_directories for the location of the + headers on the LLVM source directory (if we are building + out-of-source.)