forked from monetr/monetr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
139 lines (102 loc) · 4.72 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
.SUFFIXES:
MAKEFLAGS += --no-print-directory
MAKEFLAGS += --no-builtin-rules
MAKEFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
PWD := $(dir $(MAKEFILE_PATH))
RELEASE ?= $(shell git describe --tag --dirty)
REVISION ?= $(shell git rev-parse HEAD)
CONTAINER_RELEASE ?= $(RELEASE:v%=%)
ifeq ($(OS),Windows_NT)
# This block will be executed if OS is Windows
TIME := $(shell powershell -command "[DateTime]::UtcNow.ToString('yyyy-MM-ddTHH:mm:ssZ')")
else
# This block will be executed if OS is not Windows
TIME := $(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
endif
ifneq ("$(wildcard $(PWD)/.cmakepreset)","")
CMAKE_PRESET ?= $(shell cat $(PWD)/.cmakepreset)
endif
ifneq ("$(wildcard $(HOME)/.monetr/development.env)","")
include $(HOME)/.monetr/development.env
export
endif
ifndef CI
CMAKE_PRESET ?= default
CONCURRENCY ?= 8
else
CMAKE_PRESET ?= release
CONCURRENCY := 4
endif
ifdef DEBUG
CMAKE_ARGS += --debug-output
BUILD_ARGS += -v
CONCURRENCY = 1
endif
export RELEASE_VERSION=$(RELEASE)
export CONTAINER_VERSION=$(CONTAINER_RELEASE)
export RELEASE_REVISION=$(REVISION)
export BUILD_TIME=$(TIME)
default: monetr
CMAKE_CONFIGURATION_DIRECTORY=build
# cmake -S . -B $(CMAKE_CONFIGURATION_DIRECTORY) -G $(GENERATOR) $(CMAKE_OPTIONS) $(CMAKE_ARGS)
.PHONY: $(CMAKE_CONFIGURATION_DIRECTORY)
$(CMAKE_CONFIGURATION_DIRECTORY): CMakeLists.txt CMakePresets.json
cmake --preset $(CMAKE_PRESET) $(CMAKE_OPTIONS)
clean:
-@$(MAKE) shutdown CMAKE_OPTIONS="$(CMAKE_OPTIONS) -DBUILD_TESTING=OFF"
-cmake --build $(CMAKE_CONFIGURATION_DIRECTORY) -t clean $(BUILD_ARGS)
-cmake -E remove_directory $(CMAKE_CONFIGURATION_DIRECTORY) $(BUILD_ARGS)
dependencies: | $(CMAKE_CONFIGURATION_DIRECTORY)
cmake --build $(CMAKE_CONFIGURATION_DIRECTORY) -t dependencies $(BUILD_ARGS)
deps: dependencies
monetr: | $(CMAKE_CONFIGURATION_DIRECTORY)
cmake --build $(CMAKE_CONFIGURATION_DIRECTORY) -t build.monetr $(BUILD_ARGS)
monetr-release:
$(MAKE) monetr -B CMAKE_PRESET=release
release: monetr-release
interface: $(CMAKE_CONFIGURATION_DIRECTORY)
cmake --build $(CMAKE_CONFIGURATION_DIRECTORY) -t build.interface $(BUILD_ARGS)
.PHONY: docs
docs: | $(CMAKE_CONFIGURATION_DIRECTORY)
cmake --build $(CMAKE_CONFIGURATION_DIRECTORY) -t build.docs $(BUILD_ARGS)
email: | $(CMAKE_CONFIGURATION_DIRECTORY)
cmake --build $(CMAKE_CONFIGURATION_DIRECTORY) -t build.email $(BUILD_ARGS)
storybook: | $(CMAKE_CONFIGURATION_DIRECTORY)
cmake --build $(CMAKE_CONFIGURATION_DIRECTORY) -t build.stories $(BUILD_ARGS)
migrate: | $(CMAKE_CONFIGURATION_DIRECTORY)
cmake --build $(CMAKE_CONFIGURATION_DIRECTORY) -t development.migrate $(BUILD_ARGS)
# If the user provides a pattern, then pass that through to CTest
ifdef PATTERN
PATTERN_ARG=-R $(PATTERN)
endif
test:
cmake --preset testing
ctest --test-dir $(CMAKE_CONFIGURATION_DIRECTORY) --no-tests=error --output-on-failure --output-junit $(PWD)$(CMAKE_CONFIGURATION_DIRECTORY)/junit.xml -j $(CONCURRENCY) $(PATTERN_ARG)
develop: | $(CMAKE_CONFIGURATION_DIRECTORY)
cmake --build $(CMAKE_CONFIGURATION_DIRECTORY) -t development.monetr.up $(BUILD_ARGS)
develop-lite: | $(CMAKE_CONFIGURATION_DIRECTORY)
cmake --build $(CMAKE_CONFIGURATION_DIRECTORY) -t development.lite $(BUILD_ARGS)
develop-docs: | $(CMAKE_CONFIGURATION_DIRECTORY)
cmake --build $(CMAKE_CONFIGURATION_DIRECTORY) -t development.documentation.up $(BUILD_ARGS)
develop-email: | $(CMAKE_CONFIGURATION_DIRECTORY)
cmake --build $(CMAKE_CONFIGURATION_DIRECTORY) -t development.email $(BUILD_ARGS)
develop-storybook: | $(CMAKE_CONFIGURATION_DIRECTORY)
cmake --build $(CMAKE_CONFIGURATION_DIRECTORY) -t development.stories.up $(BUILD_ARGS)
logs: | $(CMAKE_CONFIGURATION_DIRECTORY)
cmake --build $(CMAKE_CONFIGURATION_DIRECTORY) -t development.logs $(BUILD_ARGS)
restart: | $(CMAKE_CONFIGURATION_DIRECTORY)
cmake --build $(CMAKE_CONFIGURATION_DIRECTORY) -t development.restart $(BUILD_ARGS)
shell: | $(CMAKE_CONFIGURATION_DIRECTORY)
cmake --build $(CMAKE_CONFIGURATION_DIRECTORY) -t development.shell $(BUILD_ARGS)
sql-shell: | $(CMAKE_CONFIGURATION_DIRECTORY)
cmake --build $(CMAKE_CONFIGURATION_DIRECTORY) -t development.shell.sql $(BUILD_ARGS)
redis-shell: | $(CMAKE_CONFIGURATION_DIRECTORY)
cmake --build $(CMAKE_CONFIGURATION_DIRECTORY) -t development.shell.redis $(BUILD_ARGS)
shutdown: | $(CMAKE_CONFIGURATION_DIRECTORY)
cmake --build $(CMAKE_CONFIGURATION_DIRECTORY) -t development.down $(BUILD_ARGS)
container: | $(CMAKE_CONFIGURATION_DIRECTORY)
cmake --build $(CMAKE_CONFIGURATION_DIRECTORY) -t build.container.docker $(BUILD_ARGS)
container-push: $(CMAKE_CONFIGURATION_DIRECTORY)
cmake --build $(CMAKE_CONFIGURATION_DIRECTORY) -t build.container.docker.push $(BUILD_ARGS)
images: $(CMAKE_CONFIGURATION_DIRECTORY)
cmake --build $(CMAKE_CONFIGURATION_DIRECTORY) -t images $(BUILD_ARGS)