diff options
-rw-r--r-- | ci/nsis_build.bat | 4 | ||||
-rw-r--r-- | compiler/installer.ini | 1 | ||||
-rw-r--r-- | koch.nim | 27 | ||||
-rw-r--r-- | tools/niminst/niminst.nim | 39 |
4 files changed, 31 insertions, 40 deletions
diff --git a/ci/nsis_build.bat b/ci/nsis_build.bat index f870e8e88..657b2b90a 100644 --- a/ci/nsis_build.bat +++ b/ci/nsis_build.bat @@ -43,8 +43,10 @@ ReM which mingw link to put in the NSIS installer. nim c --out:koch_temp koch || exit /b koch_temp boot -d:release || exit /b koch_temp nsis -d:release || exit /b +koch_temp zip -d:release || exit /b dir build move /y build\nim_%NIMVER%.exe build\nim-%NIMVER%_x32.exe || exit /b +move /y build\nim_%NIMVER%.zip build\nim-%NIMVER%_x32.zip || exit /b ReM Build Win64 version: @@ -55,4 +57,6 @@ cd .. nim c --out:koch_temp koch || exit /b koch_temp boot -d:release || exit /b koch_temp nsis -d:release || exit /b +koch_temp zip -d:release || exit /b move /y build\nim_%NIMVER%.exe build\nim-%NIMVER%_x64.exe || exit /b +move /y build\nim_%NIMVER%.zip build\nim-%NIMVER%_x64.zip || exit /b diff --git a/compiler/installer.ini b/compiler/installer.ini index a39c5a271..2a9fa36a5 100644 --- a/compiler/installer.ini +++ b/compiler/installer.ini @@ -92,7 +92,6 @@ Files: "bin/nimble.exe" Files: "bin/makelink.exe" Files: "bin/*.dll" -Files: "dist/*.dll" Files: "koch.exe" ; Files: "dist/mingw" Files: "start.bat" diff --git a/koch.nim b/koch.nim index 57948f839..2f936fc4e 100644 --- a/koch.nim +++ b/koch.nim @@ -20,11 +20,6 @@ import const VersionAsString = system.NimVersion #"0.10.2" -when defined(withUpdate): - import httpclient -when defined(haveZipLib): - import zipfiles - const HelpText = """ +-----------------------------------------------------------------+ @@ -68,7 +63,10 @@ Web options: build the official docs, use UA-48159761-1 """ -proc exe(f: string): string = return addFileExt(f, ExeExt) +proc exe(f: string): string = + result = addFileExt(f, ExeExt) + when defined(windows): + result = result.replace('/','\\') proc findNim(): string = var nim = "nim".exe @@ -144,7 +142,7 @@ proc copyExe(source, dest: string) = inclFilePermissions(dest, {fpUserExec}) const - compileNimInst = "-d:useLibzipSrc tools/niminst/niminst" + compileNimInst = "tools/niminst/niminst" proc csource(args: string) = exec("$4 cc $1 -r $3 --var:version=$2 --var:mingw=none csource --main:compiler/nim.nim compiler/installer.ini $1" % @@ -177,6 +175,7 @@ proc bundleNimsuggest(buildExe: bool) = proc zip(args: string) = bundleNimbleSrc() + bundleNimsuggest(false) exec("$3 cc -r $2 --var:version=$1 --var:mingw=none --main:compiler/nim.nim scripts compiler/installer.ini" % [VersionAsString, compileNimInst, findNim()]) exec("$# --var:version=$# --var:mingw=none --main:compiler/nim.nim zip compiler/installer.ini" % @@ -318,20 +317,6 @@ proc clean(args: string) = # -------------- builds a release --------------------------------------------- -#[ -proc run7z(platform: string, patterns: varargs[string]) = - const tmpDir = "nim-" & VersionAsString - createDir tmpDir - try: - for pattern in patterns: - for f in walkFiles(pattern): - if "nimcache" notin f: - copyFile(f, tmpDir / f) - exec("7z a -tzip $1-$2.zip $1" % [tmpDir, platform]) - finally: - removeDir tmpDir -]# - proc winRelease() = exec(r"call ci\nsis_build.bat " & VersionAsString) diff --git a/tools/niminst/niminst.nim b/tools/niminst/niminst.nim index 01efa88d4..b63849a10 100644 --- a/tools/niminst/niminst.nim +++ b/tools/niminst/niminst.nim @@ -617,9 +617,8 @@ when haveZipLib: else: quit("Cannot open for writing: " & n) -proc xzDist(c: var ConfigData) = +proc xzDist(c: var ConfigData; windowsZip=false) = let proj = toLower(c.name) & "-" & c.version - var n = "$#.tar.xz" % proj let tmpDir = if c.outdir.len == 0: "build" else: c.outdir template processFile(z, dest, src) = @@ -636,15 +635,17 @@ proc xzDist(c: var ConfigData) = processFile(z, proj / makeFile, "build" / makeFile) processFile(z, proj / installShFile, installShFile) processFile(z, proj / deinstallShFile, deinstallShFile) - for f in walkFiles(c.libpath / "lib/*.h"): - processFile(z, proj / "c_code" / extractFilename(f), f) - for osA in 1..c.oses.len: - for cpuA in 1..c.cpus.len: - var dir = buildDir(osA, cpuA) - for k, f in walkDir("build" / dir): - if k == pcFile: processFile(z, proj / dir / extractFilename(f), f) - - for cat in items({fcConfig..fcOther, fcUnix, fcNimble}): + if not windowsZip: + for f in walkFiles(c.libpath / "lib/*.h"): + processFile(z, proj / "c_code" / extractFilename(f), f) + for osA in 1..c.oses.len: + for cpuA in 1..c.cpus.len: + var dir = buildDir(osA, cpuA) + for k, f in walkDir("build" / dir): + if k == pcFile: processFile(z, proj / dir / extractFilename(f), f) + + let osSpecific = if windowsZip: fcWindows else: fcUnix + for cat in items({fcConfig..fcOther, osSpecific, fcNimble}): echo("Current category: ", cat) for f in items(c.cat[cat]): processFile(z, proj / f, f) @@ -656,10 +657,15 @@ proc xzDist(c: var ConfigData) = let oldDir = getCurrentDir() setCurrentDir(tmpDir) try: - if execShellCmd("XZ_OPT=-9 gtar Jcf $1.tar.xz $1 --exclude=.DS_Store" % proj) != 0: - # try old 'tar' without --exclude feature: - if execShellCmd("XZ_OPT=-9 tar Jcf $1.tar.xz $1" % proj) != 0: + if windowsZip: + if execShellCmd("7z a -tzip $1.zip $1" % proj) != 0: echo("External program failed") + else: + if execShellCmd("XZ_OPT=-9 gtar Jcf $1.tar.xz $1 --exclude=.DS_Store" % + proj) != 0: + # try old 'tar' without --exclude feature: + if execShellCmd("XZ_OPT=-9 tar Jcf $1.tar.xz $1" % proj) != 0: + echo("External program failed") finally: setCurrentDir(oldDir) @@ -725,10 +731,7 @@ if actionCSource in c.actions: if actionScripts in c.actions: writeInstallScripts(c) if actionZip in c.actions: - when haveZipLib: - zipDist(c) - else: - quit("libzip is not installed") + xzDist(c, true) if actionXz in c.actions: xzDist(c) if actionDeb in c.actions: |