The package llvm provides CMake targets: find_package(LLVM CONFIG REQUIRED) list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR}") include(HandleLLVMOptions) add_definitions(${LLVM_DEFINITIONS}) target_include_directories(main PRIVATE ${LLVM_INCLUDE_DIRS}) # Find the libraries that correspond to the LLVM components that we wish to use llvm_map_components_to_libnames(llvm_libs Support Core IRReader ...) # Link against LLVM libraries target_link_libraries(main PRIVATE ${llvm_libs})