@@ -206,8 +206,13 @@ proc configToNif(conf: ConfigRef; dest: var TokenBuf) =
206206 dest.toNif " configVars" , conf.configVars
207207
208208 dest.buildTree " defines" :
209- for def in definedSymbolNames (conf.symbols):
210- dest.addStrLit def
209+ for def, val in conf.symbols:
210+ if val == " true" :
211+ dest.addStrLit def
212+ else :
213+ dest.buildTree " kv" :
214+ dest.addStrLit def
215+ dest.addStrLit val
211216
212217 dest.toNif " nimblepaths" , conf.nimblePaths
213218 dest.toNif " searchPaths" , conf.searchPaths
@@ -356,10 +361,20 @@ proc loadConfigsFromNif(conf: ConfigRef; n: var Cursor) =
356361 expectTag n, " defines"
357362 inc n
358363 while n.kind != ParRi :
359- assert n.kind == StringLit
360- let def = pool.strings[n.litId]
361- inc n
362- conf.symbols.defineSymbol (def)
364+ if n.kind == ParLe :
365+ expectTag n, " kv"
366+ inc n
367+ let def = pool.strings[n.litId]
368+ inc n
369+ let val = pool.strings[n.litId]
370+ inc n
371+ conf.symbols.defineSymbol (def, val)
372+ assert n.kind == ParRi
373+ inc n
374+ else :
375+ let def = pool.strings[n.litId]
376+ inc n
377+ conf.symbols.defineSymbol (def)
363378 inc n
364379
365380 fromNif conf.nimblePaths, " nimblepaths" , n
@@ -513,7 +528,7 @@ when isMainModule:
513528 assertImpl maxLoopIterationsVM
514529 assertImpl maxCallDepthVM
515530 assertImpl configVars
516- assert eqlKeys (x. symbols, y.symbols)
531+ assertImpl symbols
517532 assertImpl nimblePaths
518533 assertImpl searchPaths
519534 assertImpl outFile
@@ -602,6 +617,7 @@ when isMainModule:
602617 conf.setConfigVar (" ." , " " )
603618 conf.symbols.initDefines ()
604619 conf.symbols.defineSymbol (" test" )
620+ conf.symbols.defineSymbol (" FooBar" , " 123" )
605621 conf.nimblePaths = @ [AbsoluteDir " /foo" , AbsoluteDir " /lib/nimble" ]
606622 conf.searchPaths = @ [AbsoluteDir " /lib" , AbsoluteDir " /user/lib" ]
607623 conf.outFile = RelativeFile " foo"
0 commit comments