2020-02-24 18:58:07 +01:00
|
|
|
SHELL := /bin/bash
|
2020-03-22 19:52:56 +01:00
|
|
|
|
|
|
|
ifndef SHELLFLAGS
|
|
|
|
SHELLFLAGS :=
|
|
|
|
endif
|
|
|
|
|
|
|
|
.SHELLFLAGS := -eu -o pipefail ${SHELLFLAGS} -c
|
|
|
|
MAKEFLAGS += --warn-undefined-variables
|
|
|
|
MAKEFLAGS += --no-builtin-rules
|
|
|
|
|
2020-02-25 06:32:17 +01:00
|
|
|
FIND := $(if $(wildcard /bin/find),/bin/find,/usr/bin/find)
|
2020-02-24 18:58:07 +01:00
|
|
|
|
2020-03-04 00:51:24 +01:00
|
|
|
ifndef OS
|
|
|
|
OS := unknown
|
|
|
|
endif
|
|
|
|
|
2020-03-22 19:52:56 +01:00
|
|
|
ifeq (${OS},Windows_NT)
|
|
|
|
ifndef PYTHON_FILE
|
|
|
|
PYTHON_FILE := $(shell which python)
|
|
|
|
USE_CYGPATH_COMMAND := case "$$(uname -s)" in CYGWIN*|MINGW*|MSYS*) printf "yes";; esac;
|
|
|
|
USE_CYGPATH := $(shell ${USE_CYGPATH_COMMAND})
|
|
|
|
|
|
|
|
ifneq (,${USE_CYGPATH})
|
|
|
|
PYTHON_FILE := $(shell cygpath -w "${PYTHON_FILE}")
|
|
|
|
endif
|
2020-03-02 00:49:45 +01:00
|
|
|
endif
|
2020-03-01 17:18:30 +01:00
|
|
|
else
|
2020-03-22 19:52:56 +01:00
|
|
|
ifndef PYTHON_FILE
|
|
|
|
PYTHON_FILE := $(shell which python3)
|
2020-03-02 00:49:45 +01:00
|
|
|
endif
|
2020-03-01 17:18:30 +01:00
|
|
|
endif
|
|
|
|
|
2020-01-02 10:43:19 +01:00
|
|
|
.DELETE_ON_ERROR:
|
2020-01-03 05:32:26 +01:00
|
|
|
$(shell mkdir -p .build ../dist)
|
2020-01-02 10:43:19 +01:00
|
|
|
|
2020-01-03 05:32:26 +01:00
|
|
|
OUTDIR := ../dist
|
2020-01-02 10:43:19 +01:00
|
|
|
BUILDFLAGS := --release --strip
|
2020-03-06 00:33:53 +01:00
|
|
|
DEVFLAGS :=
|
2020-02-24 12:22:02 +01:00
|
|
|
RSPY_TARGET_DIR ?= target
|
2020-01-02 10:43:19 +01:00
|
|
|
|
2020-02-27 11:38:34 +01:00
|
|
|
QT_FTL_TEMPLATES := ../qt/ftl
|
|
|
|
QT_FTL_LOCALES := ../qt/ftl/repo/desktop
|
2020-02-23 09:00:13 +01:00
|
|
|
|
2020-01-02 10:43:19 +01:00
|
|
|
.PHONY: all develop build check fix clean
|
|
|
|
|
|
|
|
all: develop
|
|
|
|
|
2020-02-23 09:00:13 +01:00
|
|
|
develop: .build/develop
|
|
|
|
|
2020-02-27 11:38:34 +01:00
|
|
|
DEPS := .build/tools .build/vernum ../meta/buildhash \
|
|
|
|
$(wildcard $(QT_FTL_TEMPLATES)/*.ftl) \
|
|
|
|
$(wildcard $(QT_FTL_LOCALES)/*/*.ftl) \
|
2020-04-26 08:02:02 +02:00
|
|
|
$(shell "${FIND}" ../rslib/src -name '*.rs') $(wildcard ../proto/*) \
|
|
|
|
$(shell "${FIND}" ../rslib/ftl -type f) \
|
|
|
|
$(shell "${FIND}" ./src -type f)
|
2020-02-24 10:02:12 +01:00
|
|
|
|
|
|
|
.build/develop: $(DEPS)
|
2020-02-23 09:00:13 +01:00
|
|
|
touch ../proto/backend.proto
|
2020-02-27 11:38:34 +01:00
|
|
|
FTL_TEMPLATE_DIRS="$(QT_FTL_TEMPLATES)" FTL_LOCALE_DIRS="$(QT_FTL_LOCALES)" \
|
2020-03-06 00:33:53 +01:00
|
|
|
CARGO_TARGET_DIR="$(RSPY_TARGET_DIR)" maturin develop $(DEVFLAGS)
|
2020-02-23 09:00:13 +01:00
|
|
|
touch $@
|
2020-01-02 10:43:19 +01:00
|
|
|
|
2020-04-07 02:56:41 +02:00
|
|
|
build: .build/build
|
|
|
|
|
|
|
|
.build/build: $(DEPS)
|
2020-02-23 09:00:13 +01:00
|
|
|
touch ../proto/backend.proto
|
2020-02-27 11:38:34 +01:00
|
|
|
FTL_TEMPLATE_DIRS="$(QT_FTL_TEMPLATES)" FTL_LOCALE_DIRS="$(QT_FTL_LOCALES)" \
|
2020-04-25 02:08:24 +02:00
|
|
|
CARGO_TARGET_DIR="$(RSPY_TARGET_DIR)" maturin build -i "${PYTHON_FILE}" -o "$(OUTDIR)" $(BUILDFLAGS)
|
2020-04-07 02:56:41 +02:00
|
|
|
touch $@
|
2020-01-02 10:43:19 +01:00
|
|
|
|
|
|
|
check: .build/check
|
|
|
|
|
|
|
|
fix:
|
|
|
|
cargo fmt
|
|
|
|
|
|
|
|
clean:
|
|
|
|
rm -rf .build target
|
|
|
|
|
|
|
|
# nightly currently required for ignoring files in rustfmt.toml
|
|
|
|
RUST_TOOLCHAIN := $(shell cat rust-toolchain)
|
|
|
|
|
|
|
|
.build/tools: requirements.txt rust-toolchain
|
2020-02-24 18:58:07 +01:00
|
|
|
python -m pip install -r requirements.txt
|
2020-01-02 10:43:19 +01:00
|
|
|
rustup toolchain install $(RUST_TOOLCHAIN)
|
|
|
|
rustup component add rustfmt-preview --toolchain $(RUST_TOOLCHAIN)
|
|
|
|
rustup component add clippy-preview --toolchain $(RUST_TOOLCHAIN)
|
|
|
|
@touch $@
|
|
|
|
|
|
|
|
.build/check: build
|
|
|
|
cargo fmt -- --check
|
|
|
|
cargo clippy -- -D warnings
|
|
|
|
@touch $@
|
2020-01-03 05:36:14 +01:00
|
|
|
|
|
|
|
VER := $(shell cat ../meta/version)
|
|
|
|
.build/vernum: ../meta/version
|
2020-04-02 04:01:48 +02:00
|
|
|
sed -i.bak 's/.*automatically updated.*/version = "$(VER)" # automatically updated/' Cargo.toml
|
2020-01-03 07:02:06 +01:00
|
|
|
rm Cargo.toml.bak
|
2020-01-03 05:36:14 +01:00
|
|
|
@touch $@
|