PROJECT_NAME := obs-webkit-browser VERSION := $(shell sed -n '/^project.* VERSION / { s/^project.* VERSION //; s/ .*//; p; }' CMakeLists.txt) ARCH := $(shell uname -m) BUILD_DIR ?= build-release DIST_DIR ?= dist STAGE_DIR ?= $(BUILD_DIR)/stage INSTALL_PREFIX ?= /usr ARCHIVE_NAME := $(PROJECT_NAME)-$(VERSION)-linux-$(ARCH).tar.gz ARCHIVE_PATH := $(abspath $(DIST_DIR)/$(ARCHIVE_NAME)) PLUGIN_STAGE_DIR := $(STAGE_DIR)/$(PROJECT_NAME) PLUGIN_BIN_DIR := $(PLUGIN_STAGE_DIR)/bin/64bit PLUGIN_DATA_DIR := $(PLUGIN_STAGE_DIR)/data CMAKE ?= $(if $(wildcard /usr/bin/cmake),/usr/bin/cmake,cmake) CTEST ?= $(if $(wildcard /usr/bin/ctest),/usr/bin/ctest,ctest) .PHONY: all configure build test install stage archive clean all: build configure: $(CMAKE) -S . -B $(BUILD_DIR) -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=$(INSTALL_PREFIX) build: configure $(CMAKE) --build $(BUILD_DIR) test: build $(CTEST) --test-dir $(BUILD_DIR) --output-on-failure install: build $(CMAKE) --install $(BUILD_DIR) --strip stage: test $(CMAKE) -E remove_directory $(STAGE_DIR) $(CMAKE) -E make_directory $(PLUGIN_BIN_DIR) $(CMAKE) -E make_directory $(PLUGIN_DATA_DIR)/locale $(CMAKE) -E copy_if_different \ $(BUILD_DIR)/obs-webkit-browser.so $(PLUGIN_BIN_DIR)/obs-webkit-browser.so $(CMAKE) -E copy_if_different \ $(BUILD_DIR)/obs-webkit-renderer $(PLUGIN_DATA_DIR)/obs-webkit-renderer $(CMAKE) -E copy_if_different \ data/locale/en-US.ini data/locale/ru-RU.ini $(PLUGIN_DATA_DIR)/locale/ archive: stage $(CMAKE) -E make_directory $(DIST_DIR) cd $(STAGE_DIR) && $(CMAKE) -E tar cfvz $(ARCHIVE_PATH) --format=gnutar $(PROJECT_NAME) $(CMAKE) -E sha256sum $(ARCHIVE_PATH) >$(ARCHIVE_PATH).sha256 @echo @echo "Archive: $(ARCHIVE_PATH)" @echo "SHA-256: $(ARCHIVE_PATH).sha256" clean: $(CMAKE) -E remove_directory $(BUILD_DIR) $(CMAKE) -E remove_directory $(DIST_DIR)