mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-01-31 11:46:58 +08:00
Cleaned up prefab builds
This commit is contained in:
parent
fc2ece3b29
commit
62e8549286
116
Makefile
116
Makefile
@ -114,12 +114,12 @@ clean-list:
|
||||
# Prebuilt binaries for various platforms.
|
||||
|
||||
# Assemble/run a debug build for this platform.
|
||||
prefab-debug:
|
||||
@tools/snippets make_prefab debug
|
||||
prefab-debug: prefab-debug-build
|
||||
${${shell tools/snippets prefab_run_var debug}}
|
||||
|
||||
# Assemble/run a release build for this platform.
|
||||
prefab-release:
|
||||
@tools/snippets make_prefab release
|
||||
prefab-release: prefab-release-build
|
||||
${${shell tools/snippets prefab_run_var release}}
|
||||
|
||||
# Assemble a debug build for this platform.
|
||||
prefab-debug-build:
|
||||
@ -130,8 +130,8 @@ prefab-release-build:
|
||||
@tools/snippets make_prefab release-build
|
||||
|
||||
# Assemble/run a server debug build for this platform.
|
||||
prefab-server-debug:
|
||||
@tools/snippets make_prefab server-debug
|
||||
prefab-server-debug: prefab-server-debug-build
|
||||
${${shell tools/snippets prefab_run_var server-debug}}
|
||||
|
||||
# Assemble/run a server release build for this platform.
|
||||
prefab-server-release:
|
||||
@ -147,8 +147,11 @@ prefab-server-release-build:
|
||||
|
||||
# Specific platform prefab targets:
|
||||
|
||||
RUN_PREFAB_MAC_DEBUG = cd build/prefab/mac/debug && ./ballisticacore
|
||||
|
||||
prefab-mac-debug: prefab-mac-debug-build
|
||||
@cd build/prefab/mac/debug && ./ballisticacore
|
||||
@tools/snippets ensure_prefab_platform mac
|
||||
@${RUN_PREFAB_MAC_DEBUG}
|
||||
|
||||
prefab-mac-debug-build: prereqs assets-cmake \
|
||||
build/prefab/mac/debug/ballisticacore
|
||||
@ -157,8 +160,11 @@ prefab-mac-debug-build: prereqs assets-cmake \
|
||||
build/prefab/mac/debug/ballisticacore: .efrocachemap
|
||||
@tools/snippets efrocache_get $@
|
||||
|
||||
RUN_PREFAB_MAC_RELEASE = cd build/prefab/mac/release && ./ballisticacore
|
||||
|
||||
prefab-mac-release: prefab-mac-release-build
|
||||
@cd build/prefab/mac/release && ./ballisticacore
|
||||
@tools/snippets ensure_prefab_platform mac
|
||||
@${RUN_PREFAB_MAC_RELEASE}
|
||||
|
||||
prefab-mac-release-build: prereqs assets-cmake \
|
||||
build/prefab/mac/release/ballisticacore
|
||||
@ -167,8 +173,12 @@ prefab-mac-release-build: prereqs assets-cmake \
|
||||
build/prefab/mac/release/ballisticacore: .efrocachemap
|
||||
@tools/snippets efrocache_get $@
|
||||
|
||||
RUN_PREFAB_MAC_SERVER_DEBUG = cd build/prefab/mac-server/debug \
|
||||
&& ./ballisticacore_server
|
||||
|
||||
prefab-mac-server-debug: prefab-mac-server-debug-build
|
||||
@cd build/prefab/mac-server/debug && ./ballisticacore_server
|
||||
@tools/snippets ensure_prefab_platform mac
|
||||
@${RUN_PREFAB_MAC_SERVER_DEBUG}
|
||||
|
||||
prefab-mac-server-debug-build: prereqs assets-cmake \
|
||||
build/prefab/mac-server/debug/dist/ballisticacore_headless \
|
||||
@ -178,17 +188,21 @@ prefab-mac-server-debug-build: prereqs assets-cmake \
|
||||
|
||||
build/prefab/mac-server/debug/ballisticacore_server: \
|
||||
assets/src/server/server.py
|
||||
cp $< $@
|
||||
@cp $< $@
|
||||
|
||||
build/prefab/mac-server/debug/config_template.yaml: \
|
||||
assets/src/server/config.yaml
|
||||
cp $< $@
|
||||
@cp $< $@
|
||||
|
||||
build/prefab/mac-server/debug/dist/ballisticacore_headless: .efrocachemap
|
||||
@tools/snippets efrocache_get $@
|
||||
|
||||
RUN_PREFAB_MAC_SERVER_RELEASE = cd build/prefab/mac-server/release \
|
||||
&& ./ballisticacore_server
|
||||
|
||||
prefab-mac-server-release: prefab-mac-server-release-build
|
||||
@cd build/prefab/mac-server/release && ./ballisticacore_server
|
||||
@tools/snippets ensure_prefab_platform mac
|
||||
@${RUN_PREFAB_MAC_SERVER_RELEASE}
|
||||
|
||||
prefab-mac-server-release-build: prereqs assets-cmake \
|
||||
build/prefab/mac-server/release/dist/ballisticacore_headless \
|
||||
@ -198,17 +212,20 @@ prefab-mac-server-release-build: prereqs assets-cmake \
|
||||
|
||||
build/prefab/mac-server/release/ballisticacore_server: \
|
||||
assets/src/server/server.py
|
||||
cp $< $@
|
||||
@cp $< $@
|
||||
|
||||
build/prefab/mac-server/release/config_template.yaml: \
|
||||
assets/src/server/config.yaml
|
||||
cp $< $@
|
||||
@cp $< $@
|
||||
|
||||
build/prefab/mac-server/release/dist/ballisticacore_headless: .efrocachemap
|
||||
@tools/snippets efrocache_get $@
|
||||
|
||||
RUN_PREFAB_LINUX_DEBUG = cd build/prefab/linux/debug && ./ballisticacore
|
||||
|
||||
prefab-linux-debug: prefab-linux-debug-build
|
||||
@cd build/prefab/linux/debug && ./ballisticacore
|
||||
@tools/snippets ensure_prefab_platform linux
|
||||
@${RUN_PREFAB_LINUX_DEBUG}
|
||||
|
||||
prefab-linux-debug-build: prereqs assets-cmake \
|
||||
build/prefab/linux/debug/ballisticacore
|
||||
@ -217,8 +234,11 @@ prefab-linux-debug-build: prereqs assets-cmake \
|
||||
build/prefab/linux/debug/ballisticacore: .efrocachemap
|
||||
@tools/snippets efrocache_get $@
|
||||
|
||||
RUN_PREFAB_LINUX_RELEASE = cd build/prefab/linux/release && ./ballisticacore
|
||||
|
||||
prefab-linux-release: prefab-linux-release-build
|
||||
@cd build/prefab/linux/release && ./ballisticacore
|
||||
@tools/snippets ensure_prefab_platform linux
|
||||
@${RUN_PREFAB_LINUX_RELEASE}
|
||||
|
||||
prefab-linux-release-build: prereqs assets-cmake \
|
||||
build/prefab/linux/release/ballisticacore
|
||||
@ -227,8 +247,12 @@ prefab-linux-release-build: prereqs assets-cmake \
|
||||
build/prefab/linux/release/ballisticacore: .efrocachemap
|
||||
@tools/snippets efrocache_get $@
|
||||
|
||||
RUN_PREFAB_LINUX_SERVER_DEBUG = cd build/prefab/linux-server/debug \
|
||||
&& ./ballisticacore_server
|
||||
|
||||
prefab-linux-server-debug: prefab-linux-server-debug-build
|
||||
@cd build/prefab/linux-server/debug && ./ballisticacore_server
|
||||
@tools/snippets ensure_prefab_platform linux
|
||||
@${RUN_PREFAB_LINUX_SERVER_DEBUG}
|
||||
|
||||
prefab-linux-server-debug-build: prereqs assets-cmake \
|
||||
build/prefab/linux-server/debug/dist/ballisticacore_headless \
|
||||
@ -238,17 +262,21 @@ prefab-linux-server-debug-build: prereqs assets-cmake \
|
||||
|
||||
build/prefab/linux-server/debug/ballisticacore_server: \
|
||||
assets/src/server/server.py
|
||||
cp $< $@
|
||||
@cp $< $@
|
||||
|
||||
build/prefab/linux-server/debug/config_template.yaml: \
|
||||
assets/src/server/config.yaml
|
||||
cp $< $@
|
||||
@cp $< $@
|
||||
|
||||
build/prefab/linux-server/debug/dist/ballisticacore_headless: .efrocachemap
|
||||
@tools/snippets efrocache_get $@
|
||||
|
||||
RUN_PREFAB_LINUX_SERVER_RELEASE = cd build/prefab/linux-server/release \
|
||||
&& ./ballisticacore_server
|
||||
|
||||
prefab-linux-server-release: prefab-linux-server-release-build
|
||||
@cd build/prefab/linux-server/release && ./ballisticacore_server
|
||||
@tools/snippets ensure_prefab_platform linux
|
||||
@${RUN_PREFAB_LINUX_SERVER_RELEASE}
|
||||
|
||||
prefab-linux-server-release-build: prereqs assets-cmake \
|
||||
build/prefab/linux-server/release/dist/ballisticacore_headless \
|
||||
@ -258,19 +286,22 @@ prefab-linux-server-release-build: prereqs assets-cmake \
|
||||
|
||||
build/prefab/linux-server/release/ballisticacore_server: \
|
||||
assets/src/server/server.py
|
||||
cp $< $@
|
||||
@cp $< $@
|
||||
|
||||
build/prefab/linux-server/release/config_template.yaml: \
|
||||
assets/src/server/config.yaml
|
||||
cp $< $@
|
||||
@cp $< $@
|
||||
|
||||
build/prefab/linux-server/release/dist/ballisticacore_headless: .efrocachemap
|
||||
@tools/snippets efrocache_get $@
|
||||
|
||||
PREFAB_WINDOWS_PLATFORM = x64
|
||||
|
||||
RUN_PREFAB_WINDOWS_DEBUG = cd build/prefab/windows/debug && ./BallisticaCore.exe
|
||||
|
||||
prefab-windows-debug: prefab-windows-debug-build
|
||||
build/prefab/windows/debug/BallisticaCore.exe
|
||||
@tools/snippets ensure_prefab_platform windows
|
||||
@{RUN_PREFAB_WINDOWS_DEBUG}
|
||||
|
||||
prefab-windows-debug-build: prereqs assets-windows-${PREFAB_WINDOWS_PLATFORM} \
|
||||
build/prefab/windows/debug/BallisticaCore.exe
|
||||
@ -279,8 +310,12 @@ prefab-windows-debug-build: prereqs assets-windows-${PREFAB_WINDOWS_PLATFORM} \
|
||||
build/prefab/windows/debug/BallisticaCore.exe: .efrocachemap
|
||||
@tools/snippets efrocache_get $@
|
||||
|
||||
RUN_PREFAB_WINDOWS_RELEASE = cd build/prefab/windows/release \
|
||||
&& ./BallisticaCore.exe
|
||||
|
||||
prefab-windows-release: prefab-windows-release-build
|
||||
build/prefab/windows/release/BallisticaCore.exe
|
||||
@tools/snippets ensure_prefab_platform windows
|
||||
@{RUN_PREFAB_WINDOWS_RELEASE}
|
||||
|
||||
prefab-windows-release-build: prereqs \
|
||||
assets-windows-${PREFAB_WINDOWS_PLATFORM} \
|
||||
@ -290,10 +325,13 @@ prefab-windows-release-build: prereqs \
|
||||
build/prefab/windows/release/BallisticaCore.exe: .efrocachemap
|
||||
@tools/snippets efrocache_get $@
|
||||
|
||||
prefab-windows-server-debug: prefab-windows-server-debug-build
|
||||
cd build/prefab/windows-server/debug \
|
||||
RUN_PREFAB_WINDOWS_SERVER_DEBUG = cd build/prefab/windows-server/debug \
|
||||
&& dist/python.exe ballisticacore_server.py
|
||||
|
||||
prefab-windows-server-debug: prefab-windows-server-debug-build
|
||||
@tools/snippets ensure_prefab_platform windows
|
||||
@{RUN_PREFAB_WINDOWS_SERVER_DEBUG}
|
||||
|
||||
prefab-windows-server-debug-build: prereqs \
|
||||
assets-windows-${PREFAB_WINDOWS_PLATFORM} \
|
||||
build/prefab/windows-server/debug/dist/ballisticacore_headless.exe \
|
||||
@ -308,19 +346,22 @@ build/prefab/windows-server/debug/dist/ballisticacore_headless.exe: .efrocachema
|
||||
|
||||
build/prefab/windows-server/debug/ballisticacore_server.py: \
|
||||
assets/src/server/server.py
|
||||
cp $< $@
|
||||
@cp $< $@
|
||||
|
||||
build/prefab/windows-server/debug/launch_ballisticacore_server.bat: \
|
||||
assets/src/server/server.bat
|
||||
cp $< $@
|
||||
@cp $< $@
|
||||
|
||||
build/prefab/windows-server/debug/config_template.yaml: \
|
||||
assets/src/server/config.yaml
|
||||
cp $< $@
|
||||
@cp $< $@
|
||||
|
||||
RUN_PREFAB_WINDOWS_SERVER_RELEASE = cd build/prefab/windows-server/release \
|
||||
&& dist/python.exe ballisticacore_server.py
|
||||
|
||||
prefab-windows-server-release: prefab-windows-server-release-build
|
||||
cd build/prefab/windows-server/release \
|
||||
&& dist/python.exe ballisticacore_server.py
|
||||
@tools/snippets ensure_prefab_platform windows
|
||||
@{RUN_PREFAB_WINDOWS_SERVER_RELEASE}
|
||||
|
||||
prefab-windows-server-release-build: prereqs \
|
||||
assets-windows-${PREFAB_WINDOWS_PLATFORM} \
|
||||
@ -336,15 +377,18 @@ build/prefab/windows-server/release/dist/ballisticacore_headless.exe: .efrocache
|
||||
|
||||
build/prefab/windows-server/release/ballisticacore_server.py: \
|
||||
assets/src/server/server.py
|
||||
cp $< $@
|
||||
@cp $< $@
|
||||
|
||||
build/prefab/windows-server/release/launch_ballisticacore_server.bat: \
|
||||
assets/src/server/server.bat
|
||||
cp $< $@
|
||||
@cp $< $@
|
||||
|
||||
build/prefab/windows-server/release/config_template.yaml: \
|
||||
assets/src/server/config.yaml
|
||||
cp $< $@
|
||||
@cp $< $@
|
||||
|
||||
prefab-clean:
|
||||
rm -rf build/prefab
|
||||
|
||||
# Tell make which of these targets don't represent files.
|
||||
.PHONY: prefab-debug prefab-debug-build prefab-release prefab-release-build \
|
||||
@ -359,7 +403,7 @@ build/prefab/windows-server/release/config_template.yaml: \
|
||||
prefab-windows-debug-build prefab-windows-release \
|
||||
prefab-windows-release-build prefab-windows-server-debug \
|
||||
prefab-windows-server-debug-build prefab-windows-server-release \
|
||||
prefab-windows-server-release-build
|
||||
prefab-windows-server-release-build prefab-clean
|
||||
|
||||
|
||||
################################################################################
|
||||
@ -505,7 +549,7 @@ test: prereqs
|
||||
# Run tests with any caching disabled.
|
||||
test-full: test
|
||||
|
||||
# Iterating on individual tests with extra debug output enabled.
|
||||
# Iterate on individual tests with extra debug output enabled.
|
||||
test-assetmanager:
|
||||
@tools/snippets pytest -o log_cli=true -o log_cli_level=debug -s -v \
|
||||
tests/test_ba/test_assetmanager.py::test_assetmanager
|
||||
|
||||
@ -321,4 +321,4 @@ if __name__ == '__main__':
|
||||
try:
|
||||
main()
|
||||
except KeyboardInterrupt:
|
||||
sys.exit(-1)
|
||||
pass
|
||||
|
||||
@ -432,36 +432,38 @@ def gen_fulltest_buildfile_linux() -> None:
|
||||
outfile.write('\n'.join(lines))
|
||||
|
||||
|
||||
def make_prefab(target: PrefabTarget) -> None:
|
||||
"""Run prefab builds for the current platform."""
|
||||
from efrotools import run
|
||||
import platform
|
||||
def get_current_prefab_platform() -> str:
|
||||
"""Get the name of the running platform.
|
||||
|
||||
Throws a RuntimeError on unsupported platforms.
|
||||
"""
|
||||
import platform
|
||||
system = platform.system()
|
||||
machine = platform.machine()
|
||||
|
||||
if system == 'Darwin':
|
||||
# Currently there's just x86_64 on mac; will need to revisit when arm
|
||||
# cpus happen.
|
||||
base = 'mac'
|
||||
elif system == 'Linux':
|
||||
return 'mac'
|
||||
if system == 'Linux':
|
||||
# If it looks like we're in Windows Subsystem for Linux,
|
||||
# go with the Windows version.
|
||||
if 'microsoft' in platform.uname()[3].lower():
|
||||
base = 'windows'
|
||||
else:
|
||||
# We currently only support x86_64 linux.
|
||||
if machine == 'x86_64':
|
||||
base = 'linux'
|
||||
else:
|
||||
raise RuntimeError(
|
||||
f'make_prefab: unsupported linux machine type:'
|
||||
f' {machine}.')
|
||||
else:
|
||||
raise RuntimeError(f'make_prefab: unrecognized platform:'
|
||||
f' {platform.system()}.')
|
||||
return 'windows'
|
||||
|
||||
run(f'make prefab-{base}-{target.value}')
|
||||
# We currently only support x86_64 linux.
|
||||
if machine == 'x86_64':
|
||||
return 'linux'
|
||||
raise RuntimeError(f'make_prefab: unsupported linux machine type:'
|
||||
f' {machine}.')
|
||||
raise RuntimeError(f'make_prefab: unrecognized platform:'
|
||||
f' {platform.system()}.')
|
||||
|
||||
|
||||
def make_prefab(target: PrefabTarget) -> None:
|
||||
"""Make a prefab build for the current platform."""
|
||||
from efrotools import run
|
||||
platform = get_current_prefab_platform()
|
||||
run(f'make prefab-{platform}-{target.value}')
|
||||
|
||||
|
||||
def _vstr(nums: Sequence[int]) -> str:
|
||||
|
||||
@ -528,6 +528,34 @@ def checkenv() -> None:
|
||||
raise CleanError(exc)
|
||||
|
||||
|
||||
def ensure_prefab_platform() -> None:
|
||||
"""Ensure we are running on a particular prefab platform."""
|
||||
import batools.build
|
||||
if len(sys.argv) != 3:
|
||||
raise CleanError('Expected 1 platform name arg.')
|
||||
needed = sys.argv[2]
|
||||
current = batools.build.get_current_prefab_platform()
|
||||
if current != needed:
|
||||
raise CleanError(
|
||||
f'Incorrect platform: we are {current}, this requires {needed}.')
|
||||
|
||||
|
||||
def prefab_run_var() -> None:
|
||||
"""Print a variable for running a prefab run for the current platform.
|
||||
|
||||
We use this mechanism instead of just having a command recursively run
|
||||
a make target so that ctrl-c can be handled cleanly and directly by the
|
||||
command getting run instead of generating extra errors in the recursive
|
||||
processes.
|
||||
"""
|
||||
import batools.build
|
||||
if len(sys.argv) != 3:
|
||||
raise RuntimeError('Expected 1 arg.')
|
||||
base = sys.argv[2].replace('-', '_').upper()
|
||||
platform = batools.build.get_current_prefab_platform().upper()
|
||||
print(f'RUN_PREFAB_{platform}_{base}', end='')
|
||||
|
||||
|
||||
def make_prefab() -> None:
|
||||
"""Run prefab builds for the current platform."""
|
||||
import batools.build
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user