masters-thesis/op-finder/CMakeLists.txt

45 lines
1.1 KiB
CMake

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(op-finder
main.cpp
OperationFinder.cpp
OperationStorage.cpp
OperationAstMatcher.cpp
)
target_include_directories(op-finder
PRIVATE
${LLVM_INCLUDE_DIRS}
${PROJECT_SOURCE_DIR}/dependencies
)
target_compile_definitions(op-finder
PRIVATE
${LLVM_DEFINITIONS}
)
target_link_libraries(op-finder
PRIVATE
${llvm_libs}
clangTooling
clangBasic
clangASTMatchers
)