summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xintro127
1 files changed, 84 insertions, 43 deletions
diff --git a/intro b/intro
index 776ee72..6deafe3 100755
--- a/intro
+++ b/intro
@@ -12,8 +12,9 @@
# -c1
# -c2
# -c3
-# C++ compilers 1 (g++-5), 2 (clang++-3.6), and 3 (x86_64-w64-mingw32-g++).
-# If the value for 2 or 2 is empty, then this test is skipped.
+# -c4
+# C++ compilers 1 (g++-5), 2 (clang++-3.6), 3 (x86_64-w64-mingw32-g++), and
+# 4 (cl-14). If the value for 2, 3, 4 is empty, then this test is skipped.
#
# -h
# The hello2 source directory, by default hello/hello2
@@ -21,6 +22,9 @@
# -s
# Show the commands being executed.
#
+# -p
+# Prompt for confirmations.
+#
# For example:
#
# intro https://pkg.cppget.org/1/hello
@@ -39,10 +43,13 @@ rep=
toolchain=
hello2=hello/hello2
show=n
+prompt=-y
+trust="--trust FF:DF:7D:38:67:4E:C3:82:65:7E:EE:1F:D4:80:EC:56:C4:33:5B:65:3F:9B:29:9A:30:56:B9:77:B9:F2:01:94"
c1=g++-5
c2=clang++-3.6
c3=x86_64-w64-mingw32-g++
+c4=cl-14
while [ $# -gt 0 ]; do
case $1 in
@@ -53,17 +60,22 @@ while [ $# -gt 0 ]; do
;;
-c1)
shift
- c1=$1
+ c1="$1"
shift
;;
-c2)
shift
- c2=$1
+ c2="$1"
shift
;;
-c3)
shift
- c3=$1
+ c3="$1"
+ shift
+ ;;
+ -c4)
+ shift
+ c4="$1"
shift
;;
-h)
@@ -75,6 +87,11 @@ while [ $# -gt 0 ]; do
show=y
shift
;;
+ -p)
+ prompt=
+ trust=
+ shift
+ ;;
*)
rep=${1%/}
break
@@ -116,10 +133,10 @@ function show () # <cmd> ...
{
if [ $show = "y" ]; then
echo "$*"
- $*
+ "${@}"
echo
else
- $*
+ "${@}"
fi
}
@@ -130,13 +147,13 @@ function create () # <dir> <bpkg-args>
rm -rf $tmp/$d
mkdir $tmp/$d
cd $tmp/$d
- show bpkg create $*
+ show bpkg create "${@}"
}
function info () # stable|testing
{
local d=$1; shift
- show bpkg rep-info $rep/$d
+ show bpkg rep-info $trust $rep/$d
}
function add () # stable|testing
@@ -147,30 +164,35 @@ function add () # stable|testing
function fetch ()
{
- show bpkg fetch
+ show bpkg fetch $trust
}
function build () # <bpkg-args>
{
- show bpkg build -y $*
+ show bpkg build $prompt "${@}"
}
function drop () # <bpkg-args>
{
- show bpkg drop -y $*
+ show bpkg drop $prompt "${@}"
}
-function status () # <pkg> <expected>
+function status () # <pkg> <expected> [<args>]
{
+ local p="$1"
+ shift
+ local e="$1"
+ shift
+
if [ $show = "y" ]; then
- echo "bpkg status $1"
+ echo "bpkg status $* $p"
fi
- local s=`bpkg status $1`
+ local s="$(bpkg status "${@}" $p)"
echo "$s"
- if [ "$s" != "$2" ]; then
- error "status $1: '"$s"', expected: '"$2"'"
+ if [ "$s" != "$e" ]; then
+ error "status $1: '"$s"', expected: '"$e"'"
fi
if [ $show = "y" ]; then
@@ -180,41 +202,50 @@ function status () # <pkg> <expected>
function clean () # <bpk>
{
- show bpkg clean $*
+ show bpkg clean "${@}"
}
function update () # <bpk>
{
- show bpkg update $*
+ show bpkg update "${@}"
}
function test () # <bpk>
{
- show bpkg test $*
+ show bpkg test "${@}"
}
-create hello-gcc5-release cxx config.cxx=$c1 config.cxx.coptions=-O3
+create hello-gcc5-release cxx config.cxx="$c1" config.cxx.coptions=-O3
+if [ -n "$c2" ]; then
+ create hello-vc14-release cxx config.cxx="$c4" config.cxx.coptions=/O2
+fi
+create hello-gcc5-release cc config.cxx="$c1" config.cc.coptions=-O3
+
info stable
add stable
fetch
build hello
drop hello
-build -v hello
-status libhello "configured 1.0.1"
-status hello "configured 1.0.0 hold_package"
-drop hello
-status hello "available 1.0.0"
+build -v -y hello
+
+status libhello "configured 1.0.0; available sys:?"
+status hello "configured 1.0.0 hold_package; available sys:?"
+drop -y hello
+status hello "available 1.0.0 sys:?"
status libfoobar "unknown"
-build hello
+
+
+
+build -y hello
add testing
fetch
-status libhello "configured 1.0.1; available 1.1.1 1.1.0"
-build hello
+status libhello "configured 1.0.0; available 1.1.0 sys:?"
+build -y hello
build libhello
clean hello
update hello
-build libhello/1.0.1
+build libhello/1.0.0
test libhello hello
show ls -1F
@@ -222,25 +253,35 @@ show ls -1F hello-1.0.0/
show hello-1.0.0/hello || true
show hello-1.0.0/hello World
-show bpkg install config.install.root=/opt/hello \
- config.install.root.sudo=sudo \
- config.bin.rpath=/opt/hello/lib hello
+show bpkg install \
+ config.install.root=/opt/hello \
+ config.install.sudo=sudo \
+ config.bin.rpath=/opt/hello/lib \
+ hello
show $tree -F /opt/hello/
show /opt/hello/bin/hello World
-sudo rm -rf /opt/hello
+
+show bpkg uninstall \
+ config.install.root=/opt/hello \
+ config.install.sudo=sudo \
+ config.bin.rpath=/opt/hello/lib \
+ hello
+show ls /opt/hello || true
show cd $hello2
show b config.cxx=$c1 config.import.libhello=$tmp/hello-gcc5-release
show $tree -F
show ./hello
-show b config.cxx=$c1 config.import.libhello=$tmp/hello-gcc5-release clean # Extra.
+b config.cxx=$c1 config.import.libhello=$tmp/hello-gcc5-release clean # Extra.
show cd $tmp
rm -rf hello2-gcc5-release
show mkdir hello2-gcc5-release
-show b config.cxx=$c1 config.cxx.coptions=-O3 \
- config.import.libhello=$tmp/hello-gcc5-release \
- "configure($hello2/@hello2-gcc5-release/)"
+show b config.cxx=$c1 \
+ config.cc.coptions=-O3 \
+ config.import.libhello=$tmp/hello-gcc5-release \
+ "configure($hello2/@hello2-gcc5-release/)"
+
show b hello2-gcc5-release/
show cd hello2-gcc5-release/
show b
@@ -250,6 +291,7 @@ show b -v
show cd $tmp
show b "configure($hello2/@$tmp/hello-gcc5-release/hello2/)"
show b $tmp/hello-gcc5-release/hello2/
+status hello2 "unknown" -d $tmp/hello-gcc5-release
show b "{clean disfigure}($tmp/hello-gcc5-release/hello2/)"
build -d $tmp/hello-gcc5-release $hello2/
@@ -258,19 +300,18 @@ update -d $tmp/hello-gcc5-release hello2
show $tmp/hello-gcc5-release/hello2-1.0.0/hello
if [ -n "$c2" ]; then
- create hello-clang36-release cxx config.cxx=$c2 config.cxx.coptions=-O3
+ create hello-clang36-release cc config.cxx=$c2 config.cc.coptions=-O3
add testing
fetch
build libhello/1.0.0 $hello2/
fi
if [ -n "$c3" ]; then
- create hello-mingw32 cxx \
- config.cxx=$c3 \
- config.bin.lib=static config.cxx.loptions=-static
+ create hello-mingw64 cc config.cxx=$c3
add stable
fetch
- build hello
+ build -y hello
export WINEDEBUG=fixme-all
show wine hello-1.0.0/hello.exe Windows
+ test libhello hello
fi