All files / transpiler/logic/preprocessor/types IPreprocessOptions.ts

0% Statements 0/0
0% Branches 0/0
0% Functions 0/0
0% Lines 0/0

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38                                                                           
import IToolchain from "./IToolchain";
 
/**
 * Preprocessor options
 */
interface IPreprocessOptions {
  /** Additional include paths */
  includePaths?: string[];
 
  /** Preprocessor defines (-D flags) */
  defines?: Record<string, string | boolean>;
 
  /** Specific toolchain to use (auto-detect if not specified) */
  toolchain?: IToolchain;
 
  /** Keep #line directives for source mapping (default: true) */
  keepLineDirectives?: boolean;
 
  /**
   * Headers whose macros to import before preprocessing the target file
   * (gcc/clang `-imacros`), in order. Supplies include-order macro context so a
   * header that requires a predecessor can preprocess — e.g. FreeRTOS `task.h`
   * needs `INC_FREERTOS_H` and attribute macros defined by `FreeRTOS.h` first.
   * Unlike `-include`, `-imacros` keeps only the predecessors' macros, not their
   * declarations, so the output stays scoped to the target file.
   */
  imacros?: string[];
 
  /**
   * Dump macro definitions (gcc/clang `-dM`) instead of preprocessed source.
   * Output is the `#define` list, used to discover function-like macros (e.g.
   * FreeRTOS `pdMS_TO_TICKS`) that a plain preprocess consumes at use sites.
   */
  dumpMacros?: boolean;
}
 
export default IPreprocessOptions;