@@ -27,38 +27,45 @@ tools_version=$(jq '.version' < package.json | tr -d '"')
27
27
out_dir=$base /../../artifacts/grpc-tools/v$tools_version
28
28
mkdir -p " $out_dir "
29
29
30
- case $( uname -s) in
31
- Linux)
32
- platform=linux
33
- arch_list=( ia32 x64 )
34
- ;;
35
- Darwin)
36
- platform=darwin
37
- arch_list=( x64 )
38
- ;;
39
- esac
30
+ build () {
31
+ cmake_flag=$*
40
32
41
- for arch in " ${arch_list[@]} " ; do
42
- case $arch in
43
- ia32)
44
- toolchain_flag=-DCMAKE_TOOLCHAIN_FILE=linux_32bit.toolchain.cmake
45
- ;;
46
- * )
47
- toolchain_flag=-DCMAKE_TOOLCHAIN_FILE=linux_64bit.toolchain.cmake
48
- ;;
49
- esac
50
- rm -f $base /build/bin/protoc
51
- rm -f $base /build/bin/grpc_node_plugin
33
+ rm -rf $base /build/bin
52
34
rm -f $base /CMakeCache.txt
53
35
rm -rf $base /CMakeFiles
54
36
rm -f $protobuf_base /CMakeCache.txt
55
37
rm -rf $protobuf_base /CMakeFiles
56
- cmake $toolchain_flag . && cmake --build . --target clean && cmake --build . -- -j 12
57
- mkdir -p " $base /build/bin"
38
+ cmake $cmake_flag . && cmake --build . --target clean && cmake --build . -- -j 12
39
+ mkdir -p $base /build/bin
58
40
cp -L $protobuf_base /protoc $base /build/bin/protoc
59
41
cp $base /grpc_node_plugin $base /build/bin/
60
42
file $base /build/bin/*
61
- cd $base /build
62
- tar -czf " $out_dir /$platform -$arch .tar.gz" bin/
63
- cd $base
64
- done
43
+ }
44
+
45
+ artifacts () {
46
+ platform=$1
47
+ arch=$2
48
+ dir=$3
49
+
50
+ tar -czf $out_dir /$platform -$arch .tar.gz -C $( dirname $dir ) $( basename $dir )
51
+ }
52
+
53
+ case $( uname -s) in
54
+ Linux)
55
+ build -DCMAKE_TOOLCHAIN_FILE=linux_32bit.toolchain.cmake
56
+ artifacts linux ia32 $base /build/bin
57
+ build -DCMAKE_TOOLCHAIN_FILE=linux_64bit.toolchain.cmake
58
+ artifacts linux x64 $base /build/bin
59
+ ;;
60
+ Darwin)
61
+ build -DCMAKE_TOOLCHAIN_FILE=linux_64bit.toolchain.cmake -DCMAKE_OSX_ARCHITECTURES=" arm64;x86_64"
62
+
63
+ for arch in " x86_64" " arm64" ; do
64
+ mkdir $base /build/bin/$arch
65
+ for bin in protoc grpc_node_plugin; do
66
+ lipo -extract x86_64 $base /build/bin/$bin -o $base /build/bin/$arch /$bin
67
+ done
68
+ artifacts darwin $arch $base /build/bin/$arch /
69
+ done
70
+ ;;
71
+ esac
0 commit comments