Conditional compilation
1. // Support for multiple conditions in one branch
2. $if ios || android {
3. println('Running on a mobile device!')
4. }
5. $if linux && x64 {
6. println('64-bit Linux.')
7. }
8. // Usage as expression
9. os := $if windows { 'Windows' } $else { 'UNIX' }
10. println('Using $os')
11. // $else-$if branches
12. $if tinyc {
13. println('tinyc')
14. } $else $if clang {
15. println('clang')
16. } $else $if gcc {
17. println('gcc')
18. } $else {
19. println('different compiler')
20. }
21. $if test {
22. println('testing')
23. }
24. // v -cg ...
25. $if debug {
26. println('debugging')
27. }
28. // v -d option ...
29. $if option ? {
30. println('custom option')
31. }
If you want an if to be evaluated at compile time it must be prefixed with a $ sign. Right now it can be used to detect an OS, compiler, platform or compilation options. $if debug is a special option like $if windows or $if x32. If you’re using a custom ifdef, then you do need $if option ? {} and compile withv -d option. Full list of builtin options:
| OS | Compilers | Platforms | Other |
|---|---|---|---|
windows, linux, macos |
gcc, tinyc |
amd64, aarch64 |
debug, test, js |
mac, darwin, ios, |
clang, mingw |
x64, x32 |
glibc, prealloc |
android,mach, dragonfly |
msvc |
little_endian |
no_bounds_checking |
gnu, hpux, haiku, qnx |
cplusplus |
big_endian |
|
solaris, linux_or_macos |
