mirror of
https://github.com/stashapp/stash.git
synced 2026-05-09 05:05:29 +02:00
simplify makefile
This commit is contained in:
parent
01a7583364
commit
9880e57d75
1 changed files with 30 additions and 18 deletions
48
Makefile
48
Makefile
|
|
@ -10,14 +10,17 @@ ifdef IS_WIN_SHELL
|
|||
RM := del /s /q
|
||||
RMDIR := rmdir /s /q
|
||||
NOOP := @@
|
||||
PREFIX := $(USERPROFILE)\\bin
|
||||
DEFAULT_PREFIX := $(USERPROFILE)\\bin
|
||||
else
|
||||
RM := rm -f
|
||||
RMDIR := rm -rf
|
||||
NOOP := @:
|
||||
PREFIX := $(HOME)/.local
|
||||
DEFAULT_PREFIX := $(HOME)/.local
|
||||
endif
|
||||
|
||||
# PREFIX from homebrew
|
||||
PREFIX ?= $(DEFAULT_PREFIX)
|
||||
|
||||
# set LDFLAGS environment variable to any extra ldflags required
|
||||
LDFLAGS := $(LDFLAGS)
|
||||
|
||||
|
|
@ -47,6 +50,11 @@ GO_BUILD_TAGS += sqlite_stat4 sqlite_math_functions
|
|||
|
||||
export CGO_ENABLED := 1
|
||||
|
||||
# sentinel prerequisite files
|
||||
# can be used as a dependency to enforce parallel builds
|
||||
UI_SENTINEL := ui/v2.5/build/index.html
|
||||
BACKEND_GENERATE_SENTINEL := internal/api/generated_exec.go internal/api/generated_models.go
|
||||
|
||||
# define COMPILER_IMAGE for cross-compilation docker container
|
||||
ifndef COMPILER_IMAGE
|
||||
COMPILER_IMAGE := ghcr.io/stashapp/compiler:latest
|
||||
|
|
@ -119,7 +127,7 @@ build-flags: build-info
|
|||
$(eval BUILD_FLAGS := -v -tags "$(GO_BUILD_TAGS)" $(GO_BUILD_FLAGS) -ldflags "$(BUILD_LDFLAGS)")
|
||||
|
||||
.PHONY: stash
|
||||
stash: build-flags
|
||||
stash: $(BACKEND_GENERATE_SENTINEL) build-flags
|
||||
go build $(STASH_OUTPUT) $(BUILD_FLAGS) ./cmd/stash
|
||||
|
||||
.PHONY: phasher
|
||||
|
|
@ -132,7 +140,7 @@ build: stash
|
|||
|
||||
# builds dynamically-linked PIE release binaries
|
||||
.PHONY: build-release
|
||||
build-release: flags-release flags-pie build
|
||||
build-release: generate-backend flags-release flags-pie build
|
||||
|
||||
# compile and bundle into Stash.app
|
||||
# for when on macOS itself
|
||||
|
|
@ -282,10 +290,12 @@ generate: generate-backend generate-ui
|
|||
|
||||
.PHONY: generate-ui
|
||||
generate-ui: pre-ui
|
||||
cd ui/v2.5 && npm run gqlgen
|
||||
cd ui/v2.5 && pnpm run gqlgen
|
||||
|
||||
.PHONY: generate-backend
|
||||
generate-backend: touch-ui
|
||||
generate-backend: $(BACKEND_GENERATE_SENTINEL)
|
||||
|
||||
$(BACKEND_GENERATE_SENTINEL) &: $(UI_SENTINEL)
|
||||
go generate ./cmd/stash
|
||||
|
||||
.PHONY: generate-login-locale
|
||||
|
|
@ -369,11 +379,13 @@ ifdef STASH_SOURCEMAPS
|
|||
endif
|
||||
|
||||
.PHONY: ui
|
||||
ui: pre-ui generate ui-only generate-login-locale
|
||||
ui: $(UI_SENTINEL) generate-login-locale
|
||||
|
||||
.PHONY: ui-only
|
||||
ui-only: ui-env generate ui
|
||||
cd ui/v2.5 && npm run build
|
||||
ui-only: $(UI_SENTINEL)
|
||||
|
||||
$(UI_SENTINEL): pre-ui generate-ui ui-env
|
||||
cd ui/v2.5 && pnpm run build
|
||||
|
||||
.PHONY: zip-ui
|
||||
zip-ui:
|
||||
|
|
@ -382,23 +394,23 @@ zip-ui:
|
|||
|
||||
.PHONY: ui-start
|
||||
ui-start: ui-env
|
||||
cd ui/v2.5 && npm run start -- --host
|
||||
cd ui/v2.5 && pnpm run start -- --host
|
||||
|
||||
.PHONY: fmt-ui
|
||||
fmt-ui:
|
||||
cd ui/v2.5 && npm run format
|
||||
cd ui/v2.5 && pnpm run format
|
||||
|
||||
# runs all of the frontend PR-acceptance steps
|
||||
.PHONY: validate-ui
|
||||
validate-ui: pre-ui generate
|
||||
cd ui/v2.5 && npm run validate
|
||||
cd ui/v2.5 && pnpm run validate
|
||||
|
||||
# these targets run the same steps as fmt-ui and validate-ui, but only on files that have changed
|
||||
fmt-ui-quick:
|
||||
cd ui/v2.5 && \
|
||||
files=$$(git diff --name-only --relative --diff-filter d . ../../graphql); \
|
||||
if [ -n "$$files" ]; then \
|
||||
npm run prettier -- --write $$files; \
|
||||
pnpm run prettier -- --write $$files; \
|
||||
fi
|
||||
|
||||
# does not run tsc checks, as they are slow
|
||||
|
|
@ -407,9 +419,9 @@ validate-ui-quick:
|
|||
tsfiles=$$(git diff --name-only --relative --diff-filter d src | grep -e "\.tsx\?\$$"); \
|
||||
scssfiles=$$(git diff --name-only --relative --diff-filter d src | grep "\.scss"); \
|
||||
prettyfiles=$$(git diff --name-only --relative --diff-filter d . ../../graphql); \
|
||||
if [ -n "$$tsfiles" ]; then npm run eslint -- $$tsfiles; fi && \
|
||||
if [ -n "$$scssfiles" ]; then npm run stylelint -- $$scssfiles; fi && \
|
||||
if [ -n "$$prettyfiles" ]; then npm run prettier -- --check $$prettyfiles; fi
|
||||
if [ -n "$$tsfiles" ]; then pnpm run eslint -- $$tsfiles; fi && \
|
||||
if [ -n "$$scssfiles" ]; then pnpm run stylelint -- $$scssfiles; fi && \
|
||||
if [ -n "$$prettyfiles" ]; then pnpm run prettier -- --check $$prettyfiles; fi
|
||||
|
||||
# runs all of the backend PR-acceptance steps
|
||||
.PHONY: validate-backend
|
||||
|
|
@ -443,11 +455,11 @@ remove-compiler-container:
|
|||
docker rm -f -v build
|
||||
|
||||
.PHONY: install
|
||||
install: build-release
|
||||
install:
|
||||
ifdef IS_WIN_SHELL
|
||||
@if not exist "$(PREFIX)" mkdir $(PREFIX)
|
||||
@copy "dist\\stash-win.exe" "$(PREFIX)\\stash-win.exe"
|
||||
else
|
||||
@mkdir -p $(PREFIX)/bin
|
||||
@install -m 755 $(STASH_OUTPUT) $(PREFIX)/bin/stash
|
||||
@install -m 755 stash $(PREFIX)/bin/stash
|
||||
endif
|
||||
Loading…
Reference in a new issue