summary refs log tree commit diff stats
path: root/compiler/commands.nim
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2014-07-01 23:17:20 +0200
committerAraq <rumpf_a@web.de>2014-07-01 23:17:20 +0200
commitb119dc2f3b35f6fb84bc9661ea0fbbd006fba433 (patch)
tree939929f8ee8181ff17031ef930d6cca64d32d319 /compiler/commands.nim
parentad29bed942187829b4b0242b2530629bd0af5349 (diff)
downloadNim-b119dc2f3b35f6fb84bc9661ea0fbbd006fba433.tar.gz
fixed build configuration detection
Diffstat (limited to 'compiler/commands.nim')
-rw-r--r--compiler/commands.nim43
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,