summaryrefslogtreecommitdiff
path: root/source/slang/compiler.h
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2018-10-16 18:49:11 -0400
committerGitHub <noreply@github.com>2018-10-16 18:49:11 -0400
commit3e74d39f24fdfaa547ce900be177863e2bfe2dea (patch)
tree9a5143e6de4caa27b23fc870003011e96129905f /source/slang/compiler.h
parent204fb3c75b520a2cbb1c25f995a8c424ec2753f3 (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.h12
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,