diff options
| author | Tim Foley <tfoley@nvidia.com> | 2017-07-25 16:21:23 -0700 |
|---|---|---|
| committer | Tim Foley <tfoley@nvidia.com> | 2017-07-25 16:21:23 -0700 |
| commit | 941b834f3ba15eba9bfa80eb370077ec9c845efd (patch) | |
| tree | 7ca17a6655621a11eaa4806e0d9e11b011803dc5 /source/slang/compiler.h | |
| parent | 29fb1d781a763a8ca3369d03a75dbe1976571368 (diff) | |
Add a `-o` option to command-line `slangc`
Fixes #11
- This adds a `-o` command-line option for specifying an output file.
- The code tries to be a bit smart, to glean an output format from a file extension, and also to associate multiple `-o` options with multiple `-entry` options if needed.
- There is a restriction that all the output files need to agree on the code generation target. This is reasonable for now, but might be something to lift eventualy
- There is a restriction that only one output file is allowed per entry point
- Together with the previous item this means you can't output both a `.spv` and a `.spv.asm` in one pass, even though both should be possible
- There is currently a restriction that output paths only apply to entry points
- This means there is no way to output reflection JSON to a file with `-o` (but that is mostly just a debugging feature for now)
- This also means we don't support any "container" formats that can encapsulate multiple compiled entry points
Diffstat (limited to 'source/slang/compiler.h')
| -rw-r--r-- | source/slang/compiler.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/source/slang/compiler.h b/source/slang/compiler.h index 09797664f..180fb027a 100644 --- a/source/slang/compiler.h +++ b/source/slang/compiler.h @@ -102,6 +102,10 @@ namespace Slang // supposed to be defined in. int translationUnitIndex; + // The output path requested for this entry point. + // (only used when compiling from the command line) + String outputPath; + // The resulting output for the enry point // // TODO: low-level code generation should be a distinct step @@ -221,6 +225,9 @@ namespace Slang // How should `#line` directives be emitted (if at all)? LineDirectiveMode lineDirectiveMode = LineDirectiveMode::Default; + // Are we being driven by the command-line `slangc`, and should act accordingly? + bool isCommandLineCompile = false; + // Output stuff DiagnosticSink mSink; String mDiagnosticOutput; |
