61 lines
1.7 KiB
CMake
61 lines
1.7 KiB
CMake
cmake_minimum_required(VERSION 3.26.4)
|
|
project(reman3_tooling)
|
|
|
|
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)
|
|
|
|
set(LLVM_BINARY_DIR ${CMAKE_BINARY_DIR}/external/llvm)
|
|
add_subdirectory(${LLVM_ADD_PATH} ${LLVM_BINARY_DIR})
|
|
add_subdirectory(../game_re/third_party/spdlog spdlog)
|
|
|
|
# Add the clang tooling executable
|
|
add_executable(clang_tool main.cpp)
|
|
|
|
target_include_directories(clang_tool PRIVATE
|
|
${LLVM_PATH}/llvm/include
|
|
${LLVM_PATH}/clang/include
|
|
${LLVM_BINARY_DIR}/include
|
|
${LLVM_BINARY_DIR}/tools/clang/include
|
|
)
|
|
|
|
# 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}
|
|
) |