| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- ///////////////////////////////////////////////////////////////////////////////
- // //
- // dxcfilesystem.h //
- // Copyright (C) Microsoft Corporation. All rights reserved. //
- // This file is distributed under the University of Illinois Open Source //
- // License. See LICENSE.TXT for details. //
- // //
- // Provides helper file system for dxcompiler. //
- // //
- ///////////////////////////////////////////////////////////////////////////////
- #pragma once
- #include "dxc/dxcapi.h"
- #include "llvm/Support/MSFileSystem.h"
- namespace clang {
- class CompilerInstance;
- }
- namespace llvm {
- class raw_string_ostream;
- namespace sys {
- namespace fs {
- class MSFileSystem;
- }
- } // namespace sys
- } // namespace llvm
- namespace dxcutil {
- class DxcArgsFileSystem : public ::llvm::sys::fs::MSFileSystem {
- public:
- virtual ~DxcArgsFileSystem(){};
- virtual void SetupForCompilerInstance(clang::CompilerInstance &compiler) = 0;
- virtual void GetStdOutpuHandleStream(IStream **ppResultStream) = 0;
- virtual void WriteStdErrToStream(llvm::raw_string_ostream &s) = 0;
- virtual void EnableDisplayIncludeProcess() = 0;
- virtual HRESULT CreateStdStreams(_In_ IMalloc *pMalloc) = 0;
- virtual HRESULT RegisterOutputStream(LPCWSTR pName, IStream *pStream) = 0;
- };
- DxcArgsFileSystem *
- CreateDxcArgsFileSystem(_In_ IDxcBlob *pSource, _In_ LPCWSTR pSourceName,
- _In_opt_ IDxcIncludeHandler *pIncludeHandler);
- } // namespace dxcutil
|