flamenco/Makefile
Sybren A. Stüvel 42daa87839 Makefile: convert generated files to native line-ends on Windows
Git wants to see native line-ends in source files, but the code generators
we use always write UNIX line-ends. `make generate` on Windows now passes
generated files through `unix2dos`. This allows regenerating files without
Git listing them as modified.
2022-03-03 11:49:26 +01:00

78 lines
2.2 KiB
Makefile

PKG := git.blender.org/flamenco
VERSION := $(shell git describe --tags --dirty --always)
PKG_LIST := $(shell go list ${PKG}/... | grep -v /vendor/)
LDFLAGS := -X ${PKG}/internal/appinfo.ApplicationVersion=${VERSION}
BUILD_FLAGS = -ldflags="${LDFLAGS}"
# Prevent any dependency that requires a C compiler, i.e. only work with pure-Go libraries.
export CGO_ENABLED=0
all: application
# Install generators and build the software.
with-deps:
go get github.com/deepmap/oapi-codegen/cmd/oapi-codegen@v1.9.0
go get github.com/golang/mock/mockgen@v1.6.0
$(MAKE) application
application: ${RESOURCES} generate flamenco-manager flamenco-worker socketio-poc
flamenco-manager:
go build -v ${BUILD_FLAGS} ${PKG}/cmd/flamenco-manager
flamenco-worker:
go build -v ${BUILD_FLAGS} ${PKG}/cmd/flamenco-worker
socketio-poc:
go build -v ${BUILD_FLAGS} ${PKG}/cmd/socketio-poc
generate:
go generate ./pkg/api/...
go generate ./internal/...
# The generators always produce UNIX line-ends. This creates false file
# modifications with Git. Convert them to DOS line-ends to avoid this.
ifeq ($(OS),Windows_NT)
git status --porcelain | grep '^ M .*.gen.go' | cut -d' ' -f3 | xargs unix2dos --keepdate
endif
# resource.syso: resource/thermogui.ico resource/versioninfo.json
# goversioninfo -icon=resource/thermogui.ico -64 resource/versioninfo.json
version:
@echo "OS : ${OS}"
@echo "Package: ${PKG}"
@echo "Version: ${VERSION}"
@echo
@env | grep GO
list-embedded:
@go list -f '{{printf "%10s" .Name}}: {{.EmbedFiles}}' ${PKG}/...
swagger-ui:
git clone --depth 1 https://github.com/swagger-api/swagger-ui.git tmp-swagger-ui
rm -rf pkg/api/static/swagger-ui
mv tmp-swagger-ui/dist pkg/api/static/swagger-ui
rm -rf tmp-swagger-ui
@echo
@echo 'Now update pkg/api/static/swagger-ui/index.html to have url: "/api/openapi3.json",'
test:
go test -p 1 -short ${PKG_LIST}
vet:
@go vet ${PKG_LIST}
lint:
@for file in ${GO_FILES} ; do \
golint $$file ; \
done
clean:
@go clean -i -x
rm -f flamenco*-v* flamenco-manager flamenco-worker socketio-poc *.exe
rm -f pkg/api/*.gen.go internal/*/mocks/*.gen.go internal/*/*/mocks/*.gen.go
@$(MAKE) generate
.PHONY: run application version vet lint deploy flamenco-manager flamenco-worker socketio-poc generate with-deps