Version 0.18.0 of nim does not seem to recognize defined symbol values:
The source named checkCTsym.nim is:
when CTS==yes:
echo "yes"
else:
echo "no"
Run
The compile command is:
> nim c -r -d:CTS=yes checkCTsym
The error message is: > checkCTsym.nim(1, 6) Error: undeclared identifier: 'CTS'
The nim version is:
Nim Compiler Version 0.18.0 [Linux: amd64]
Copyright (c) 2006-2018 by Andreas Rumpf
git hash: 855956bf617f68ac0be3717329e9e1181e5dc0c6
active boot switches: -d:release
Run
The What silly thing am I doing wrong??
I have already tried quoting the yes and using : instead of = in the compile
command.
BTW the Nim Compiler User Guide says:
Compile time symbols
Through the -d:x or --define:x switch you can define compile time symbols
for conditional compilation. The defined switches can be checked in source code
with the when statement and defined proc. The typical use of this switch is to
enable builds in release mode (-d:release) where certain safety checks are
omitted for better performance. Another common use is the -d:ssl switch to
activate SSL sockets.
Additionally, you may pass a value along with the symbol: -d:x=y which may
be used in conjunction with the compile time define pragmas to override symbols
during build time.
Compile time symbols are completely case insensitive and underscores are
ignored too. --define:FOO and --define:foo are identical.
Run