cmake_minimum_required(VERSION 3.5) project(llvm_tutorial CXX) set(LLVM_DIR "~/code/thesis/orchestra/build/llvm/share/llvm/cmake") find_package(LLVM REQUIRED CONFIG) message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}") message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}") set(LLVM_CXX_FLAGS "-fno-rtti") # Options to compile correctly the llvm tutorial add_compile_options(-std=c++14 -g -O0 -rdynamic) set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} ${LLVM_CXX_FLAGS}) include_directories(${LLVM_INCLUDE_DIRS}) add_definitions(${LLVM_DEFINITIONS}) add_executable(kaleidoscope Main.cpp Lexer.cpp Parser.cpp Ast.cpp JIT.cpp) # Find the libraries that correspond to the LLVM components # that we wish to use llvm_map_components_to_libnames(llvm_libs core support native mcjit object scalaropts instcombine RuntimeDyld ExecutionEngine TransformUtils) # Link against LLVM libraries target_link_libraries(kaleidoscope ${llvm_libs})