port: auto-generate headers like the decomp does
this does not require the ROM
This commit is contained in:
parent
67492e744d
commit
28282f1c35
|
|
@ -116,7 +116,7 @@ C_DEFINES := $(foreach d,$(DEFINES),-D$(d))
|
|||
|
||||
A_DIR := src/assets/$(ROMID)
|
||||
B_DIR := build/$(ROMID)-port
|
||||
E_DIR := extracted/$(ROMID)
|
||||
G_DIR := src/generated/$(ROMID)
|
||||
|
||||
ifneq (,$(findstring x86_64,$(TARGET_PLATFORM)))
|
||||
TOOLCHAIN_ARCH := x86_64
|
||||
|
|
@ -135,9 +135,12 @@ else # TODO
|
|||
endif
|
||||
|
||||
# These are still used in the port, but only to generate headers.
|
||||
LANG_JSON_FILES := $(shell find $(A_DIR) -path '*/lang/*.json')
|
||||
PADS_JSON_FILES := $(shell find $(A_DIR) -path '*/pads/*.json')
|
||||
TILES_JSON_FILES := $(shell find $(A_DIR) -path '*/tiles/*.json')
|
||||
JSON_FILES := $(shell find $(A_DIR) -path '*/lang/*.json')
|
||||
JSON_FILES += $(shell find $(A_DIR) -path '*/pads/*.json')
|
||||
JSON_FILES += $(shell find $(A_DIR) -path '*/tiles/*.json')
|
||||
JSON_FILES += $(wildcard $(A_DIR)/*.json)
|
||||
|
||||
JSON_HEADERS := $(patsubst $(A_DIR)/%.json, $(G_DIR)/%.h, $(JSON_FILES))
|
||||
|
||||
C_FILES := $(shell find src/game port -name '*.c')
|
||||
C_FILES := $(C_FILES) \
|
||||
|
|
@ -227,11 +230,45 @@ LDFLAGS := $(TARGET_LDFLAGS)
|
|||
# (We use this a lot)
|
||||
export ROMID
|
||||
|
||||
# Signal to the tooling that we only need the header files generated.
|
||||
HEADERS_ONLY := 1
|
||||
export HEADERS_ONLY
|
||||
|
||||
BIN := $(B_DIR)/pd.exe
|
||||
|
||||
default: $(BIN)
|
||||
|
||||
$(BIN): $(O_FILES)
|
||||
################################################################################
|
||||
# Asset Manager header generation
|
||||
|
||||
# Anims
|
||||
$(G_DIR)/animations.h: $(A_DIR)/animations.json
|
||||
tools/assetmgr/mkanims --headers-only
|
||||
|
||||
# Lang
|
||||
$(G_DIR)/lang/%.h: $(A_DIR)/lang/%.json
|
||||
tools/assetmgr/mklang $< en --headers-only
|
||||
|
||||
# Pads
|
||||
$(G_DIR)/pads/%.h: $(A_DIR)/pads/%.json
|
||||
tools/assetmgr/mkpads $< --headers-only
|
||||
|
||||
# Sequences
|
||||
$(G_DIR)/sequences.h: $(A_DIR)/sequences.json
|
||||
tools/assetmgr/mksequences --headers-only
|
||||
|
||||
# Textures
|
||||
$(G_DIR)/textures.h: $(A_DIR)/textures.json
|
||||
tools/assetmgr/mktextures --headers-only
|
||||
|
||||
# Tiles
|
||||
$(G_DIR)/tiles/%.h: $(A_DIR)/tiles/%.json
|
||||
tools/assetmgr/mktiles $< --headers-only
|
||||
|
||||
################################################################################
|
||||
# Generic compilation rules
|
||||
|
||||
$(BIN): $(JSON_HEADERS) $(O_FILES)
|
||||
$(LD) $(COMMON_CFLAGS) $(OPT_LVL) -o $(BIN) $^ $(LDFLAGS)
|
||||
|
||||
$(B_DIR)/%.o: %.c
|
||||
|
|
@ -242,14 +279,15 @@ $(B_DIR)/%.o: %.cpp
|
|||
@mkdir -p $(dir $@)
|
||||
$(CXX) -c $(CXXFLAGS) $(OPT_LVL) -o $@ $<
|
||||
|
||||
################################################################################
|
||||
# Clean rules
|
||||
|
||||
clean:
|
||||
rm -rf build/$(ROMID)-port
|
||||
# rm -rf src/generated/$(ROMID)
|
||||
|
||||
allclean:
|
||||
rm -rf build/*
|
||||
# rm -rf src/generated
|
||||
rm -rf src/generated
|
||||
|
||||
codeclean:
|
||||
find $(B_DIR)/game $(B_DIR)/inflate $(B_DIR)/lib $(B_DIR)/port -name '*.o' -delete
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
import assetmgr
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
|
||||
def main():
|
||||
fd = open('src/assets/%s/animations.json' % os.environ['ROMID'], 'r')
|
||||
|
|
@ -11,7 +12,8 @@ def main():
|
|||
|
||||
rows = json.loads(data)
|
||||
|
||||
make_object(rows)
|
||||
if '--headers-only' not in sys.argv:
|
||||
make_object(rows)
|
||||
make_header(rows)
|
||||
|
||||
def make_header(rows):
|
||||
|
|
|
|||
|
|
@ -19,7 +19,8 @@ def main():
|
|||
if sys.argv[2] == 'en':
|
||||
make_header(rows, shortname)
|
||||
|
||||
make_object(rows, basename, sys.argv[2])
|
||||
if '--headers-only' not in sys.argv:
|
||||
make_object(rows, basename, sys.argv[2])
|
||||
|
||||
def get_shortname(basename):
|
||||
return re.match(r'^[a-z0-9]+', basename)[0]
|
||||
|
|
|
|||
|
|
@ -18,7 +18,8 @@ class App():
|
|||
self.populate_waygroup_waypoints()
|
||||
|
||||
self.make_header()
|
||||
self.make_object()
|
||||
if '--headers-only' not in sys.argv:
|
||||
self.make_object()
|
||||
|
||||
def load_data(self):
|
||||
fd = open(sys.argv[1], 'r')
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
import assetmgr
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
|
||||
def main():
|
||||
fd = open('src/assets/%s/sequences.json' % os.environ['ROMID'], 'r')
|
||||
|
|
@ -11,7 +12,8 @@ def main():
|
|||
|
||||
rows = json.loads(data)
|
||||
|
||||
make_object(rows)
|
||||
if '--headers-only' not in sys.argv:
|
||||
make_object(rows)
|
||||
make_header(rows)
|
||||
|
||||
def make_header(rows):
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
import assetmgr
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
|
||||
def main():
|
||||
fd = open('src/assets/%s/textures.json' % os.environ['ROMID'], 'r')
|
||||
|
|
@ -11,7 +12,8 @@ def main():
|
|||
|
||||
rows = json.loads(data)
|
||||
|
||||
make_objects(rows)
|
||||
if '--headers-only' not in sys.argv:
|
||||
make_objects(rows)
|
||||
make_header(rows)
|
||||
|
||||
def make_header(rows):
|
||||
|
|
|
|||
|
|
@ -27,7 +27,8 @@ class App():
|
|||
self.room_names = self.json['rooms'].keys()
|
||||
|
||||
self.make_header()
|
||||
self.make_object()
|
||||
if '--headers-only' not in sys.argv:
|
||||
self.make_object()
|
||||
|
||||
def load_data(self):
|
||||
fd = open(sys.argv[1], 'r')
|
||||
|
|
|
|||
Loading…
Reference in New Issue