diff options
author | Araq <rumpf_a@web.de> | 2011-12-23 11:15:19 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2011-12-23 11:15:19 +0100 |
commit | 6260757a2a760c05881c01ea9051ba245d06778d (patch) | |
tree | 1e0bfef65bb899650e533a3e93f7ec2640777781 | |
parent | 69cc24cdf6537d0ecfb9c481ad2fe42a9ce2c744 (diff) | |
download | Nim-6260757a2a760c05881c01ea9051ba245d06778d.tar.gz |
generated scripts do no contain paths anymore; regenerated C sources
-rwxr-xr-x | build.bat | 14 | ||||
-rwxr-xr-x | compiler/extccomp.nim | 23 | ||||
-rwxr-xr-x | todo.txt | 1 | ||||
-rwxr-xr-x | web/news.txt | 2 |
4 files changed, 25 insertions, 15 deletions
diff --git a/build.bat b/build.bat index 98eaf7f85..7a46fe5fc 100755 --- a/build.bat +++ b/build.bat @@ -35,6 +35,10 @@ ECHO %CC% %COMP_FLAGS% -Ibuild -c build/1_1/strtabs.c -o build/1_1/strtabs.o %CC% %COMP_FLAGS% -Ibuild -c build/1_1/strtabs.c -o build/1_1/strtabs.o ECHO %CC% %COMP_FLAGS% -Ibuild -c build/1_1/hashes.c -o build/1_1/hashes.o %CC% %COMP_FLAGS% -Ibuild -c build/1_1/hashes.c -o build/1_1/hashes.o +ECHO %CC% %COMP_FLAGS% -Ibuild -c build/1_1/tables.c -o build/1_1/tables.o +%CC% %COMP_FLAGS% -Ibuild -c build/1_1/tables.c -o build/1_1/tables.o +ECHO %CC% %COMP_FLAGS% -Ibuild -c build/1_1/math.c -o build/1_1/math.o +%CC% %COMP_FLAGS% -Ibuild -c build/1_1/math.c -o build/1_1/math.o ECHO %CC% %COMP_FLAGS% -Ibuild -c build/1_1/nversion.c -o build/1_1/nversion.o %CC% %COMP_FLAGS% -Ibuild -c build/1_1/nversion.c -o build/1_1/nversion.o ECHO %CC% %COMP_FLAGS% -Ibuild -c build/1_1/condsyms.c -o build/1_1/condsyms.o @@ -51,8 +55,6 @@ ECHO %CC% %COMP_FLAGS% -Ibuild -c build/1_1/idents.c -o build/1_1/idents.o %CC% %COMP_FLAGS% -Ibuild -c build/1_1/idents.c -o build/1_1/idents.o ECHO %CC% %COMP_FLAGS% -Ibuild -c build/1_1/intsets.c -o build/1_1/intsets.o %CC% %COMP_FLAGS% -Ibuild -c build/1_1/intsets.c -o build/1_1/intsets.o -ECHO %CC% %COMP_FLAGS% -Ibuild -c build/1_1/math.c -o build/1_1/math.o -%CC% %COMP_FLAGS% -Ibuild -c build/1_1/math.c -o build/1_1/math.o ECHO %CC% %COMP_FLAGS% -Ibuild -c build/1_1/idgen.c -o build/1_1/idgen.o %CC% %COMP_FLAGS% -Ibuild -c build/1_1/idgen.c -o build/1_1/idgen.o ECHO %CC% %COMP_FLAGS% -Ibuild -c build/1_1/astalgo.c -o build/1_1/astalgo.o @@ -109,8 +111,6 @@ ECHO %CC% %COMP_FLAGS% -Ibuild -c build/1_1/bitsets.c -o build/1_1/bitsets.o %CC% %COMP_FLAGS% -Ibuild -c build/1_1/bitsets.c -o build/1_1/bitsets.o ECHO %CC% %COMP_FLAGS% -Ibuild -c build/1_1/semthreads.c -o build/1_1/semthreads.o %CC% %COMP_FLAGS% -Ibuild -c build/1_1/semthreads.c -o build/1_1/semthreads.o -ECHO %CC% %COMP_FLAGS% -Ibuild -c build/1_1/tables.c -o build/1_1/tables.o -%CC% %COMP_FLAGS% -Ibuild -c build/1_1/tables.c -o build/1_1/tables.o ECHO %CC% %COMP_FLAGS% -Ibuild -c build/1_1/importer.c -o build/1_1/importer.o %CC% %COMP_FLAGS% -Ibuild -c build/1_1/importer.c -o build/1_1/importer.o ECHO %CC% %COMP_FLAGS% -Ibuild -c build/1_1/lookups.c -o build/1_1/lookups.o @@ -139,6 +139,8 @@ ECHO %CC% %COMP_FLAGS% -Ibuild -c build/1_1/sigmatch.c -o build/1_1/sigmatch.o %CC% %COMP_FLAGS% -Ibuild -c build/1_1/sigmatch.c -o build/1_1/sigmatch.o ECHO %CC% %COMP_FLAGS% -Ibuild -c build/1_1/suggest.c -o build/1_1/suggest.o %CC% %COMP_FLAGS% -Ibuild -c build/1_1/suggest.c -o build/1_1/suggest.o +ECHO %CC% %COMP_FLAGS% -Ibuild -c build/1_1/aliases.c -o build/1_1/aliases.o +%CC% %COMP_FLAGS% -Ibuild -c build/1_1/aliases.c -o build/1_1/aliases.o ECHO %CC% %COMP_FLAGS% -Ibuild -c build/1_1/docgen.c -o build/1_1/docgen.o %CC% %COMP_FLAGS% -Ibuild -c build/1_1/docgen.c -o build/1_1/docgen.o ECHO %CC% %COMP_FLAGS% -Ibuild -c build/1_1/rst.c -o build/1_1/rst.o @@ -162,8 +164,8 @@ ECHO %CC% %COMP_FLAGS% -Ibuild -c build/1_1/depends.c -o build/1_1/depends.o ECHO %CC% %COMP_FLAGS% -Ibuild -c build/1_1/parseopt.c -o build/1_1/parseopt.o %CC% %COMP_FLAGS% -Ibuild -c build/1_1/parseopt.c -o build/1_1/parseopt.o -ECHO %LINKER% %LINK_FLAGS% -o bin\nimrod.exe build/1_1/nim__dat.o build/1_1/system.o build/1_1/nimrod.o build/1_1/times.o build/1_1/strutils.o build/1_1/parseutils.o build/1_1/winlean.o build/1_1/commands.o build/1_1/os.o build/1_1/msgs.o build/1_1/options.o build/1_1/lists.o build/1_1/strtabs.o build/1_1/hashes.o build/1_1/nversion.o build/1_1/condsyms.o build/1_1/ast.o build/1_1/crc.o build/1_1/ropes.o build/1_1/platform.o build/1_1/idents.o build/1_1/intsets.o build/1_1/math.o build/1_1/idgen.o build/1_1/astalgo.o build/1_1/rodutils.o build/1_1/extccomp.o build/1_1/osproc.o build/1_1/streams.o build/1_1/wordrecg.o build/1_1/lexer.o build/1_1/lexbase.o build/1_1/llstream.o build/1_1/nimconf.o build/1_1/main.o build/1_1/syntaxes.o build/1_1/parser.o build/1_1/pbraces.o build/1_1/filters.o build/1_1/renderer.o build/1_1/filter_tmpl.o build/1_1/rodread.o build/1_1/memfiles.o build/1_1/rodwrite.o build/1_1/passes.o build/1_1/types.o build/1_1/trees.o build/1_1/magicsys.o build/1_1/nimsets.o build/1_1/bitsets.o build/1_1/semthreads.o build/1_1/tables.o build/1_1/importer.o build/1_1/lookups.o build/1_1/semdata.o build/1_1/treetab.o build/1_1/evals.o build/1_1/semfold.o build/1_1/transf.o build/1_1/cgmeth.o build/1_1/sem.o build/1_1/procfind.o build/1_1/pragmas.o build/1_1/semtypinst.o build/1_1/sigmatch.o build/1_1/suggest.o build/1_1/docgen.o build/1_1/rst.o build/1_1/highlite.o build/1_1/cgen.o build/1_1/ccgutils.o build/1_1/cgendata.o build/1_1/ccgmerge.o build/1_1/ecmasgen.o build/1_1/passaux.o build/1_1/depends.o build/1_1/parseopt.o -%LINKER% %LINK_FLAGS% -o bin\nimrod.exe build/1_1/nim__dat.o build/1_1/system.o build/1_1/nimrod.o build/1_1/times.o build/1_1/strutils.o build/1_1/parseutils.o build/1_1/winlean.o build/1_1/commands.o build/1_1/os.o build/1_1/msgs.o build/1_1/options.o build/1_1/lists.o build/1_1/strtabs.o build/1_1/hashes.o build/1_1/nversion.o build/1_1/condsyms.o build/1_1/ast.o build/1_1/crc.o build/1_1/ropes.o build/1_1/platform.o build/1_1/idents.o build/1_1/intsets.o build/1_1/math.o build/1_1/idgen.o build/1_1/astalgo.o build/1_1/rodutils.o build/1_1/extccomp.o build/1_1/osproc.o build/1_1/streams.o build/1_1/wordrecg.o build/1_1/lexer.o build/1_1/lexbase.o build/1_1/llstream.o build/1_1/nimconf.o build/1_1/main.o build/1_1/syntaxes.o build/1_1/parser.o build/1_1/pbraces.o build/1_1/filters.o build/1_1/renderer.o build/1_1/filter_tmpl.o build/1_1/rodread.o build/1_1/memfiles.o build/1_1/rodwrite.o build/1_1/passes.o build/1_1/types.o build/1_1/trees.o build/1_1/magicsys.o build/1_1/nimsets.o build/1_1/bitsets.o build/1_1/semthreads.o build/1_1/tables.o build/1_1/importer.o build/1_1/lookups.o build/1_1/semdata.o build/1_1/treetab.o build/1_1/evals.o build/1_1/semfold.o build/1_1/transf.o build/1_1/cgmeth.o build/1_1/sem.o build/1_1/procfind.o build/1_1/pragmas.o build/1_1/semtypinst.o build/1_1/sigmatch.o build/1_1/suggest.o build/1_1/docgen.o build/1_1/rst.o build/1_1/highlite.o build/1_1/cgen.o build/1_1/ccgutils.o build/1_1/cgendata.o build/1_1/ccgmerge.o build/1_1/ecmasgen.o build/1_1/passaux.o build/1_1/depends.o build/1_1/parseopt.o +ECHO %LINKER% %LINK_FLAGS% -o bin\nimrod.exe build/1_1/nim__dat.o build/1_1/system.o build/1_1/nimrod.o build/1_1/times.o build/1_1/strutils.o build/1_1/parseutils.o build/1_1/winlean.o build/1_1/commands.o build/1_1/os.o build/1_1/msgs.o build/1_1/options.o build/1_1/lists.o build/1_1/strtabs.o build/1_1/hashes.o build/1_1/tables.o build/1_1/math.o build/1_1/nversion.o build/1_1/condsyms.o build/1_1/ast.o build/1_1/crc.o build/1_1/ropes.o build/1_1/platform.o build/1_1/idents.o build/1_1/intsets.o build/1_1/idgen.o build/1_1/astalgo.o build/1_1/rodutils.o build/1_1/extccomp.o build/1_1/osproc.o build/1_1/streams.o build/1_1/wordrecg.o build/1_1/lexer.o build/1_1/lexbase.o build/1_1/llstream.o build/1_1/nimconf.o build/1_1/main.o build/1_1/syntaxes.o build/1_1/parser.o build/1_1/pbraces.o build/1_1/filters.o build/1_1/renderer.o build/1_1/filter_tmpl.o build/1_1/rodread.o build/1_1/memfiles.o build/1_1/rodwrite.o build/1_1/passes.o build/1_1/types.o build/1_1/trees.o build/1_1/magicsys.o build/1_1/nimsets.o build/1_1/bitsets.o build/1_1/semthreads.o build/1_1/importer.o build/1_1/lookups.o build/1_1/semdata.o build/1_1/treetab.o build/1_1/evals.o build/1_1/semfold.o build/1_1/transf.o build/1_1/cgmeth.o build/1_1/sem.o build/1_1/procfind.o build/1_1/pragmas.o build/1_1/semtypinst.o build/1_1/sigmatch.o build/1_1/suggest.o build/1_1/aliases.o build/1_1/docgen.o build/1_1/rst.o build/1_1/highlite.o build/1_1/cgen.o build/1_1/ccgutils.o build/1_1/cgendata.o build/1_1/ccgmerge.o build/1_1/ecmasgen.o build/1_1/passaux.o build/1_1/depends.o build/1_1/parseopt.o +%LINKER% %LINK_FLAGS% -o bin\nimrod.exe build/1_1/nim__dat.o build/1_1/system.o build/1_1/nimrod.o build/1_1/times.o build/1_1/strutils.o build/1_1/parseutils.o build/1_1/winlean.o build/1_1/commands.o build/1_1/os.o build/1_1/msgs.o build/1_1/options.o build/1_1/lists.o build/1_1/strtabs.o build/1_1/hashes.o build/1_1/tables.o build/1_1/math.o build/1_1/nversion.o build/1_1/condsyms.o build/1_1/ast.o build/1_1/crc.o build/1_1/ropes.o build/1_1/platform.o build/1_1/idents.o build/1_1/intsets.o build/1_1/idgen.o build/1_1/astalgo.o build/1_1/rodutils.o build/1_1/extccomp.o build/1_1/osproc.o build/1_1/streams.o build/1_1/wordrecg.o build/1_1/lexer.o build/1_1/lexbase.o build/1_1/llstream.o build/1_1/nimconf.o build/1_1/main.o build/1_1/syntaxes.o build/1_1/parser.o build/1_1/pbraces.o build/1_1/filters.o build/1_1/renderer.o build/1_1/filter_tmpl.o build/1_1/rodread.o build/1_1/memfiles.o build/1_1/rodwrite.o build/1_1/passes.o build/1_1/types.o build/1_1/trees.o build/1_1/magicsys.o build/1_1/nimsets.o build/1_1/bitsets.o build/1_1/semthreads.o build/1_1/importer.o build/1_1/lookups.o build/1_1/semdata.o build/1_1/treetab.o build/1_1/evals.o build/1_1/semfold.o build/1_1/transf.o build/1_1/cgmeth.o build/1_1/sem.o build/1_1/procfind.o build/1_1/pragmas.o build/1_1/semtypinst.o build/1_1/sigmatch.o build/1_1/suggest.o build/1_1/aliases.o build/1_1/docgen.o build/1_1/rst.o build/1_1/highlite.o build/1_1/cgen.o build/1_1/ccgutils.o build/1_1/cgendata.o build/1_1/ccgmerge.o build/1_1/ecmasgen.o build/1_1/passaux.o build/1_1/depends.o build/1_1/parseopt.o ECHO SUCCESS diff --git a/compiler/extccomp.nim b/compiler/extccomp.nim index 6635c2748..b7548a4b5 100755 --- a/compiler/extccomp.nim +++ b/compiler/extccomp.nim @@ -422,6 +422,13 @@ proc getOptSize(c: TSystemCC): string = if result == "": result = cc[c].optSize # use default settings from this file +proc noAbsolutePaths: bool {.inline.} = + # We used to check current OS != specified OS, but this makes no sense + # really: Cross compilation from Linux to Linux for example is entirely + # reasonable. + # `optGenMapping` is included here for niminst. + result = gGlobalOptions * {optGenScript, optGenMapping} != {} + const specialFileA = 42 specialFileB = 42 @@ -461,7 +468,7 @@ proc getCompileCFileCmd*(cfilename: string, isExternal = false): string = add(options, ' ' & cc[c].pic) var includeCmd, compilePattern: string - if targetOS == platform.hostOS: + if not noAbsolutePaths(): # compute include paths: includeCmd = cc[c].includeCmd & quoteIfContainsWhite(libpath) @@ -474,9 +481,8 @@ proc getCompileCFileCmd*(cfilename: string, isExternal = false): string = compilePattern = cc[c].compilerExe # XXX fix the grammar finally, we need multi-line if expressions: - var cfile = if targetOS == platform.hostOS: cfilename else: extractFileName( - cfilename) - var objfile = if not isExternal or targetOS != platform.hostOS: toObjFile( + var cfile = if noAbsolutePaths(): extractFileName(cfilename) else: cfilename + var objfile = if not isExternal or noAbsolutePaths(): toObjFile( cfile) else: completeCFilePath(toObjFile(cfile)) cfile = quoteIfContainsWhite(AddFileExt(cfile, cExt)) objfile = quoteIfContainsWhite(objfile) @@ -532,9 +538,10 @@ proc CallCCompiler*(projectfile: string) = var it = PStrEntry(toLink.head) var objfiles = "" while it != nil: + let objFile = if noAbsolutePaths(): it.data.extractFilename else: it.data add(objfiles, ' ') add(objfiles, quoteIfContainsWhite( - addFileExt(it.data, cc[ccompiler].objExt))) + addFileExt(objFile, cc[ccompiler].objExt))) it = PStrEntry(it.next) if optGenStaticLib in gGlobalOptions: @@ -545,18 +552,18 @@ proc CallCCompiler*(projectfile: string) = var linkerExe = getConfigVar(cc[c].name & ".linkerexe") if len(linkerExe) == 0: linkerExe = cc[c].linkerExe if targetOS == osWindows: linkerExe = addFileExt(linkerExe, "exe") - if platform.hostOS != targetOS: linkCmd = quoteIfContainsWhite(linkerExe) + if noAbsolutePaths(): linkCmd = quoteIfContainsWhite(linkerExe) else: linkCmd = quoteIfContainsWhite(JoinPath(ccompilerpath, linkerExe)) if optGenGuiApp in gGlobalOptions: buildGui = cc[c].buildGui else: buildGui = "" var exefile: string if optGenDynLib in gGlobalOptions: - exefile = platform.os[targetOS].dllFrmt % [splitFile(projectFile).name] + exefile = platform.os[targetOS].dllFrmt % splitFile(projectFile).name buildDll = cc[c].buildDll else: exefile = splitFile(projectFile).name & platform.os[targetOS].exeExt buildDll = "" - if targetOS == platform.hostOS: + if not noAbsolutePaths(): exefile = joinPath(splitFile(projectFile).dir, exefile) exefile = quoteIfContainsWhite(exefile) for linkedLib in items(cLinkedLibs): diff --git a/todo.txt b/todo.txt index 9529e89dc..35fa001d7 100755 --- a/todo.txt +++ b/todo.txt @@ -2,7 +2,6 @@ version 0.8.14 ============== - GC should care about interior pointers on the stack -- BUG: absolute paths in compiler generated scripts - BUG: type TX = TTable[string, int] - warning for implicit openArray -> varargs conversion - implement explicit varargs; **but** ``len(varargs)`` problem remains! diff --git a/web/news.txt b/web/news.txt index 22e0377c5..5921d5d87 100755 --- a/web/news.txt +++ b/web/news.txt @@ -91,6 +91,8 @@ Compiler Additions and Objective C somewhat easier. - Added a ``--nimcache:PATH`` configuration option for control over the output directory for generated code. +- The ``--genScript`` option now produces different compilation scripts + which do not contain absolute paths. - Added ``--cincludes:dir``, ``--clibdir:lib`` configuration options for modifying the C compiler's header/library search path in cross-platform way. - Added ``--clib:lib`` configuration option for specifying additional |