diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2019-08-20 09:43:59 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-08-20 09:43:59 -0400 |
| commit | 7258ef4ddebd021208a019f6ee73edcda57a88f7 (patch) | |
| tree | 30cccf48c8f03e59e48a2d265e05494238fe758d /source/slang/slang.cpp | |
| parent | 3e78e4654cdf9556869325f2ed2da517f252d879 (diff) | |
User defined downstream compiler prelude (#1028)
* Added setDownstreamCompilerPrelude
Renamed setPassThroughPath to setDownstreamCompilerPath.
Fixed tests.
Added prelude directory & code to TestToolUtil to setup default preludes for testing/command line apis.
* Fix merge problem
* Remove hacks to make prelude work by adding a search path as no longer needed with 'user prelude'.
* Split up prelude into scalar intrinsics, and types.
Use slang.h for main header.
slang-cpp-prelude.h can now just include what it needs (relative to prelude directory) and define the few remaining things/work arounds.
* Fix typo.
Diffstat (limited to 'source/slang/slang.cpp')
| -rw-r--r-- | source/slang/slang.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/source/slang/slang.cpp b/source/slang/slang.cpp index eef0dff6f..601312def 100644 --- a/source/slang/slang.cpp +++ b/source/slang/slang.cpp @@ -146,14 +146,14 @@ SLANG_NO_THROW SlangProfileID SLANG_MCALL Session::findProfile( return Slang::Profile::LookUp(name).raw; } -SLANG_NO_THROW void SLANG_MCALL Session::setPassThroughPath( +SLANG_NO_THROW void SLANG_MCALL Session::setDownstreamCompilerPath( SlangPassThrough inPassThrough, char const* path) { PassThroughMode passThrough = PassThroughMode(inPassThrough); SLANG_ASSERT(int(passThrough) > int(PassThroughMode::None) && int(passThrough) < int(PassThroughMode::CountOf)); - if (m_passThroughPaths[int(passThrough)] != path) + if (m_downstreamCompilerPaths[int(passThrough)] != path) { // If it's changed we should unload any shared libraries that use it switch (passThrough) @@ -187,10 +187,20 @@ SLANG_NO_THROW void SLANG_MCALL Session::setPassThroughPath( } // Set the path - m_passThroughPaths[int(passThrough)] = path; + m_downstreamCompilerPaths[int(passThrough)] = path; } } +SLANG_NO_THROW void SLANG_MCALL Session::setDownstreamCompilerPrelude( + SlangPassThrough inPassThrough, + char const* prelude) +{ + PassThroughMode passThrough = PassThroughMode(inPassThrough); + SLANG_ASSERT(int(passThrough) > int(PassThroughMode::None) && int(passThrough) < int(PassThroughMode::CountOf)); + + m_downstreamCompilerPreludes[int(passThrough)] = prelude; +} + struct IncludeHandlerImpl : IncludeHandler { Linkage* linkage; |
