mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 17:04:41 +00:00
156 lines
9.5 KiB
Plaintext
156 lines
9.5 KiB
Plaintext
Advanced commands:
|
|
//compileToC, cc compile project with C code generator
|
|
//compileToCpp, cpp compile project to C++ code
|
|
//compileToOC, objc compile project to Objective C code
|
|
//js compile project to Javascript
|
|
//e run a Nimscript file
|
|
//rst2html convert a reStructuredText file to HTML
|
|
use `--docCmd:skip` to skip compiling snippets
|
|
//rst2tex convert a reStructuredText file to TeX
|
|
//jsondoc extract the documentation to a json file
|
|
//ctags create a tags file
|
|
//buildIndex build an index for the whole documentation
|
|
//genDepend generate a DOT file containing the
|
|
module dependency graph
|
|
//dump dump all defined conditionals and search paths
|
|
see also: --dump.format:json (useful with: ` | jq`)
|
|
//check checks the project for syntax and semantic
|
|
|
|
Runtime checks (see -x):
|
|
--objChecks:on|off turn obj conversion checks on|off
|
|
--fieldChecks:on|off turn case variant field checks on|off
|
|
--rangeChecks:on|off turn range checks on|off
|
|
--boundChecks:on|off turn bound checks on|off
|
|
--overflowChecks:on|off turn int over-/underflow checks on|off
|
|
--floatChecks:on|off turn all floating point (NaN/Inf) checks on|off
|
|
--nanChecks:on|off turn NaN checks on|off
|
|
--infChecks:on|off turn Inf checks on|off
|
|
--refChecks:on|off turn ref checks on|off (only for --newruntime)
|
|
|
|
Advanced options:
|
|
-o:FILE, --out:FILE set the output filename
|
|
--outdir:DIR set the path where the output file will be written
|
|
--usenimcache will use `outdir=$$nimcache`, whichever it resolves
|
|
to after all options have been processed
|
|
--stdout:on|off output to stdout
|
|
--colors:on|off turn compiler messages coloring on|off
|
|
--listFullPaths:on|off list full paths in messages
|
|
-w:on|off|list, --warnings:on|off|list
|
|
turn all warnings on|off or list all available
|
|
--warning[X]:on|off turn specific warning X on|off
|
|
--hints:on|off|list turn all hints on|off or list all available
|
|
--hint[X]:on|off turn specific hint X on|off
|
|
--warningAsError[X]:on|off
|
|
turn specific warning X into an error on|off
|
|
--styleCheck:off|hint|error
|
|
produce hints or errors for Nim identifiers that
|
|
do not adhere to Nim's official style guide
|
|
https://nim-lang.org/docs/nep1.html
|
|
--showAllMismatches:on|off
|
|
show all mismatching candidates in overloading
|
|
resolution
|
|
--lib:PATH set the system library path
|
|
--import:PATH add an automatically imported module
|
|
--include:PATH add an automatically included module
|
|
--nimcache:PATH set the path used for generated files
|
|
see also https://nim-lang.org/docs/nimc.html#compiler-usage-generated-c-code-directory
|
|
-c, --compileOnly:on|off compile Nim files only; do not assemble or link
|
|
--noLinking:on|off compile Nim and generated files but do not link
|
|
--noMain:on|off do not generate a main procedure
|
|
--genScript:on|off generate a compile script (in the 'nimcache'
|
|
subdirectory named 'compile_$$project$$scriptext'),
|
|
implies --compileOnly
|
|
--genDeps:on|off generate a '.deps' file containing the dependencies
|
|
--os:SYMBOL set the target operating system (cross-compilation)
|
|
--cpu:SYMBOL set the target processor (cross-compilation)
|
|
--debuginfo:on|off enables debug information
|
|
-t, --passC:OPTION pass an option to the C compiler
|
|
-l, --passL:OPTION pass an option to the linker
|
|
--cc:SYMBOL specify the C compiler
|
|
--cincludes:DIR modify the C compiler header search path
|
|
--clibdir:DIR modify the linker library search path
|
|
--clib:LIBNAME link an additional C library
|
|
(you should omit platform-specific extensions)
|
|
--project document the whole project (doc2)
|
|
--docRoot:path `nim doc --docRoot:/foo --project --outdir:docs /foo/sub/main.nim`
|
|
generates: docs/sub/main.html
|
|
if path == @pkg, will use nimble file enclosing dir
|
|
if path == @path, will use first matching dir in `--path`
|
|
if path == @default (the default and most useful), will use
|
|
best match among @pkg,@path.
|
|
if these are nonexistent, will use project path
|
|
-b, --backend:c|cpp|js|objc sets backend to use with commands like `nim doc` or `nim r`
|
|
--docCmd:cmd if `cmd == skip`, skips runnableExamples
|
|
else, runs runnableExamples with given options, eg:
|
|
`--docCmd:"-d:foo --threads:on"`
|
|
--docSeeSrcUrl:url activate 'see source' for doc and doc2 commands
|
|
(see doc.item.seesrc in config/nimdoc.cfg)
|
|
--docInternal also generate documentation for non-exported symbols
|
|
--lineDir:on|off generation of #line directive on|off
|
|
--embedsrc:on|off embeds the original source code as comments
|
|
in the generated output
|
|
--threadanalysis:on|off turn thread analysis on|off
|
|
--tlsEmulation:on|off turn thread local storage emulation on|off
|
|
--taintMode:on|off turn taint mode on|off
|
|
--implicitStatic:on|off turn implicit compile time evaluation on|off
|
|
--trmacros:on|off turn term rewriting macros on|off
|
|
--multimethods:on|off turn multi-methods on|off
|
|
--memTracker:on|off turn memory tracker on|off
|
|
--hotCodeReloading:on|off
|
|
turn support for hot code reloading on|off
|
|
--excessiveStackTrace:on|off
|
|
stack traces use full file paths
|
|
--stackTraceMsgs:on|off enable user defined stack frame msgs via `setFrameMsg`
|
|
--nilseqs:on|off allow 'nil' for strings/seqs for
|
|
backwards compatibility
|
|
--seqsv2:on|off use the new string/seq implementation based on
|
|
destructors
|
|
--skipCfg:on|off do not read the nim installation's configuration file
|
|
--skipUserCfg:on|off do not read the user's configuration file
|
|
--skipParentCfg:on|off do not read the parent dirs' configuration files
|
|
--skipProjCfg:on|off do not read the project's configuration file
|
|
--gc:refc|arc|orc|markAndSweep|boehm|go|none|regions
|
|
select the GC to use; default is 'refc'
|
|
--exceptions:setjmp|cpp|goto
|
|
select the exception handling implementation
|
|
--index:on|off turn index file generation on|off
|
|
--putenv:key=value set an environment variable
|
|
--NimblePath:PATH add a path for Nimble support
|
|
--noNimblePath deactivate the Nimble path
|
|
--clearNimblePath empty the list of Nimble package search paths
|
|
--cppCompileToNamespace:namespace
|
|
use the provided namespace for the generated C++ code,
|
|
if no namespace is provided "Nim" will be used
|
|
--expandMacro:MACRO dump every generated AST from MACRO
|
|
--expandArc:PROCNAME show how PROCNAME looks like after diverse optimizations
|
|
before the final backend phase (mostly ARC/ORC specific)
|
|
--excludePath:PATH exclude a path from the list of search paths
|
|
--dynlibOverride:SYMBOL marks SYMBOL so that dynlib:SYMBOL
|
|
has no effect and can be statically linked instead;
|
|
symbol matching is fuzzy so
|
|
that --dynlibOverride:lua matches
|
|
dynlib: "liblua.so.3"
|
|
--dynlibOverrideAll
|
|
disables the effects of the dynlib pragma
|
|
--listCmd list the compilation commands; can be combined with
|
|
`--hint:exec:on` and `--hint:link:on`
|
|
--asm produce assembler code
|
|
--parallelBuild:0|1|... perform a parallel build
|
|
value = number of processors (0 for auto-detect)
|
|
--incremental:on|off only recompile the changed modules (experimental!)
|
|
--verbosity:0|1|2|3 set Nim's verbosity level (1 is default)
|
|
--errorMax:N stop compilation after N errors; 0 means unlimited
|
|
--maxLoopIterationsVM:N set max iterations for all VM loops
|
|
--experimental:$1
|
|
enable experimental language feature
|
|
--legacy:$2
|
|
enable obsolete/legacy language feature
|
|
--useVersion:1.0 emulate Nim version X of the Nim compiler
|
|
--profiler:on|off enable profiling; requires `import nimprof`, and
|
|
works better with `--stackTrace:on`
|
|
see also https://nim-lang.github.io/Nim/estp.html
|
|
--benchmarkVM:on|off enable benchmarking of VM code with cpuTime()
|
|
--profileVM:on|off enable compile time VM profiler
|
|
--sinkInference:on|off en-/disable sink parameter inference (default: on)
|
|
--panics:on|off turn panics into process terminations (default: off)
|