blob: a53c00558f75a19139c3b8283034edabe87e2e82 (
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
|
#!/bin/bash
# xmake getter
# usage: bash <(curl -s <my location>) [branch]
# print a LOGO!
echo ' _'
echo ' | | _'
echo '__ ___ ______| |/ /___'
echo '\ \/ | \ / / _ | / / __ \'
echo ' \ /| \/ / / | | | __/'
echo ' / \| \__/\ \_| \ \ \ \__.'
echo '/_/\_|_| |_\___\_\|\_\__/ getter'
echo -e '\n'
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 "$1";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";fi
git clone --depth=1 $branch https://github.com/tboox/xmake.git /tmp/$$xmake_getter || my_exit 'Clone Fail'
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
|