41 lines
994 B
CMake
41 lines
994 B
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
|
|
)
|
|
|
|
target_include_directories(op-finder
|
|
PRIVATE ${LLVM_INCLUDE_DIRS}
|
|
)
|
|
|
|
target_compile_definitions(op-finder
|
|
PRIVATE
|
|
${LLVM_DEFINITIONS}
|
|
)
|
|
|
|
target_link_libraries(op-finder
|
|
PRIVATE
|
|
${llvm_libs}
|
|
clangTooling
|
|
clangBasic
|
|
clangASTMatchers
|
|
)
|