diff --git a/.gitignore b/.gitignore index 54ec4f1b..7ede8d74 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,8 @@ ACP_Ray2/ build/ # game_re/ windows_libs/ +tooling/build/ + +*.code-workspace +*.log +.edits_backup/ \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 33262624..b5f1fadd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,11 +5,5 @@ set(GAME_DATA_DIR ${CMAKE_CURRENT_SOURCE_DIR}/game) add_subdirectory(game_re) -option(BUILD_TOOLING "Build the ghidra tooling" ON) - -if(BUILD_TOOLING) - add_subdirectory(tooling) -endif() - # Use highest possible C standard set_target_properties(game_re PROPERTIES C_STANDARD 23) diff --git a/tooling/CMakeLists.txt b/tooling/CMakeLists.txt index 33d6067d..de8fe0d6 100644 --- a/tooling/CMakeLists.txt +++ b/tooling/CMakeLists.txt @@ -1,3 +1,6 @@ +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) @@ -19,11 +22,20 @@ 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) +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 diff --git a/tooling/main.cpp b/tooling/main.cpp index a34b2491..9a0efbed 100644 --- a/tooling/main.cpp +++ b/tooling/main.cpp @@ -6,6 +6,7 @@ #include "clang/Tooling/Tooling.h" #include "llvm/Support/CommandLine.h" #include +#include "clang/AST/ASTConcept.h" using namespace clang; using namespace clang::tooling;