diff options
author | Araq <rumpf_a@web.de> | 2014-07-01 23:17:20 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2014-07-01 23:17:20 +0200 |
commit | b119dc2f3b35f6fb84bc9661ea0fbbd006fba433 (patch) | |
tree | 939929f8ee8181ff17031ef930d6cca64d32d319 /compiler/commands.nim | |
parent | ad29bed942187829b4b0242b2530629bd0af5349 (diff) | |
download | Nim-b119dc2f3b35f6fb84bc9661ea0fbbd006fba433.tar.gz |
fixed build configuration detection
Diffstat (limited to 'compiler/commands.nim')
-rw-r--r-- | compiler/commands.nim | 43 |
1 files changed, 24 insertions, 19 deletions
diff --git a/compiler/commands.nim b/compiler/commands.nim index e920cc897..38c8dd294 100644 --- a/compiler/commands.nim +++ b/compiler/commands.nim @@ -9,10 +9,34 @@ # This module handles the parsing of command line arguments. + +# We do this here before the 'import' statement so 'defined' does not get +# confused with 'TGCMode.gcGenerational' etc. +template bootSwitch(name, expr, userString: expr): expr = + # Helper to build boot constants, for debugging you can 'echo' the else part. + const name = if expr: " " & userString else: "" + +bootSwitch(usedRelease, defined(release), "-d:release") +bootSwitch(usedGnuReadline, defined(useGnuReadline), "-d:useGnuReadline") +bootSwitch(usedNoCaas, defined(noCaas), "-d:noCaas") +bootSwitch(usedBoehm, defined(boehmgc), "--gc:boehm") +bootSwitch(usedMarkAndSweep, defined(gcmarkandsweep), "--gc:markAndSweep") +bootSwitch(usedGenerational, defined(gcgenerational), "--gc:generational") +bootSwitch(usedNoGC, defined(nogc), "--gc:none") + import os, msgs, options, nversion, condsyms, strutils, extccomp, platform, lists, wordrecg, parseutils, babelcmd, idents +# but some have deps to imported modules. Yay. +bootSwitch(usedTinyC, hasTinyCBackend, "-d:tinyc") +bootSwitch(usedAvoidTimeMachine, noTimeMachine, "-d:avoidTimeMachine") +bootSwitch(usedNativeStacktrace, + defined(nativeStackTrace) and nativeStackTraceSupported, + "-d:nativeStackTrace") +bootSwitch(usedFFI, hasFFI, "-d:useFFI") + + proc writeCommandLineUsage*() type @@ -50,25 +74,6 @@ proc writeAdvancedUsage(pass: TCmdLinePass) = CPU[platform.hostCPU].name]) & AdvancedUsage) quit(0) -template bootSwitch(name, expr, userString: expr): expr = - # Helper to build boot constants, for debugging you can 'echo' the else part. - const name = if expr: " " & userString else: "" - -bootSwitch(usedAvoidTimeMachine, noTimeMachine, "-d:avoidTimeMachine") -bootSwitch(usedRelease, defined(release), "-d:release") -bootSwitch(usedTinyC, hasTinyCBackend, "-d:tinyc") -bootSwitch(usedGnuReadline, defined(useGnuReadline), "-d:useGnuReadline") -bootSwitch(usedNativeStacktrace, - defined(nativeStackTrace) and nativeStackTraceSupported, - "-d:nativeStackTrace") -bootSwitch(usedNoCaas, defined(noCaas), "-d:noCaas") -bootSwitch(usedFFI, hasFFI, "-d:useFFI") -bootSwitch(usedBoehm, defined(boehmgc), "--gc:boehm") -bootSwitch(usedMarkAndSweep, defined(gcmarkandsweep), "--gc:markAndSweep") -bootSwitch(usedGenerational, defined(gcgenerational), "--gc:generational") -bootSwitch(usedNoGC, defined(nogc), "--gc:none") - - proc writeVersionInfo(pass: TCmdLinePass) = if pass == passCmd1: msgWriteln(`%`(HelpMessage, [VersionAsString, |