diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2018-10-16 18:49:11 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-10-16 18:49:11 -0400 |
| commit | 3e74d39f24fdfaa547ce900be177863e2bfe2dea (patch) | |
| tree | 9a5143e6de4caa27b23fc870003011e96129905f /source/slang/compiler.h | |
| parent | 204fb3c75b520a2cbb1c25f995a8c424ec2753f3 (diff) | |
Feature/include refactor (#675)
* Refactor of path handling.
* Added PathInfo
* Changed ISlangFileSystem - such that has separate concepts of reading a file, getting a relative path and getting a canonical path
* Added support for getting a canonical path for windows/linux
* Made maps/testing around canonicalPaths
* User output remains around 'foundPath' - which is the same as before
* Small improvements around PathInfo
* Added a type and make constructors to make clear the different 'path' uses
* Fixed bug in findViewRecursively
* Checking and reporting for ignored #pragma once.
* Removed SLANG_PATH_TYPE_NONE as doesn't serve any useful purpose.
* Improve comments in slang.h aroung ISlangFileSystem
* Remove the need for <windows.h> in slang-io.cpp
* Ran premake5.
* Improvements and fixes around PathInfo.
* Fix typo on linix GetCanonical
* Make the ISlangFileSystem the same as before, and ISlangFileSystem contain the new methods.
Internally it always uses the ISlangFileSystemExt, and will wrap a ISlangFileSystem with WrapFileSystem, if it is determined (via queryInterface) that it doesn't implement the full interface.
Diffstat (limited to 'source/slang/compiler.h')
| -rw-r--r-- | source/slang/compiler.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/source/slang/compiler.h b/source/slang/compiler.h index a83d8b334..04508837f 100644 --- a/source/slang/compiler.h +++ b/source/slang/compiler.h @@ -13,6 +13,7 @@ namespace Slang { + struct PathInfo; struct IncludeHandler; class CompileRequest; class ProgramLayout; @@ -395,6 +396,11 @@ namespace Slang /// ComPtr<ISlangFileSystem> fileSystem; + /// The extended file system implementation. Will be set to a default implementation + /// if fileSystem is nullptr. Otherwise it will either be fileSystem's interface, + /// or a wrapped impl that makes fileSystem operate as fileSystemExt + ComPtr<ISlangFileSystemExt> fileSystemExt; + /// Load a file into memory using the configured file system. /// /// @param path The path to attempt to load from @@ -454,14 +460,14 @@ namespace Slang RefPtr<ModuleDecl> loadModule( Name* name, - String const& path, - ISlangBlob* sourceBlob, + const PathInfo& filePathInfo, + ISlangBlob* fileContentsBlob, SourceLoc const& loc); void loadParsedModule( RefPtr<TranslationUnitRequest> const& translationUnit, Name* name, - String const& path); + PathInfo const& pathInfo); RefPtr<ModuleDecl> findOrImportModule( Name* name, |
