forked from JimJokes/maps
-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathMakefile
More file actions
156 lines (104 loc) · 5.81 KB
/
Makefile
File metadata and controls
156 lines (104 loc) · 5.81 KB
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
PARSER_OUT_DIR := out/parser
GENERATOR_OUT_DIR := out
DEMO_APP_OUT_DIR := ../truckermudgeon.github.io
ATS_DIR := "~/Library/Application Support/Steam/steamapps/common/American Truck Simulator"
ETS2_DIR := "~/Library/Application Support/Steam/steamapps/common/Euro Truck Simulator 2"
##### `parser`-generated files ###############################################
# note: values come from properties of `DefData`...
PARSER_JSON_NAMES = countries companyDefs roadLooks prefabDescriptions modelDescriptions achievements routes
# ...and `MapData` types.
PARSER_JSON_NAMES += nodes elevation roads ferries prefabs companies models mapAreas pois dividers trajectories \
triggers cutscenes cities
ATS_PARSER_JSON_FILES := $(patsubst %,$(PARSER_OUT_DIR)/usa-%.json,$(PARSER_JSON_NAMES))
ETS2_PARSER_JSON_FILES := $(patsubst %,$(PARSER_OUT_DIR)/europe-%.json,$(PARSER_JSON_NAMES))
$(ATS_PARSER_JSON_FILES):
npx parser -i $(ATS_DIR) -o $(PARSER_OUT_DIR)
$(ETS2_PARSER_JSON_FILES):
npx parser -i $(ETS2_DIR) -o $(PARSER_OUT_DIR)
##### `generator`-generated files ############################################
RESOURCES_DIR := packages/clis/generator/resources
MAP_FILES :=
#### pmtiles files
# Create base-layer world.pmtiles
$(GENERATOR_OUT_DIR)/world.pmtiles: $(addprefix $(RESOURCES_DIR)/,water.geojson countries.geojson states.geojson)
tippecanoe -Z4 -z8 -b 10 -X -o $@ $^
MAP_FILES += $(GENERATOR_OUT_DIR)/world.pmtiles
# Create ATS and ETS2 pmtiles files
$(GENERATOR_OUT_DIR)/ats.pmtiles: $(ATS_PARSER_JSON_FILES)
npx generator map -m usa -i $(PARSER_OUT_DIR) -o $(GENERATOR_OUT_DIR)
$(GENERATOR_OUT_DIR)/ets2.pmtiles: $(ETS2_PARSER_JSON_FILES)
npx generator map -m europe -i $(PARSER_OUT_DIR) -o $(GENERATOR_OUT_DIR)
MAP_FILES += $(GENERATOR_OUT_DIR)/ats.pmtiles
MAP_FILES += $(GENERATOR_OUT_DIR)/ets2.pmtiles
# Create ATS and ETS2 footprints pmtiles files
$(GENERATOR_OUT_DIR)/ats-footprints.pmtiles: $(ATS_PARSER_JSON_FILES)
npx generator footprints -m usa -i $(PARSER_OUT_DIR) -o $(GENERATOR_OUT_DIR)
$(GENERATOR_OUT_DIR)/ets2-footprints.pmtiles: $(ATS_PARSER_JSON_FILES)
npx generator footprints -m europe -i $(PARSER_OUT_DIR) -o $(GENERATOR_OUT_DIR)
MAP_FILES += $(GENERATOR_OUT_DIR)/ats-footprints.pmtiles
MAP_FILES += $(GENERATOR_OUT_DIR)/ets2-footprints.pmtiles
# Create ATS and ETS2 contours (aka elevations) pmtiles files
$(GENERATOR_OUT_DIR)/ats-contours.pmtiles: $(ATS_PARSER_JSON_FILES)
npx generator contours -m usa -i $(PARSER_OUT_DIR) -o $(GENERATOR_OUT_DIR)
$(GENERATOR_OUT_DIR)/ets2-contours.pmtiles: $(ATS_PARSER_JSON_FILES)
npx generator contours -m europe -i $(PARSER_OUT_DIR) -o $(GENERATOR_OUT_DIR)
MAP_FILES += $(GENERATOR_OUT_DIR)/ats-contours.pmtiles
MAP_FILES += $(GENERATOR_OUT_DIR)/ets2-contours.pmtiles
#### geojson files
# Create combined ATS and ETS2 cities.geojson file
$(GENERATOR_OUT_DIR)/cities.geojson: $(ATS_PARSER_JSON_FILES) $(ETS2_PARSER_JSON_FILES)
npx generator cities -m usa -m europe -i $(PARSER_OUT_DIR) -o $(GENERATOR_OUT_DIR)
MAP_FILES += $(GENERATOR_OUT_DIR)/cities.geojson
# Create ATS and ETS2 achievements.geojson files
$(GENERATOR_OUT_DIR)/ats-achievements.geojson: $(ATS_PARSER_JSON_FILES)
npx generator achievements -m usa -i $(PARSER_OUT_DIR) -o $(GENERATOR_OUT_DIR)
$(GENERATOR_OUT_DIR)/ets2-achievements.pmtiles: $(ATS_PARSER_JSON_FILES)
npx generator achievements -m europe -i $(PARSER_OUT_DIR) -o $(GENERATOR_OUT_DIR)
MAP_FILES += $(GENERATOR_OUT_DIR)/ats-achievements.geojson
MAP_FILES += $(GENERATOR_OUT_DIR)/ets2-achievements.geojson
# Create ETS2 villages.geojson file
$(GENERATOR_OUT_DIR)/ets2-villages.geojson: $(RESOURCES_DIR)/villages-in-ets2.csv
npx generator ets2-villages -o $(GENERATOR_OUT_DIR)
MAP_FILES += $(GENERATOR_OUT_DIR)/ets2-villages.geojson
#### other map resources
# Copy ATS and ETS2 achievements.json
$(GENERATOR_OUT_DIR)/ats-achievements.json: $(RESOURCES_DIR)/ats-achievements.json
@cp $^ $@
$(GENERATOR_OUT_DIR)/ets2-achievements.json: $(RESOURCES_DIR)/ets2-achievements.json
@cp $^ $@
MAP_FILES += $(GENERATOR_OUT_DIR)/ats-achievements.json
MAP_FILES += $(GENERATOR_OUT_DIR)/ets2-achievements.json
# Create ATS graph demo json
$(GENERATOR_OUT_DIR)/usa-graph-demo.json: $(ATS_PARSER_JSON_FILES)
npx generator graph -i $(PARSER_OUT_DIR) -o $(GENERATOR_OUT_DIR) -c -d
MAP_FILES += $(GENERATOR_OUT_DIR)/usa-graph-demo.json
# Create spritesheet files
SPRITESHEET_FILES := $(addprefix $(GENERATOR_OUT_DIR)/,sprites.png sprites.json sprites@2x.png sprites@2x.json)
$(SPRITESHEET_FILES): $(ATS_PARSER_JSON_FILES) $(ETS2_PARSER_JSON_FILES)
npx generator spritesheet -i $(PARSER_OUT_DIR) -o $(GENERATOR_OUT_DIR)
MAP_FILES += $(SPRITESHEET_FILES)
demo-data: $(MAP_FILES) ## builds map data for demo-app
##############################################################################
DEMO_PACKAGE_DIR := packages/apps/demo
demo-app: ## builds web assets for demo-app
npm run build -w $(DEMO_PACKAGE_DIR)
##############################################################################
demo: demo-data demo-app ## builds map data and web assets for demo-app and copies them to demo-app directory
@rm -rf $(DEMO_APP_OUT_DIR)/assets
@cp -R $(DEMO_PACKAGE_DIR)/build/assets $(DEMO_APP_OUT_DIR)
@cp $(DEMO_PACKAGE_DIR)/build/index.html $(DEMO_APP_OUT_DIR)
@cp $(MAP_FILES) $(DEMO_APP_OUT_DIR)
@$(foreach src,\
$(shell git ls-files $(DEMO_PACKAGE_DIR)/public),\
cp $(src) $(subst $(DEMO_PACKAGE_DIR)/public,$(DEMO_APP_OUT_DIR),$(src));)
clean: ## deletes all parser and generator outputs
@rm -f $(ATS_PARSER_JSON_FILES) $(ETS2_PARSER_JSON_FILES)
@rm -rf $(PARSER_OUT_DIR)/icons
@rm -f $(MAP_FILES)
# generated `help` target
# https://marmelab.com/blog/2016/02/29/auto-documented-makefile.html
help:
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) \
| awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-15s\033[0m %s\n", $$1, $$2}'
.PHONY: demo demo-data demo-app clean help
.DEFAULT_GOAL := help