cmake_minimum_required(VERSION 3.17) find_package(Clang REQUIRED) find_package(LLVM REQUIRED COMPONENTS Support Option Core) # LLVM is typically compiled without RTTI. Weird linker errors ensue if # you keep RTTI on and try to link. if (NOT LLVM_ENABLE_RTTI) if (MSVC) string(REGEX REPLACE "/GR" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GR-") else () string(REGEX REPLACE "-frtti" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti") endif () endif () llvm_map_components_to_libnames(llvm_libs support option core) add_executable(llvm_proto main.cpp OperationFinder.cpp) target_include_directories(llvm_proto PRIVATE ${LLVM_INCLUDE_DIRS} ) target_compile_definitions(llvm_proto PRIVATE ${LLVM_DEFINITIONS} ) target_link_libraries(llvm_proto PRIVATE ${llvm_libs} clangTooling clangBasic clangASTMatchers )