diff --git a/CMakeLists.txt b/CMakeLists.txt index b45ecc7f..aa0651a6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,7 @@ project(CLICE_PROJECT LANGUAGES C CXX) set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_SCAN_FOR_MODULES OFF) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) include(GNUInstallDirs) diff --git a/cmake/package.cmake b/cmake/package.cmake index dfd62e63..82de3496 100644 --- a/cmake/package.cmake +++ b/cmake/package.cmake @@ -32,6 +32,7 @@ if(CMAKE_BUILD_TYPE STREQUAL "Debug") clangLex clangSema clangSerialization + clangDependencyScanning clangTidy clangTidyUtils # ALL_CLANG_TIDY_CHECKS @@ -135,6 +136,7 @@ FetchContent_Declare( GIT_REPOSITORY https://github.com/jeremy-rifkin/cpptrace.git GIT_TAG v1.0.4 ) +set(CPPTRACE_DISABLE_CXX_20_MODULES ON CACHE BOOL "" FORCE) FetchContent_MakeAvailable(libuv spdlog tomlplusplus croaring flatbuffers cpptrace) diff --git a/tests/unit/Compiler/CompilerTests.cpp b/tests/unit/Compiler/CompilerTests.cpp index b74287c8..b6f7550d 100644 --- a/tests/unit/Compiler/CompilerTests.cpp +++ b/tests/unit/Compiler/CompilerTests.cpp @@ -5,6 +5,8 @@ #include "Compiler/Compilation.h" #include "Support/FileSystem.h" +#include "clang/Tooling/DependencyScanning/DependencyScanningTool.h" + namespace clice::testing { namespace { @@ -65,6 +67,18 @@ TEST_CASE(StopCompilation) { ASSERT_FALSE(result); } +TEST_CASE(ScanDeps) { + namespace deps = clang::tooling::dependencies; + deps::DependencyScanningService service(deps::ScanningMode::DependencyDirectivesScan, + deps::ScanningOutputFormat::Full); + deps::DependencyScanningTool tool(service); + + auto err = tool.getDependencyFile({}, ""); + if(!err) { + /// TODO: + } +} + }; // TEST_SUITE(Compiler) } // namespace diff --git a/xmake.lua b/xmake.lua index 2b393b8b..4ce85cd7 100644 --- a/xmake.lua +++ b/xmake.lua @@ -79,6 +79,7 @@ target("clice-core", function() "clangLex", "clangSema", "clangSerialization", + "clangDependencyScanning", "clangTidy", "clangTidyUtils", -- ALL_CLANG_TIDY_CHECKS