compilesettings

This module allows querying the compiler about diverse configuration settings.

Types

SingleValueSetting {...}{.pure.} = enum
  arguments,                ## experimental: the arguments passed after '-r'
  outFile,                  ## experimental: the output file
  outDir,                   ## the output directory
  nimcacheDir,              ## the location of the 'nimcache' directory
  projectName,              ## the project's name that is being compiled
  projectPath,              ## experimental: some path to the project that is being compiled
  projectFull,              ## the full path to the project that is being compiled
  command, ## experimental: the command (e.g. 'c', 'cpp', 'doc') passed to
            ## the Nim compiler
  commandLine,              ## experimental: the command line passed to Nim
  linkOptions,              ## additional options passed to the linker
  compileOptions,           ## additional options passed to the C/C++ compiler
  ccompilerPath,            ## the path to the C/C++ compiler
  backend ## the backend (eg: c|cpp|objc|js); both `nim doc --backend:js`
          ## and `nim js` would imply backend=js
settings resulting in a single string value   Source Edit
MultipleValueSetting {...}{.pure.} = enum
  nimblePaths,              ## the nimble path(s)
  searchPaths,              ## the search path for modules
  lazyPaths,                ## experimental: even more paths
  commandArgs,              ## the arguments passed to the Nim compiler
  cincludes,                ## the #include paths passed to the C/C++ compiler
  clibs                      ## libraries passed to the C/C++ compiler
settings resulting in a seq of string values   Source Edit

Procs

proc querySetting(setting: SingleValueSetting): string {...}{.compileTime,
    noSideEffect, raises: [], tags: [].}
Can be used to get a string compile-time option. Example:
const nimcache = querySetting(SingleValueSetting.nimcacheDir)
  Source Edit
proc querySettingSeq(setting: MultipleValueSetting): seq[string] {...}{.compileTime,
    noSideEffect, raises: [], tags: [].}
Can be used to get a multi-string compile-time option. Example:
const nimblePaths = compileSettingSeq(MultipleValueSetting.nimblePaths)
  Source Edit