You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
#!/usr/bin/env bash
 | 
						|
. "$GVM_ROOT/scripts/functions"
 | 
						|
 | 
						|
display_usage() {
 | 
						|
	display_message "Usage: gvm cross [os] [arch]"
 | 
						|
	display_message "  os   = linux/darwin/windows"
 | 
						|
	display_message "  arch = amd64/386/arm"
 | 
						|
}
 | 
						|
 | 
						|
display_list() {
 | 
						|
	echo
 | 
						|
	display_usage
 | 
						|
	echo
 | 
						|
	display_message "Installed platforms:"
 | 
						|
	echo
 | 
						|
	$LS_PATH "$GOROOT/pkg" | $GREP_PATH windows_ | sed 's/^/   /g'
 | 
						|
	$LS_PATH "$GOROOT/pkg" | $GREP_PATH darwin_ | sed 's/^/   /g'
 | 
						|
	$LS_PATH "$GOROOT/pkg" | $GREP_PATH linux_ | sed 's/^/   /g'
 | 
						|
	echo
 | 
						|
	exit 1
 | 
						|
}
 | 
						|
 | 
						|
which go &> /dev/null || display_fatal "Only available in versions after Go 1"
 | 
						|
 | 
						|
[ -z "$1" ] && display_list
 | 
						|
 | 
						|
if [ ! -f "$GOROOT/pkg/tool/cross" ]; then
 | 
						|
	display_message "Installing x86, x86-64, and ARM commands"
 | 
						|
	set -e
 | 
						|
	for arch in 8 6 5; do
 | 
						|
		    for cmd in a c g l; do
 | 
						|
		            go tool dist install -v cmd/$arch$cmd ||
 | 
						|
						display_fatal "Couldn't compile tool: $arch$cmd"
 | 
						|
		    done
 | 
						|
	done
 | 
						|
	touch "$GOROOT/pkg/tool/cross"
 | 
						|
fi
 | 
						|
 | 
						|
export GOOS=$1
 | 
						|
shift
 | 
						|
[ -z "$1" ] && display_usage && display_fatal "arch is not specified"
 | 
						|
export GOARCH=$1
 | 
						|
 | 
						|
if [ ! -d "$GOROOT/pkg/${GOOS}_${GOARCH}" ]; then
 | 
						|
	display_message "Installing $GOOS $GOARCH runtime library"
 | 
						|
	if [ "$GOOS" = "windows" ]; then
 | 
						|
		    export CGO_ENABLED=0
 | 
						|
	fi
 | 
						|
 | 
						|
	cd "$GOROOT/src"
 | 
						|
	go tool dist install -v pkg/runtime ||
 | 
						|
		display_fatal "Couldn't compile runtime library for $GOOS $GOARCH"
 | 
						|
	go install -v -a std ||
 | 
						|
		display_fatal "Install runtime library for $GOOS $GOARCH"
 | 
						|
else
 | 
						|
	display_message "Runtime library already installed for $GOOS $GOARCH"
 | 
						|
fi
 | 
						|
 |