diff options
| author | zhangjie <iamkadisi@163.com> | 2020-02-05 20:03:35 +0800 |
|---|---|---|
| committer | zhangjie <iamkadisi@163.com> | 2020-02-18 16:12:25 +0800 |
| commit | d9b71056942690ef08185161149693d5d499fd73 (patch) | |
| tree | 68bc403b39faebb49850ddc97da0fe530dce5704 /hack/lib/golang.sh | |
| parent | support make crossbuild (diff) | |
| download | kubeedge-d9b71056942690ef08185161149693d5d499fd73.tar.gz | |
support make smallbuild
Signed-off-by: zhangjie <iamkadisi@163.com>
Diffstat (limited to 'hack/lib/golang.sh')
| -rw-r--r-- | hack/lib/golang.sh | 81 |
1 files changed, 68 insertions, 13 deletions
diff --git a/hack/lib/golang.sh b/hack/lib/golang.sh index a1aa13030..0e75c673b 100644 --- a/hack/lib/golang.sh +++ b/hack/lib/golang.sh @@ -216,6 +216,28 @@ kubeedge::golang::build_binaries() { } +kubeedge::golang::place_bins() { + echo "Placing binaries $@" + + local -a binaries=() + local binArg + for binArg in "$@"; do + binaries+=("${binArg}") + done + + if [[ ${#binaries[@]} -eq 0 ]]; then + binaries=("${KUBEEDGE_ALL_BINARIES[@]}") + fi + + mkdir -p ${KUBEEDGE_OUTPUT_BINPATH} + + local name + for name in ${binaries[@]}; do + mv -f "${GOPATH}/bin/${name}" ${KUBEEDGE_OUTPUT_BINPATH} + done +} + + KUBEEDGE_ALL_CROSS_BINARIES=( edgecore edgesite @@ -298,31 +320,64 @@ kubeedge::golang::cross_build_place_binaries() { for name in ${binariesArray[@]}; do mv -f "${GOPATH}/bin/${name}" ${KUBEEDGE_OUTPUT_BINPATH} - echo "name:"$name done } -kubeedge::golang::place_bins() { - echo "Placing binaries $@" +KUBEEDGE_ALL_SMALL_BINARIES=( +edgecore +edgesite +) - local -a binaries=() - local binArg - for binArg in "$@"; do - binaries+=("${binArg}") +kubeedge::golang::is_small_build_binary() { + local key=$1 + for bin in "${KUBEEDGE_ALL_SMALL_BINARIES[@]}" ; do + if [ "${bin}" == "${key}" ]; then + echo ${YES} + return + fi done - - if [[ ${#binaries[@]} -eq 0 ]]; then - binaries=("${KUBEEDGE_ALL_BINARIES[@]}") + echo ${NO} +} + +kubeedge::golang::small_build_place_binaries() { + kubeedge::check::env + local -a targets=() + local -a binariesArray=() + + for arg in "$@"; do + if [ "$(kubeedge::golang::is_small_build_binary ${arg})" == "${NO}" ]; then + echo "${arg} does not support small build" + exit 1 + fi + targets+=("$(kubeedge::golang::get_target_by_binary $arg)") + binariesArray+=("$arg") + done + + if [[ ${#targets[@]} -eq 0 ]]; then + for bin in ${KUBEEDGE_ALL_SMALL_BINARIES[@]}; do + targets+=("$(kubeedge::golang::get_target_by_binary $bin)") + binariesArray+=("$bin") + done fi + + local -a binaries + while IFS="" read -r binary; do binaries+=("$binary"); done < <(kubeedge::golang::binaries_from_targets "${targets[@]}") - mkdir -p ${KUBEEDGE_OUTPUT_BINPATH} + local ldflags + read -r ldflags <<< "$(kubeedge::version::ldflags)" - local name - for name in ${binaries[@]}; do + for bin in ${binaries[@]}; do + echo "small buildding $bin" + go install -ldflags "-w -s -extldflags -static $ldflags" $bin + done + + for name in ${binariesArray[@]}; do + upx-ucl -9 ${GOPATH}/bin/edgecore mv -f "${GOPATH}/bin/${name}" ${KUBEEDGE_OUTPUT_BINPATH} done } + kubeedge::golang::get_cloud_test_dirs() { ( local findDirs |
