2018-11-08 09:56:11 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
2018-11-12 05:58:39 +00:00
|
|
|
if [[ -z $1 ]] || [[ -z $2 ]]; then
|
2022-02-25 15:33:46 +00:00
|
|
|
echo "Usage: ${0##*/} [debug|race|static|prod] [filename]" 1>&2
|
2021-12-15 13:56:47 +00:00
|
|
|
exit 1
|
2018-11-09 10:41:07 +00:00
|
|
|
fi
|
|
|
|
|
2022-02-19 14:32:52 +00:00
|
|
|
set -e
|
2018-11-12 05:58:39 +00:00
|
|
|
|
2022-04-06 23:18:39 +00:00
|
|
|
BUILD_OS=$(uname -s)
|
|
|
|
BUILD_ARCH=$("$(dirname "$0")/dist/arch.sh")
|
|
|
|
BUILD_DATE=$(date -u +%y%m%d)
|
2022-02-19 14:32:52 +00:00
|
|
|
BUILD_VERSION=$(git describe --always)
|
|
|
|
BUILD_TAG=${BUILD_DATE}-${BUILD_VERSION}
|
2022-04-06 23:18:39 +00:00
|
|
|
BUILD_ID=${BUILD_TAG}-${BUILD_OS}-$(echo "${BUILD_ARCH}" | tr '[:lower:]' '[:upper:]')
|
2022-05-20 13:42:33 +00:00
|
|
|
BUILD_BIN=${2:-photoprism}
|
2022-04-06 23:18:39 +00:00
|
|
|
GO_BIN=${GO_BIN:-go}
|
2022-03-01 15:54:49 +00:00
|
|
|
GO_VER=$($GO_BIN version)
|
2022-02-17 18:18:37 +00:00
|
|
|
|
2022-02-19 14:32:52 +00:00
|
|
|
echo "Building PhotoPrism ${BUILD_ID} ($1)..."
|
2022-02-17 18:18:37 +00:00
|
|
|
|
2018-11-12 05:58:39 +00:00
|
|
|
if [[ $1 == "debug" ]]; then
|
2022-05-20 13:42:33 +00:00
|
|
|
BUILD_CMD=("$GO_BIN" build -ldflags "-X main.version=${BUILD_ID}-DEBUG" -o "${BUILD_BIN}" cmd/photoprism/photoprism.go)
|
2020-05-28 19:20:42 +00:00
|
|
|
elif [[ $1 == "race" ]]; then
|
2022-05-20 13:42:33 +00:00
|
|
|
BUILD_CMD=("$GO_BIN" build -race -ldflags "-X main.version=${BUILD_ID}-DEBUG" -o "${BUILD_BIN}" cmd/photoprism/photoprism.go)
|
2019-06-22 21:14:30 +00:00
|
|
|
elif [[ $1 == "static" ]]; then
|
2022-05-20 13:42:33 +00:00
|
|
|
BUILD_CMD=("$GO_BIN" build -a -v -ldflags "-linkmode external -extldflags \"-static -L /usr/lib -ltensorflow\" -s -w -X main.version=${BUILD_ID}" -o "${BUILD_BIN}" cmd/photoprism/photoprism.go)
|
2018-11-08 09:56:11 +00:00
|
|
|
else
|
2022-05-20 13:42:33 +00:00
|
|
|
BUILD_CMD=("$GO_BIN" build -ldflags "-extldflags \"-Wl,-rpath -Wl,\$ORIGIN/../lib\" -s -w -X main.version=${BUILD_ID}" -o "${BUILD_BIN}" cmd/photoprism/photoprism.go)
|
2019-06-22 21:14:30 +00:00
|
|
|
fi
|
2022-02-17 18:18:37 +00:00
|
|
|
|
2022-12-28 16:26:42 +00:00
|
|
|
# Build app binary.
|
2022-05-20 13:42:33 +00:00
|
|
|
echo "=> compiling \"$BUILD_BIN\" with \"${GO_VER}\""
|
2022-03-02 11:21:46 +00:00
|
|
|
echo "=> ${BUILD_CMD[*]}"
|
2022-03-01 12:55:05 +00:00
|
|
|
"${BUILD_CMD[@]}"
|
|
|
|
|
2022-12-28 16:26:42 +00:00
|
|
|
# Display binary size.
|
2022-05-20 13:42:33 +00:00
|
|
|
du -h "${BUILD_BIN}"
|
2022-03-01 12:55:05 +00:00
|
|
|
|
2022-04-06 23:18:39 +00:00
|
|
|
echo "Done."
|