CMakeLists.txt 930 B

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