8000 add linux und unix script · tschuchortdev/cmake-wrapper@440a191 · GitHub
[go: up one dir, main page]

Skip to content

Commit 440a191

Browse files
committed
add linux und unix script
1 parent fa17416 commit 440a191

File tree

1 file changed

+102
-0
lines changed

1 file changed

+102
-0
lines changed

cmakew.sh

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
#!/bin/bash
2+
3+
cmake_version="3.10.3"
4+
5+
arr_cmake_v=(${cmake_version//./ })
6+
cmake_version_major=(${arr_cmake_v[0]})
7+
cmake_version_minor=(${arr_cmake_v[1]})
8+
cmake_version_patch=(${arr_cmake_v[2]})
9+
10+
# OS specific support (must be 'true' or 'false').
11+
cygwin=false
12+
msys=false
13+
darwin=false
14+
nonstop=false
15+
16+
case "`uname`" in
17+
CYGWIN* )
18+
cygwin=true
19+
;;
20+
Darwin* )
21+
darwin=true
22+
;;
23+
MINGW* )
24+
msys=true
25+
;;
26+
NONSTOP* )
27+
nonstop=true
28+
;;
29+
esac
30+
31+
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
32+
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
33+
cd "$(dirname "$0")"
34+
fi
35+
36+
cmake_bin="./cmakew/cmake-$cmake_version/bin/cmake"
37+
38+
# download cmake if neccessary
39+
if [ ! -f "$cmake_bin" ]; then
40+
download_link=""
41+
42+
if [ "$darwin" = true ]; then
43+
download_link="https://cmake.org/files/v$cmake_version_major.$cmake_version_minor/cmake-$cmake_version-Darwin-x86_64.tar.gz"
44+
else
45+
download_link="https://cmake.org/files/v$cmake_version_major.$cmake_version_minor/cmake-$cmake_version-Linux-x86_64.tar.gz"
46+
fi
47+
48+
curl "$download_link" -o "/tmp/cmake-$cmake_version.tar.gz"
49+
mkdir -p "cmakew/cmake-$cmake_version"
50+
tar -xzf "/tmp/cmake-$cmake_version.tar.gz" -C "./cmakew/cmake-$cmake_version" --strip-components=1
51+
rm "/tmp/cmake-$cmake_version.tar.gz"
52+
fi
53+
54+
# We build the pattern for arguments to be converted via cygpath
55+
if [ "$cygwin" = true ]; then
56+
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
57+
SEP=""
58+
59+
for dir in $ROOTDIRSRAW ; do
60+
ROOTDIRS="$ROOTDIRS$SEP$dir"
61+
SEP="|"
62+
done
63+
64+
OURCYGPATTERN="(^($ROOTDIRS))"
65+
66+
# Add a user-defined pattern to the cygpath arguments
67+
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
68+
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
69+
fi
70+
71+
# Now convert the arguments - kludge to limit ourselves to /bin/sh
72+
i=0
73+
for arg in "$@" ; do
74+
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
75+
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
76+
77+
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
78+
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
79+
else
80+
eval `echo args$i`="\"$arg\""
81+
fi
82+
83+
i=$((i+1))
84+
done
85+
86+
case $i in
87+
(0) set -- ;;
88+
(1) set -- "$args0" ;;
89+
(2) set -- "$args0" "$args1" ;;
90+
(3) set -- "$args0" "$args1" "$args2" ;;
91+
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
92+
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
93+
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
94+
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
95+
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
96+
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
97+
esac
98+
fi
99+
100+
# run cmake
101+
exec "$cmake_bin" "$@"
102+

0 commit comments

Comments
 (0)
0