mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-22 00:02:13 +03:00
106 lines
2.4 KiB
Tcl
106 lines
2.4 KiB
Tcl
#!/usr/bin/tclsh
|
|
#
|
|
# Run this script in order to generate a ZIP archive containing various
|
|
# command-line tools.
|
|
#
|
|
# The makefile that invokes this script must first build the following
|
|
# binaries:
|
|
#
|
|
# testfixture -- used to run this script
|
|
# sqlite3 -- the SQLite CLI
|
|
# sqldiff -- Program to diff two databases
|
|
# sqlite3_analyzer -- Space analyzer
|
|
# sqlite3_rsync -- Remote db sync
|
|
#
|
|
# On Windows, add:
|
|
#
|
|
# sqlite3.def
|
|
# sqlite3.dll
|
|
#
|
|
# Add the --snapshot option to generate a snapshot ZIP archive instead of
|
|
# a release ZIP archive.
|
|
#
|
|
set bSnapshot 0
|
|
for {set i 0} {$i<[llength $argv]} {incr i} {
|
|
set a [lindex $argv $i]
|
|
if {$a eq "-snapshot" || $a eq "--snapshot"} {
|
|
set bSnapshot 1
|
|
continue
|
|
}
|
|
puts stderr "unknown argument: $a"
|
|
exit 1
|
|
}
|
|
switch $tcl_platform(os) {
|
|
{Windows NT} {
|
|
set OS win
|
|
set EXE .exe
|
|
}
|
|
Linux {
|
|
set OS linux
|
|
set EXE {}
|
|
}
|
|
Darwin {
|
|
set OS osx
|
|
set EXE {}
|
|
}
|
|
default {
|
|
set OS unknown
|
|
set EXE {}
|
|
}
|
|
}
|
|
switch $tcl_platform(machine) {
|
|
arm64 {
|
|
set ARCH arm64
|
|
}
|
|
x86_64 {
|
|
set ARCH x64
|
|
}
|
|
amd64 -
|
|
intel {
|
|
if {$tcl_platform(pointerSize)==4} {
|
|
set ARCH x86
|
|
} else {
|
|
set ARCH x64
|
|
}
|
|
}
|
|
default {
|
|
set ARCH unk
|
|
}
|
|
}
|
|
if {$bSnapshot} {
|
|
set in [open [file join [file dirname [file dirname [info script]]] manifest]]
|
|
set manifest [read $in]
|
|
close $in
|
|
regexp {\nD (.{16})} $manifest all date
|
|
regsub -all {[-:T]} $date {} v2
|
|
} else {
|
|
set in [open [file join [file dirname [file dirname [info script]]] VERSION]]
|
|
set vers [read $in]
|
|
close $in
|
|
scan $vers %d.%d.%d v1 v2 v3
|
|
set v2 [format 3%02d%02d00 $v2 $v3]
|
|
}
|
|
|
|
set name sqlite-tools-$OS-$ARCH-$v2.zip
|
|
set filelist "sqlite3$EXE sqldiff$EXE sqlite3_analyzer$EXE sqlite3_rsync$EXE"
|
|
proc make_zip_archive {name filelist} {
|
|
file delete -force $name
|
|
puts "fossil test-filezip $name $filelist"
|
|
if {[catch {exec fossil test-filezip $name {*}$filelist}]} {
|
|
puts "^--- Unable. Trying again as:"
|
|
puts "zip $name $filelist"
|
|
file delete -force $name
|
|
exec zip $name {*}$filelist
|
|
}
|
|
puts "$name: [file size $name] bytes"
|
|
}
|
|
make_zip_archive $name $filelist
|
|
|
|
# On Windows, also try to construct a DLL
|
|
#
|
|
if {$OS eq "win" && [file exists sqlite3.dll] && [file exists sqlite3.def]} {
|
|
set name sqlite-dll-win-$ARCH-$v2.zip
|
|
set filelist [list sqlite3.def sqlite3.dll]
|
|
make_zip_archive $name $filelist
|
|
}
|