blob: 52a990dc7087b2ed60e3ab15e277e58ac3b2f4d1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
#!/bin/bash
# xmake getter
# usage: bash <(curl -s <my location>) [branch]
# print a LOGO!
echo ' _ '
echo ' __ ___ __ __ __ _| | ______ '
echo ' \ \/ / | \/ |/ _ | |/ / __ \ '
echo ' > < | \__/ | /_| | < ___/ '
echo ' /_/\_\_|_| |_|\__ \|_|\_\____| getter '
echo ' '
brew --version >/dev/null 2>&1 && brew install --HEAD xmake && xmake --version && exit
if [ 0 -ne $(id -u) ]
then
sudoprefix=sudo
else
sudoprefix=
fi
my_exit(){
rv=$?
if [ "x$1" != x ]
then
echo -ne '\x1b[41;37m'
echo "$1"
echo -ne '\x1b[0m'
fi
rm -rf /tmp/$$xmake_getter 2>/dev/null
if [ "x$2" != x ]
then
if [ $rv -eq 0 ];then rv=$2;fi
fi
exit $rv
}
test_tools()
{
{
git --version &&
make --version &&
{
cc --version ||
gcc --version ||
clang --version
}
} >/dev/null 2>&1
}
install_tools()
{
{ apt-get --version >/dev/null 2>&1 && $sudoprefix apt-get install -y git build-essential; } ||
{ yum --version >/dev/null 2>&1 && $sudoprefix yum install -y git && $sudoprefix yum groupinstall -y 'Development Tools'; } ||
{ zypper --version >/dev/null 2>&1 && $sudoprefix zypper --non-interactive install git && $sudoprefix zypper --non-interactive install -t pattern devel_C_C++; } ||
{ pacman -V >/dev/null 2>&1 && $sudoprefix pacman -S --noconfirm git base-devel; }
}
test_tools || { install_tools && test_tools; } || my_exit 'Dependencies Installation Fail' 1
branch=
if [ x != "x$1" ]
then
branch="-b $1"
echo "Branch: $1"
fi
if [ 'x-b __local__' != "x$branch" ]
then
git clone --depth=1 $branch https://github.com/tboox/xmake.git /tmp/$$xmake_getter || my_exit 'Clone Fail'
else
cp -r "$(git rev-parse --show-toplevel 2>/dev/null || hg root 2>/dev/null || echo $PWD)" /tmp/$$xmake_getter || my_exit 'Clone Fail'
fi
make -C /tmp/$$xmake_getter --no-print-directory build || my_exit 'Build Fail'
IFS=':'
patharr=($PATH)
prefix=
for st in ${patharr[@]}
do
if [[ "$st" = "$HOME"* ]]
then
cwd=$(pwd)
mkdir -p "$st"
cd "$st"
echo $$ > $$xmake_getter_test 2>/dev/null || continue
rm $$xmake_getter_test 2>/dev/null || continue
cd ..
mkdir -p share 2>/dev/null || continue
prefix=$(pwd)
cd "$cwd"
break
fi
done
if [ "x$prefix" != x ]
then
make -C /tmp/$$xmake_getter --no-print-directory install prefix="$prefix"|| my_exit 'Install Fail'
else
$sudoprefix make -C /tmp/$$xmake_getter --no-print-directory install || my_exit 'Install Fail'
fi
xmake --version
|