# compilesettings

Dark Mode

- Manual
- Standard library
- Index
- Compiler docs
- Fusion docs

Search:

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