Files
blender-portable-repo/extensions/user_default/retopoflow/Makefile
T
2026-03-17 14:58:51 -06:00

152 lines
4.4 KiB
Makefile

# ---------------------------------------------------------------
# Makefile for RetopoFlow
# Jonathan Williamson - <jonathan@cgcookie.com>
# Originally created by Diego Gangl - <diego@sinestesia.co>
# ---------------------------------------------------------------
#########################################################
# settings
# TODO: warn if profiling is enabled!
# see https://ftp.gnu.org/old-gnu/Manuals/make-3.79.1/html_chapter/make_6.html
# scripts
HIVE_VAL = $(shell pwd)/scripts/get_hive_value.py
DEBUG_CLEANUP = $(shell pwd)/addon_common/scripts/strip_debugging.py
UPDATE_COPYRIGHT = $(shell pwd)/addon_common/scripts/update_copyright_date.py
DOCS_REBUILD = $(shell pwd)/scripts/prep_help_for_online.py
CREATE_THUMBNAILS = $(shell pwd)/scripts/create_thumbnails.py
BLENDER = ~/software/blender/blender
# name, version, and release are pulled from hive.json file
NAME = "$(shell $(HIVE_VAL) name)"
VERSION = "$(shell $(HIVE_VAL) version)"
RELEASE = "$(shell $(HIVE_VAL) release)"
VVERSION = "v$(VERSION)"
ifeq ($(RELEASE), "official")
ZIP_VERSION = "$(VVERSION)"
else
ZIP_VERSION = "$(VVERSION)-$(RELEASE)"
endif
GIT_TAG_MESSAGE = "This is the $(RELEASE) release for RetopoFlow $(VVERSION)"
BUILD_DIR = $(shell pwd)/../retopoflow_release
INSTALL_DIR = ~/.config/blender/addons
CGCOOKIE_BUILT = $(NAME)/.cgcookie
ZIP_GH = $(NAME)_$(ZIP_VERSION)-GitHub.zip
ZIP_BM = $(NAME)_$(ZIP_VERSION)-BlenderMarket.zip
.DEFAULT_GOAL := info
# .PHONY: _build-pre _build-post
#########################################################
# information
info:
@echo "Information:"
@echo " "$(NAME)" "$(ZIP_VERSION)
@echo " Build Path: "$(BUILD_DIR)
@echo " Install Path: "$(INSTALL_DIR)
@echo "Targets:"
@echo " development: clean, check, gittag, install"
@echo " documentation: build-docs, serve-docs, clean-docs, build-thumbnails"
@echo " build zips: build, build-github, build-blendermarket"
#########################################################
# utilities
clean:
rm -rf $(BUILD_DIR)
@echo "Release folder deleted"
update-copyright:
python3 $(UPDATE_COPYRIGHT)
#########################################################
# documentation targets
build-docs:
# rebuild online docs
python3 $(DOCS_REBUILD)
cd docs && bundle add webrick && bundle update
serve-docs:
cd docs && bundle exec jekyll serve
clean-docs:
cd docs && bundle exec jekyll clean
#########################################################
# build targets
blinfo:
@echo "Updating bl_info in __init__.py by running Blender with --background"
$(BLENDER) --background
check:
# check that we don't have case-conflicting filenames (ex: utils.py Utils.py)
# most Windows setups have issues with these
./scripts/detect_filename_case_conflicts.py
build-thumbnails:
# create thumbnails
cd help/images && python3 $(CREATE_THUMBNAILS)
build:
make _build-docs _build-common _build-github _build-blendermarket
@echo "\n\n"$(NAME)" "$(VVERSION)" is ready"
build-github:
make _build-common _build-github
@echo "\n\n"$(NAME)" "$(VVERSION)" is ready"
build-blendermarket:
make _build-common _build-blendermarket
@echo "\n\n"$(NAME)" "$(VVERSION)" is ready"
# helper targets
_build-docs:
make build-thumbnails build-docs
_build-common:
make check blinfo
mkdir -p $(BUILD_DIR)/$(NAME)
# copy files over to build folder
# note: rsync flag -a == archive (same as -rlptgoD)
rsync -av --progress . $(BUILD_DIR)/$(NAME) --exclude-from="Makefile_excludes"
# run debug cleanup
cd $(BUILD_DIR) && python3 $(DEBUG_CLEANUP) "YES!"
_build-github:
# touch file so that we know it was packaged by us and zip it!
cd $(BUILD_DIR) && echo "This file indicates that CG Cookie built this version of RetopoFlow for release on GitHub." > $(CGCOOKIE_BUILT)
cd $(BUILD_DIR) && zip -r $(ZIP_GH) $(NAME)
_build-blendermarket:
# touch file so that we know it was packaged by us and zip it!
cd $(BUILD_DIR) && echo "This file indicates that CG Cookie built this version of RetopoFlow for release on Blender Market." > $(CGCOOKIE_BUILT)
cd $(BUILD_DIR) && zip -r $(ZIP_BM) $(NAME)
#########################################################
# installing target
install:
rm -r $(INSTALL_DIR)/$(NAME)
cp -r $(BUILD_DIR)/$(NAME) $(INSTALL_DIR)/$(NAME)
gittag:
# create a new annotated (-a) tag and push to GitHub
git tag -a $(VVERSION) -m $(GIT_TAG_MESSAGE)
git push origin $(VVERSION)