reman3/tooling/CMakeLists.txt

49 lines
1.4 KiB
CMake

set(LLVM_PATH "" CACHE STRING "Path to the LLVM source tree")
set(LLVM_ADD_PATH ${LLVM_PATH}/llvm)
if(NOT EXISTS ${LLVM_ADD_PATH}/CMakeLists.txt)
message(FATAL_ERROR "LLVM_PATH is invalid (${LLVM_PATH})")
endif()
set(BUILD_SHARED_LIBS OFF)
set(LLVM_INCLUDE_UTILS OFF CACHE BOOL "" FORCE)
set(LLVM_INCLUDE_RUNTIMES OFF CACHE BOOL "" FORCE)
set(LLVM_BUILD_RUNTIME OFF CACHE BOOL "" FORCE)
set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "" FORCE)
set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "" FORCE)
set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "" FORCE)
set(LLVM_ENABLE_OCAMLDOC OFF CACHE BOOL "" FORCE)
set(LLVM_ENABLE_BINDINGS OFF CACHE BOOL "" FORCE)
set(LLVM_ENABLE_TELEMETRY OFF CACHE BOOL "" FORCE)
set(LLVM_INCLUDE_BENCHMARKS OFF CACHE BOOL "" FORCE)
set(LLVM_TARGETS_TO_BUILD "X86" CACHE STRING "" FORCE)
set(LLVM_ENABLE_PROJECTS "clang" CACHE STRING "" FORCE)
add_subdirectory(${LLVM_ADD_PATH} ${CMAKE_BINARY_DIR}/external/llvm)
# Add the clang tooling executable
add_executable(clang_tool main.cpp)
# Link against clang tooling libraries
target_link_libraries(clang_tool
clangTooling
clangFrontend
clangASTMatchers
clangAST
clangBasic
clangSerialization
clangDriver
clangParse
clangSema
clangAnalysis
clangEdit
clangRewrite
clangLex
spdlog::spdlog
)
# Include LLVM/Clang headers
target_include_directories(clang_tool PRIVATE
${LLVM_INCLUDE_DIRS}
${CLANG_INCLUDE_DIRS}
)