Files
UnrealEngine/Engine/Source/Programs/UnrealBuildAccelerator/Test/Private/UbaTestDependencyCrawler.cpp
2025-05-18 13:04:45 +08:00

68 lines
2.8 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "UbaDependencyCrawler.h"
#include "UbaDirectoryIterator.h"
#include "UbaLogger.h"
namespace uba
{
bool TestDependencyCrawler(LoggerWithWriter& logger, const StringBufferBase& rootDir)
{
#if 0 // Commented out for now because of hard coded paths below
WorkManagerImpl workManager(128);
DependencyCrawler crawler(logger, workManager);
auto CreateFileFunc = [&](TrackWorkScope& tracker, const StringView& fileName, const DependencyCrawler::AccessFileFunc& func)
{
FileAccessor fa(logger, fileName.data);
if (!fa.OpenMemoryRead())
return false;
return func(fa.GetData(), fa.GetSize());
};
auto FileExistsFunc = [&](const StringView& fileName, u32& outAttr)
{
return FileExists(logger, fileName.data, nullptr, &outAttr);
};
auto TraverseFilesFunc = [&](const StringView& path, const DependencyCrawler::FileFunc& fileFunc)
{
TraverseDir(logger, path, [&](const DirectoryEntry& entry)
{
StringBuffer<> name;
name.Append(entry.name, entry.nameLen);
if (CaseInsensitiveFs)
name.MakeLower();
fileFunc(name, IsDirectory(entry.attributes));
});
};
crawler.Init(FileExistsFunc, TraverseFilesFunc);
const tchar app[] = TC("c:\\sdk\\AutoSDK\\HostWin64\\Win64\\LLVM\\18.1.8\\bin\\clang-cl.exe");
//DependencyCrawlerType type = DependencyCrawlerType_MsvcCompiler;
//const tchar rsp[] = TC("e:\\dev\\fn\\Engine\\Intermediate\\Build\\Win64\\x64\\BlankProgram\\Development\\Core\\Module.Core.1.cpp.obj.rsp");
DependencyCrawlerType type = DependencyCrawlerType_MsvcCompiler;
//const tchar rsp[] = TC("e:\\dev\\fn\\Engine\\Intermediate\\Build\\Linux\\x64\\BlankProgram\\Development\\Core\\Module.Core.1.cpp.o.rsp");
//const tchar rsp[] = TC("e:\\temp\\response-22b46d.txt");
//const tchar rsp[] = TC("e:\\temp\\MiMalloc.c.o.rsp");
const tchar rsp[] = TC("e:\\dev\\fn\\Sandbox\\DevTools\\Clang\\Intermediate\\Build\\Win64\\x64\\ClangGame\\Debug\\InputCore\\Module.InputCore.cpp.obj.rsp");
//const tchar rsp[] = TC("e:\\dev\\fn\\engine\\plugins\\experimental\\geometrycollectionplugin\\intermediate\\build\\win64\\x64\\unrealeditor\\development\\geometrycollectionnodes\\module.geometrycollectionnodes.3.cpp.obj.rsp");
//const tchar rsp[] = TC("e:\\dev\\fn\\Engine\\Plugins\\Runtime\\MeshModelingToolset\\Intermediate\\Build\\Win64\\x64\\UnrealEditor\\Development\\ModelingComponents\\Module.ModelingComponents.3.cpp.obj.rsp");
//const tchar rsp[] = TC("e:\\dev\\fn\\Engine\\Intermediate\\Build\\Win64\\x64\\UnrealEditor\\Development\\AnimGraphRuntime\\Module.AnimGraphRuntime.3.cpp.obj.rsp");
crawler.Add(rsp, TC("e:\\dev\\fn\\Engine\\Source"), CreateFileFunc, [](StringBufferBase&)
{
return true;
}, app, type, 10);
workManager.FlushWork();
#endif
return true;
}
}