Add build time variables
parent
460316aaf6
commit
06bd0cfd12
|
@ -11,6 +11,7 @@ import (
|
||||||
"git.wisellama.rocks/Project-Ely/project-ely/internal/entity"
|
"git.wisellama.rocks/Project-Ely/project-ely/internal/entity"
|
||||||
"git.wisellama.rocks/Project-Ely/project-ely/internal/player"
|
"git.wisellama.rocks/Project-Ely/project-ely/internal/player"
|
||||||
"git.wisellama.rocks/Project-Ely/project-ely/internal/sprite"
|
"git.wisellama.rocks/Project-Ely/project-ely/internal/sprite"
|
||||||
|
"git.wisellama.rocks/Project-Ely/project-ely/internal/version"
|
||||||
"git.wisellama.rocks/Wisellama/gosimpleconf"
|
"git.wisellama.rocks/Wisellama/gosimpleconf"
|
||||||
rl "github.com/gen2brain/raylib-go/raylib"
|
rl "github.com/gen2brain/raylib-go/raylib"
|
||||||
)
|
)
|
||||||
|
@ -35,9 +36,15 @@ func Run(ctx context.Context, configMap gosimpleconf.ConfigMap) error {
|
||||||
framerate64 := gosimpleconf.Int64(configMap["game.framerate"])
|
framerate64 := gosimpleconf.Int64(configMap["game.framerate"])
|
||||||
framerate := int32(framerate64)
|
framerate := int32(framerate64)
|
||||||
|
|
||||||
|
windowTitle := fmt.Sprintf("%s - %s (%s)",
|
||||||
|
configMap["game.title"],
|
||||||
|
version.Version,
|
||||||
|
version.CommitHash,
|
||||||
|
)
|
||||||
|
|
||||||
// Initialize the RayLib window
|
// Initialize the RayLib window
|
||||||
channels.RL.Do(func() {
|
channels.RL.Do(func() {
|
||||||
rl.InitWindow(800, 600, configMap["game.title"])
|
rl.InitWindow(800, 600, windowTitle)
|
||||||
rl.SetTargetFPS(framerate)
|
rl.SetTargetFPS(framerate)
|
||||||
})
|
})
|
||||||
defer func() {
|
defer func() {
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
package version
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
// Thanks to the following blog post for how to use the linker flags
|
||||||
|
// to pass in build-time variables.
|
||||||
|
//
|
||||||
|
// https://belief-driven-design.com/build-time-variables-in-go-51439b26ef9/
|
||||||
|
|
||||||
|
var (
|
||||||
|
Version = "dev"
|
||||||
|
CommitHash = "n/a"
|
||||||
|
BuildTimestamp = "n/a"
|
||||||
|
)
|
||||||
|
|
||||||
|
func BuildVersion() string {
|
||||||
|
return fmt.Sprintf("%s %s %s", Version, CommitHash, BuildTimestamp)
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
d=$(cd $(dirname $0) && pwd -P)
|
||||||
|
|
||||||
|
. "${d}/common-release-build.sh"
|
||||||
|
|
||||||
|
build $(uname) $(uname -m)
|
|
@ -1,5 +1,7 @@
|
||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
. common-build-windows.sh
|
d=$(cd $(dirname $0) && pwd -P)
|
||||||
|
|
||||||
|
. "${d}/common-release-build.sh"
|
||||||
|
|
||||||
build windows 386
|
build windows 386
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
#!/usr/bin/env sh
|
|
||||||
|
|
||||||
. common-release-build.sh
|
|
||||||
|
|
||||||
build windows amd64
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
d=$(cd $(dirname $0) && pwd -P)
|
||||||
|
|
||||||
|
. "${d}/common-release-build.sh"
|
||||||
|
|
||||||
|
build windows amd64
|
|
@ -5,25 +5,38 @@ build(){
|
||||||
OS=$1
|
OS=$1
|
||||||
ARCH=$2
|
ARCH=$2
|
||||||
|
|
||||||
if [ -z $NAME ]
|
# Lowercase
|
||||||
then
|
OS=$(echo "$OS" | awk '{ print tolower($0) }')
|
||||||
NAME=output
|
ARCH=$(echo "$ARCH" | awk '{ print tolower($0) }')
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "${CC}" ]
|
if [ -z "${CC}" ]
|
||||||
then
|
then
|
||||||
export CC=gcc
|
export CC=gcc
|
||||||
fi
|
fi
|
||||||
|
|
||||||
LDFLAGS_WIN=""
|
# Add .exe to Windows output
|
||||||
EXE=""
|
EXE=""
|
||||||
if [ "${OS}" == "windows" ]
|
if [ "${OS}" = "windows" ]
|
||||||
then
|
then
|
||||||
LDFLAGS_WIN="-H windowsgui"
|
|
||||||
EXE=".exe"
|
EXE=".exe"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
OUTPUT="${NAME}-${OS}-${ARCH}${EXE}"
|
if [ "${ARCH}" = "x86_64" ]
|
||||||
|
then
|
||||||
|
ARCH="amd64"
|
||||||
|
fi
|
||||||
|
|
||||||
|
PACKAGE="$(grep module go.mod | awk '{print $2}')"
|
||||||
|
TAG="$(git describe --tags --abbrev=0)"
|
||||||
|
VERSION="$(echo ${TAG} | awk -F '-' '{print $NF}')"
|
||||||
|
COMMIT_HASH="$(git rev-parse --short HEAD)"
|
||||||
|
BUILD_TIMESTAMP="$(date -u '+%Y-%m-%dT%H:%M:%SZ')"
|
||||||
|
|
||||||
|
OUTPUT="${TAG}-${OS}-${ARCH}${EXE}"
|
||||||
|
|
||||||
|
LDFLAGS="${LDFLAGS} -X '${PACKAGE}/internal/version.Version=${VERSION}'"
|
||||||
|
LDFLAGS="${LDFLAGS} -X '${PACKAGE}/internal/version.CommitHash=${COMMIT_HASH}'"
|
||||||
|
LDFLAGS="${LDFLAGS} -X '${PACKAGE}/internal/version.BuildTimestamp=${BUILD_TIMESTAMP}'"
|
||||||
|
|
||||||
export CGO_ENABLED=1
|
export CGO_ENABLED=1
|
||||||
export CC="${CC}"
|
export CC="${CC}"
|
||||||
|
@ -31,7 +44,6 @@ build(){
|
||||||
export GOARCH=$ARCH
|
export GOARCH=$ARCH
|
||||||
go build -x -v \
|
go build -x -v \
|
||||||
-trimpath \
|
-trimpath \
|
||||||
-tags static \
|
-ldflags="-s -w ${LDFLAGS}" \
|
||||||
-ldflags="-s -w ${LDFLAGS_WIN}" \
|
|
||||||
-o "${OUTPUT}"
|
-o "${OUTPUT}"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue