配置文件
~/.config/nim/config.nims
import std/[strutils, strformat]
switch("nimcache", fmt"{getCurrentDir()}/nimcache/{projectName()}/{CompileTime.toHex}")
switch("colors", "on")
# switch("usenimcache") # 设置后无法正常使用testament
# switch("backend", "c") # 设置后cc,cpp,js命令失效
编译
常用
-
nim c main.nim编译main.nim -
nim r main.nim,nim c -r main.nim编译并运行main.nim - 编译
./src/project.nim(项目入口)-
elvish:nim c -o:"$projectname" --outdir:"$nimcache" ./src/project.nim
-
语法
nim command [options] [projectfile] [arguments]
command
-
c(compile) 编译 -
r编译并运行 -
doc生成文档 -
cc(compileToC) 以C编译 -
cpp(compileToCpp) 以C++编译 -
js以JavaScript编译
options
-
-r(--run) 执行编译后的程序 -
-d:SYMBOL(--define:SYMBOL) 设置编译器符号-
-d:release发布 -
-d:testing测试 -
-d:ssl激活SSL
-
-
--app:console|gui|lib|staticlib编译程序类型:控制台程序、GUI、动态链接库、静态链接库 -
-p:PATH(--path:PATH) 增加搜索路径 -
--backend:c|cpp|js|objc设置编译后端为C、C++、JavaScript、Objective-C -
--noMain:on|off不生成proc main -
--nimMainPrefix:PREFIX跨后端整合时配置初始化函数NimMain()的前缀,构成PREFIXNimMain() -
-o:FILE(--out:FILE) 设置输出文件名称 -
--outdir:DIR设置输出文件位置,在设置-o后有效 -
--usenimcache自动设置outdir为nimcache,在设置-o后无效
bash:--outdir:\$nimcacheelvish:--outdir:'$nimcache',--outdir:"$nimcache"murex:--outdir:\$nimcache,--outdir:'$nimcache'
-
--nimcache:PATH设置nimcache -
--mm:orc|arc|refc|markAndSweep|boehm|go|none|regions配置内存管理方式-
orc默认,结合引用计数和所有权/借用检查 -
arc纯粹的原子引用计数
-
-
--deepcopy:on|off允许在arc,orc内存管理模式下使用system.deepCopy -
--threads:on|off是否开启多线程 -
--colors:on|off是否开启信息多色配置 -
--stackTrace:on|off是否开启stackTrace -
--lineTrace:on|off是否开启lineTrace -
--debuginfo:on|off是否输出调试信息 -
--passC:OPTION传递给C编译器的option -
--passL:OPTION传递给链接器的option -
-c(--compileOnly:on|off) 只编译,不汇编、链接 -
--noLinking:on|off只编译、汇编,不链接 -
--putenv:key=value设置环境变量key为value -
-w:on|off|list(--warnings:on|off|list) 是否输出警告
--warning:X:on|off 是否输出警告X,X可以设置为all
--warningAsError:X:on|off 将警告X视为error
-
--skipCfg:on|off不读取nim安装目录的配置文件$nim/config/nim.cfg和$nim/config/config.nims
--skipUserCfg:on|off 不读取用户的配置文件~/.config/nim/config.nims
--skipProjCfg:on|off 不读取项目的配置文件
Nimble
-
nimble init PROJECT初始化Nim项目 -
nimble install [DEPENDENCE]安装Nim依赖 -
nimble uninstall DEPENDENCE删除Nim依赖,但是DEPENDENCE不能作为其他依赖的依赖-
--inclDeps,-i删除和DEPENDENCE相关的全部依赖
-
-
nimble list查看全局安装的依赖-
--installed,-i查看本地安装的依赖
-
-
nimble deps以树的结构展示依赖信息-
--format:json按照JSON结构展示
-
-
nimble test执行.nimble中配置的测试 -
nimble build按照默认配置或$projectdir/config.nims构建
Testament
常用
-
testament p "tests/test.nim"
discard """
action: "run"
targets: "c"
cmd: "nim r -d:testing $file"
"""
语法
testament command [projectfile] [options]
command
-
p PATTERN,pat PATTERN,pattern PATTERN测试路径符合PATTERN的文件
测试
$projectdir/tests/test.nim:testament p "tests/test.nim"测试
$projectdir/tests/*.nim:testament p "tests/*.nim"
-
all测试所有在tests/category下的.nim -
r SINGLE,run SINGLE测试在tests/category下的SINGLE(.nim)
options
-
--targets:c|cpp|js|objc设置编译后端 -
--colors:on|off是否开启信息多色配置
discard
-
action-
compile编译成功 -
run编译并执行成功 -
reject编译失败
-
-
cmd测试时执行的命令
# 默认
# $target: --targets
nim $target --hints:on -d:testing --nimblePath:build/deps/pkgs $options $file
-
targets测试时编译的后端,取值有c,cpp,js,objc,多个后端以分割
discard """ targets: "c js" """
-
matrix测试时的-d:SYMBOL,多种配置以;分割
discard """ matrix: "; -d:release; -d:caseFoo -d:release" """
Top comments (0)