add thumbnail build support
This commit is contained in:
parent
26fc849ed5
commit
51dbf068a6
45
Makefile
45
Makefile
@ -30,11 +30,13 @@ OUT_DIR = build
|
||||
SRC_DIRS = de en script style
|
||||
SRC_FLS =
|
||||
|
||||
# SOURCE FILES:
|
||||
# RESOURCE FILES:
|
||||
# all RESOURCE_FLS and all files in the RESOURCE_DIRS will be copied to OUT_DIR
|
||||
RESOURCE_DIRS = resources
|
||||
RESOURCE_FLS =
|
||||
|
||||
# THUMBNAILS:
|
||||
# if set, thumbnails for all resource files will be generated and placed in THUMB_OUT_DIR (relative to OUT_DIR)
|
||||
THUMB_OUT_DIR = thumbs
|
||||
|
||||
# MULTI-LANG SOURCE FILES:
|
||||
# the files in COMMON_DIR will be built for all LANGS:
|
||||
@ -103,6 +105,15 @@ ML_OUT_DIRS = $(foreach lang, $(LANGS), $(patsubst $(_COMMON_DIR)/%, $(ML_OUT_D
|
||||
ML_OUT_FLS = $(foreach lang, $(LANGS), $(patsubst $(_COMMON_DIR)/%, $(ML_OUT_DIR)/$(lang)/%, $(_ML_SRC_FLS)))
|
||||
endif
|
||||
|
||||
ifdef THUMB_OUT_DIR
|
||||
_THUMB_FOR_TYPES = png gif jpg jpeg webp pdf
|
||||
_THUMB_TYPE = jpg
|
||||
# files for which to generate thumbnails
|
||||
_THUMB_FLS = $(filter $(foreach type, $(_THUMB_FOR_TYPES), %.$(type)), $(_RES_FLS))
|
||||
THUMB_OUT_FLS = $(addsuffix .jpg, $(basename $(patsubst $(PROJECT_DIR)/%, $(OUT_DIR)/$(THUMB_OUT_DIR)/%, $(_THUMB_FLS))))
|
||||
THUMB_OUT_DIRS = $(sort $(dir $(THUMB_OUT_FLS))) # sort for removing duplicates
|
||||
endif
|
||||
|
||||
# needed for creating them
|
||||
_DEP_DIRS = $(sort $(patsubst $(OUT_DIR)/%, $(DEP_DIR)/%, $(OUT_DIRS) $(ML_OUT_DIRS)))
|
||||
# needed for reading
|
||||
@ -112,7 +123,8 @@ _DEP_FLS = $(shell find $(DEP_DIR) -type f -name '*.d' 2>/dev/null)
|
||||
FMT_VAR_SRC ="Variable '\e[1;34m%s\e[0m': \e[0;33m%s\e[0m\n"
|
||||
FMT_VAR_OUT ="Variable '\e[1;34m%s\e[0m': \e[0;35m%s\e[0m\n"
|
||||
FMT_DIR ="\e[1;34mMaking directory\e[0m: \e[0;35m%s\e[0m\n"
|
||||
FMT_OUT_HTML ="\e[1;34mBuilding html\e[0m \e[1;33m%s\e[0m at \e[1;35m%s\e[0m\n"
|
||||
FMT_OUT_HTML ="\e[1;34mBuilding html\e[0m: \e[1;33m%s\e[0m at \e[1;35m%s\e[0m\n"
|
||||
FMT_OUT_THUMB ="\e[1;34mBuilding thumbnail\e[0m: \e[1;33m%s\e[0m at \e[1;35m%s\e[0m\n"
|
||||
FMT_OUT_OTHER ="\e[1;34mBuilding\e[0m: \e[1;33m%s\e[0m at \e[1;35m%s\e[0m\n"
|
||||
|
||||
FMT_OUT_ML_HTML="\e[1;34mBuilding html\e[0m in lang \e[1;34m%s\e[0m: \e[1;33m%s\e[0m at \e[1;35m%s\e[0m\n"
|
||||
@ -127,10 +139,11 @@ FMT_OUT_ML_OTHER="\e[1;34mBuilding\e[0m in lang \e[1;34m%s\e[0m: \e[1;33m%s\e[0m
|
||||
# include all the dependency makefiles
|
||||
include $(_DEP_FLS)
|
||||
|
||||
all: normal multilang resources
|
||||
all: normal multilang resources thumbnails
|
||||
normal: $(OUT_FLS)
|
||||
multilang: $(ML_OUT_FLS)
|
||||
resources: $(RES_OUT_FLS)
|
||||
thumbnails: $(THUMB_OUT_FLS)
|
||||
|
||||
print:
|
||||
@printf $(FMT_VAR_SRC) "PROJECT_DIR" "$(PROJECT_DIR)"
|
||||
@ -145,10 +158,16 @@ ifdef COMMON_DIR
|
||||
@printf $(FMT_VAR_OUT) "ML_OUT_FLS" "$(ML_OUT_FLS)"
|
||||
endif
|
||||
@printf $(FMT_VAR_SRC) "_DEP_FLS" "$(_DEP_FLS)"
|
||||
ifdef THUMB_OUT_DIR
|
||||
@printf $(FMT_VAR_SRC) "THUMB_OUT_DIR" "$(THUMB_OUT_DIR)"
|
||||
@printf $(FMT_VAR_OUT) "_THUMB_FLS" "$(_THUMB_FLS)"
|
||||
@printf $(FMT_VAR_OUT) "THUMB_OUT_FLS" "$(THUMB_OUT_FLS)"
|
||||
@printf $(FMT_VAR_OUT) "THUMB_OUT_DIRS" "$(THUMB_OUT_DIRS)"
|
||||
endif
|
||||
@# @printf $(FMT_VAR_SRC) "y" "$(y)"
|
||||
|
||||
# DIRECTORIES
|
||||
$(sort $(ML_OUT_DIRS) $(_DEP_DIRS) $(RES_OUT_DIRS) $(OUT_DIRS)):
|
||||
$(sort $(ML_OUT_DIRS) $(_DEP_DIRS) $(RES_OUT_DIRS) $(OUT_DIRS) $(THUMB_OUT_DIRS)):
|
||||
@printf $(FMT_DIR) "$@"
|
||||
@mkdir -p $@
|
||||
|
||||
@ -171,6 +190,22 @@ $(foreach out_dir, $(ML_OUT_LANG_DIRS), $(out_dir)/%): $(_COMMON_DIR)/% | $(ML_O
|
||||
cp $< $@
|
||||
endif
|
||||
|
||||
# THUMBNAILS
|
||||
$(OUT_DIR)/$(THUMB_OUT_DIR)/%.jpg: | $(THUMB_OUT_DIRS)
|
||||
@fulltarget="$@"; \
|
||||
target="$(patsubst $(OUT_DIR)/$(THUMB_OUT_DIR)/%.jpg,%,$@)"; \
|
||||
sources=($(_THUMB_FLS)); \
|
||||
source=$$(printf "%s\n" $${sources[@]} | grep "$$target"'\.'); \
|
||||
printf $(FMT_OUT_THUMB) "$$source" "$$fulltarget"; \
|
||||
if [ "$${source##*.}" = "pdf" ]; then \
|
||||
pdftoppm -f 1 -singlefile -jpeg -r 50 "$$source" "$${fulltarget%.*}"; \
|
||||
else \
|
||||
magick "$$source" -thumbnail '100x100>' "$@"; \
|
||||
fi; \
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
# (NORMAL/RE-)SOURCE RULES
|
||||
#
|
||||
|
Loading…
Reference in New Issue
Block a user