Initial notes
This commit is contained in:
parent
f8b3756a64
commit
92de44270b
|
@ -0,0 +1,40 @@
|
||||||
|
The [nimscript docs](* https://nim-lang.org/docs/nimscript.html) describe the nimscript API, but I needed some help on how to use it. (Most of the following applies to nimble too, but let's concentrate on nimscript for now.)
|
||||||
|
|
||||||
|
### Example
|
||||||
|
Suppose you have a scrDir like this:
|
||||||
|
```
|
||||||
|
src/
|
||||||
|
foo.nim
|
||||||
|
foo.nim.cfg
|
||||||
|
foo.nims
|
||||||
|
nim.cfg
|
||||||
|
zzz.nims
|
||||||
|
```
|
||||||
|
|
||||||
|
Suppose `foo.nims` looks like this:
|
||||||
|
```nim
|
||||||
|
echo "In foo.nims"
|
||||||
|
|
||||||
|
include "zzz.nims"
|
||||||
|
|
||||||
|
task mybuild, "My build task":
|
||||||
|
echo "In mybuild"
|
||||||
|
switch("verbosity", "2")
|
||||||
|
setCommand "c"
|
||||||
|
|
||||||
|
task newtask, "My new task":
|
||||||
|
echo "In newtask"
|
||||||
|
setCommand "dump"
|
||||||
|
```
|
||||||
|
And `zzz.nims` looks like this:
|
||||||
|
```nim
|
||||||
|
echo "In zzz.nims"
|
||||||
|
```
|
||||||
|
You *could* run your nimscript like this: `nim e foo.nims`, but that will not make your tasks available.
|
||||||
|
|
||||||
|
Instead, run **nim** on `foo.nim` like this:
|
||||||
|
|
||||||
|
nim newtask foo
|
||||||
|
nim mybuild -d:debug foo
|
||||||
|
|
||||||
|
All the [standard `.cfg` files](https://nim-lang.org/docs/nimc.html#compiler-usage-configuration-files) are read *before* your nimscript. You can use `include` to avoid repeating code for each tool-specific `.nims` file. That's not quite as convenient as a global `nim.cfg` file, but it's more flexible.
|
Loading…
Reference in New Issue