diff --git a/.efrocachemap b/.efrocachemap index 1a30a79c..b3087f56 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -3932,16 +3932,16 @@ "assets/build/windows/Win32/ucrtbased.dll": "https://files.ballistica.net/cache/ba1/b5/85/f8b6d0558ddb87267f34254b1450", "assets/build/windows/Win32/vc_redist.x86.exe": "https://files.ballistica.net/cache/ba1/1c/e1/4a1a2eddda2f4aebd5f8b64ab08e", "assets/build/windows/Win32/vcruntime140d.dll": "https://files.ballistica.net/cache/ba1/50/8d/bc2600ac9491f1b14d659709451f", - "build/prefab/linux-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ac/96/c3b9934061393fe09cc90ff24b8d", - "build/prefab/linux-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/38/2b/5641b3b40846f74f232771ac0457", - "build/prefab/linux/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/26/3b/ea7dd76e5cf6407dc7e20576f191", - "build/prefab/linux/release/ballisticacore": "https://files.ballistica.net/cache/ba1/ed/2a/ba83223990092ce3a4eafd491c76", - "build/prefab/mac-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/fe/cd/67cb2a544dada857323d01ff6337", - "build/prefab/mac-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/fc/8c/2bbe38abf6f4e718f9af83d5b120", - "build/prefab/mac/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/3d/9a/ed85e7110f940e24a3358fd01b39", - "build/prefab/mac/release/ballisticacore": "https://files.ballistica.net/cache/ba1/f7/94/406ef9f6014282c1852190765faf", - "build/prefab/windows-server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/ef/13/78a497e9a6055369470bf58d318e", - "build/prefab/windows-server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/10/42/5a50d344b3adb1441bbd14e244ed", - "build/prefab/windows/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/3f/00/85d7560c026c81847d6591ab2c7f", - "build/prefab/windows/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/80/fb/f7017b6091830f47194a37e5d63f" + "build/prefab/linux_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/a7/be/d2d88cedd80218236cace5782990", + "build/prefab/linux_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/be/9d/3dc0431a002e197163134a5dc881", + "build/prefab/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/c0/d3/95030ef9319c3c8ed13e75254583", + "build/prefab/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/01/f7/170ffdbec21643a4a80e181023b3", + "build/prefab/mac_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/9c/62/c7a083e3aa2f93005c5354678207", + "build/prefab/mac_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/e5/c4/e5be2fa6ebe5ff81a99c3608a73d", + "build/prefab/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/48/0e/902db411f7298917a8d3b0b13ec2", + "build/prefab/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/fd/0f/8bc3a7dc565a0dd376f124d747d5", + "build/prefab/windows_x86/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/3c/78/d8cd734a0ccab60c2e0ea3a97370", + "build/prefab/windows_x86/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/2b/b7/c193aa65c8adf613f543036b8af4", + "build/prefab/windows_x86_server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/4c/37/68bc656f1f94994754301d0c742e", + "build/prefab/windows_x86_server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/15/d1/db8211bd2df1e435dcb7f6823fc2" } \ No newline at end of file diff --git a/.idea/dictionaries/ericf.xml b/.idea/dictionaries/ericf.xml index 37848787..188136d2 100644 --- a/.idea/dictionaries/ericf.xml +++ b/.idea/dictionaries/ericf.xml @@ -349,6 +349,7 @@ cmds cmembers cmodel + cmpf cnode codecsmodule codefilenames @@ -2266,6 +2267,7 @@ winempty winnergroup winnergroups + winplat winplt winprj winprune diff --git a/Makefile b/Makefile index 6d8b04e7..dfd5d3ed 100644 --- a/Makefile +++ b/Makefile @@ -151,293 +151,388 @@ prefab-server-release-build: # Specific platform prefab targets: -RUN_PREFAB_MAC_DEBUG = cd build/prefab/mac/debug && ./ballisticacore +RUN_PREFAB_MAC_X86_64_DEBUG = cd build/prefab/mac_x86_64/debug \ + && ./ballisticacore -prefab-mac-debug: prefab-mac-debug-build - @tools/pcommand ensure_prefab_platform mac - @${RUN_PREFAB_MAC_DEBUG} +RUN_PREFAB_MAC_ARM64_DEBUG = cd build/prefab/mac_arm64/debug \ + && ./ballisticacore -prefab-mac-debug-build: prereqs assets-cmake \ - build/prefab/mac/debug/ballisticacore - @${STAGE_ASSETS} -cmake build/prefab/mac/debug +prefab-mac-x86-64-debug: prefab-mac-x86-64-debug-build + @tools/pcommand ensure_prefab_platform mac_x86_64 + @${RUN_PREFAB_MAC_X86_64_DEBUG} -build/prefab/mac/debug/ballisticacore: .efrocachemap +prefab-mac-arm64-debug: prefab-mac-arm64-debug-build + @tools/pcommand ensure_prefab_platform mac_arm64 + @${RUN_PREFAB_MAC_ARM64_DEBUG} + +prefab-mac-x86-64-debug-build: prereqs assets-cmake \ + build/prefab/mac_x86_64/debug/ballisticacore + @${STAGE_ASSETS} -cmake build/prefab/mac_x86_64/debug + +prefab-mac-arm64-debug-build: prereqs assets-cmake \ + build/prefab/mac_arm64/debug/ballisticacore + @${STAGE_ASSETS} -cmake build/prefab/mac_arm64/debug + +build/prefab/mac_%/debug/ballisticacore: .efrocachemap @tools/pcommand efrocache_get $@ -RUN_PREFAB_MAC_RELEASE = cd build/prefab/mac/release && ./ballisticacore +RUN_PREFAB_MAC_X86_64_RELEASE = cd build/prefab/mac_x86_64/release \ + && ./ballisticacore -prefab-mac-release: prefab-mac-release-build - @tools/pcommand ensure_prefab_platform mac - @${RUN_PREFAB_MAC_RELEASE} +RUN_PREFAB_MAC_ARM64_RELEASE = cd build/prefab/mac_arm64/release \ + && ./ballisticacore -prefab-mac-release-build: prereqs assets-cmake \ - build/prefab/mac/release/ballisticacore - @${STAGE_ASSETS} -cmake build/prefab/mac/release +prefab-mac-x86-64-release: prefab-mac-x86-64-release-build + @tools/pcommand ensure_prefab_platform mac_x86_64 + @${RUN_PREFAB_MAC_X86_64_RELEASE} -build/prefab/mac/release/ballisticacore: .efrocachemap +prefab-mac-arm64-release: prefab-mac-arm64-release-build + @tools/pcommand ensure_prefab_platform mac_arm64 + @${RUN_PREFAB_MAC_ARM64_RELEASE} + +prefab-mac-x86-64-release-build: prereqs assets-cmake \ + build/prefab/mac_x86_64/release/ballisticacore + @${STAGE_ASSETS} -cmake build/prefab/mac_x86_64/release + +prefab-mac-arm64-release-build: prereqs assets-cmake \ + build/prefab/mac_arm64/release/ballisticacore + @${STAGE_ASSETS} -cmake build/prefab/mac_arm64/release + +build/prefab/mac_%/release/ballisticacore: .efrocachemap @tools/pcommand efrocache_get $@ -RUN_PREFAB_MAC_SERVER_DEBUG = cd build/prefab/mac-server/debug \ +RUN_PREFAB_MAC_X86_64_SERVER_DEBUG = cd build/prefab/mac_x86_64_server/debug \ && ./ballisticacore_server -prefab-mac-server-debug: prefab-mac-server-debug-build - @tools/pcommand ensure_prefab_platform mac - @${RUN_PREFAB_MAC_SERVER_DEBUG} +RUN_PREFAB_MAC_ARM64_SERVER_DEBUG = cd build/prefab/mac_arm64_server/debug \ + && ./ballisticacore_server -prefab-mac-server-debug-build: prereqs assets-cmake \ - build/prefab/mac-server/debug/dist/ballisticacore_headless \ - build/prefab/mac-server/debug/ballisticacore_server \ - build/prefab/mac-server/debug/config_template.yaml \ - build/prefab/mac-server/debug/README.txt - @${STAGE_ASSETS} -cmakeserver build/prefab/mac-server/debug/dist +prefab-mac-x86-64-server-debug: prefab-mac-x86-64-server-debug-build + @tools/pcommand ensure_prefab_platform mac_x86_64 + @${RUN_PREFAB_MAC_X86_64_SERVER_DEBUG} -build/prefab/mac-server/debug/ballisticacore_server: \ +prefab-mac-arm64-server-debug: prefab-mac-arm64-server-debug-build + @tools/pcommand ensure_prefab_platform mac_arm64 + @${RUN_PREFAB_MAC_ARM64_SERVER_DEBUG} + +prefab-mac-x86-64-server-debug-build: prereqs assets-cmake \ + build/prefab/mac_x86_64_server/debug/dist/ballisticacore_headless \ + build/prefab/mac_x86_64_server/debug/ballisticacore_server \ + build/prefab/mac_x86_64_server/debug/config_template.yaml \ + build/prefab/mac_x86_64_server/debug/README.txt + @${STAGE_ASSETS} -cmakeserver build/prefab/mac_x86_64_server/debug/dist + +prefab-mac-arm64-server-debug-build: prereqs assets-cmake \ + build/prefab/mac_arm64_server/debug/dist/ballisticacore_headless \ + build/prefab/mac_arm64_server/debug/ballisticacore_server \ + build/prefab/mac_arm64_server/debug/config_template.yaml \ + build/prefab/mac_arm64_server/debug/README.txt + @${STAGE_ASSETS} -cmakeserver build/prefab/mac_arm64_server/debug/dist + +build/prefab/mac_%_server/debug/ballisticacore_server: \ assets/src/server/ballisticacore_server.py tools/batools/pcommand.py @tools/pcommand stage_server_file debug $< $@ -build/prefab/mac-server/debug/config_template.yaml: \ +build/prefab/mac_%_server/debug/config_template.yaml: \ assets/src/server/config_template.yaml \ tools/batools/build.py \ tools/batools/pcommand.py \ tools/bacommon/servermanager.py @tools/pcommand stage_server_file debug $< $@ -build/prefab/mac-server/debug/README.txt: \ +build/prefab/mac_%_server/debug/README.txt: \ assets/src/server/README.txt @cp $< $@ -build/prefab/mac-server/debug/dist/ballisticacore_headless: .efrocachemap +build/prefab/mac_%_server/debug/dist/ballisticacore_headless: .efrocachemap @tools/pcommand efrocache_get $@ -RUN_PREFAB_MAC_SERVER_RELEASE = cd build/prefab/mac-server/release \ - && ./ballisticacore_server +RUN_PREFAB_MAC_X86_64_SERVER_RELEASE = cd \ + build/prefab/mac_x86_64_server/release && ./ballisticacore_server -prefab-mac-server-release: prefab-mac-server-release-build - @tools/pcommand ensure_prefab_platform mac - @${RUN_PREFAB_MAC_SERVER_RELEASE} +RUN_PREFAB_MAC_ARM64_SERVER_RELEASE = cd \ + build/prefab/mac_arm64_server/release && ./ballisticacore_server -prefab-mac-server-release-build: prereqs assets-cmake \ - build/prefab/mac-server/release/dist/ballisticacore_headless \ - build/prefab/mac-server/release/ballisticacore_server \ - build/prefab/mac-server/release/config_template.yaml \ - build/prefab/mac-server/release/README.txt - @${STAGE_ASSETS} -cmakeserver build/prefab/mac-server/release/dist +prefab-mac-x86-64-server-release: prefab-mac-x86-64-server-release-build + @tools/pcommand ensure_prefab_platform mac_x86_64 + @${RUN_PREFAB_MAC_X86_64_SERVER_RELEASE} -build/prefab/mac-server/release/ballisticacore_server: \ +prefab-mac-arm64-server-release: prefab-mac-arm64-server-release-build + @tools/pcommand ensure_prefab_platform mac_arm64 + @${RUN_PREFAB_MAC_ARM64_SERVER_RELEASE} + +prefab-mac-x86-64-server-release-build: prereqs assets-cmake \ + build/prefab/mac_x86_64_server/release/dist/ballisticacore_headless \ + build/prefab/mac_x86_64_server/release/ballisticacore_server \ + build/prefab/mac_x86_64_server/release/config_template.yaml \ + build/prefab/mac_x86_64_server/release/README.txt + @${STAGE_ASSETS} -cmakeserver build/prefab/mac_x86_64_server/release/dist + +prefab-mac-arm64-server-release-build: prereqs assets-cmake \ + build/prefab/mac_arm64_server/release/dist/ballisticacore_headless \ + build/prefab/mac_arm64_server/release/ballisticacore_server \ + build/prefab/mac_arm64_server/release/config_template.yaml \ + build/prefab/mac_arm64_server/release/README.txt + @${STAGE_ASSETS} -cmakeserver build/prefab/mac_arm64_server/release/dist + +build/prefab/mac_%_server/release/ballisticacore_server: \ assets/src/server/ballisticacore_server.py tools/batools/pcommand.py @tools/pcommand stage_server_file release $< $@ -build/prefab/mac-server/release/config_template.yaml: \ +build/prefab/mac_%_server/release/config_template.yaml: \ assets/src/server/config_template.yaml \ tools/batools/build.py \ tools/batools/pcommand.py \ tools/bacommon/servermanager.py @tools/pcommand stage_server_file release $< $@ -build/prefab/mac-server/release/README.txt: \ +build/prefab/mac_%_server/release/README.txt: \ assets/src/server/README.txt @cp $< $@ -build/prefab/mac-server/release/dist/ballisticacore_headless: .efrocachemap +build/prefab/mac_%_server/release/dist/ballisticacore_headless: .efrocachemap @tools/pcommand efrocache_get $@ -RUN_PREFAB_LINUX_DEBUG = cd build/prefab/linux/debug && ./ballisticacore +RUN_PREFAB_LINUX_X86_64_DEBUG = cd \ + build/prefab/linux_x86_64/debug && ./ballisticacore -prefab-linux-debug: prefab-linux-debug-build - @tools/pcommand ensure_prefab_platform linux - @${RUN_PREFAB_LINUX_DEBUG} +RUN_PREFAB_LINUX_ARM64_DEBUG = cd \ + build/prefab/linux_arm64/debug && ./ballisticacore -prefab-linux-debug-build: prereqs assets-cmake \ - build/prefab/linux/debug/ballisticacore - @${STAGE_ASSETS} -cmake build/prefab/linux/debug +prefab-linux-x86-64-debug: prefab-linux-x86-64-debug-build + @tools/pcommand ensure_prefab_platform linux_x86_64 + @${RUN_PREFAB_LINUX_X86_64_DEBUG} -build/prefab/linux/debug/ballisticacore: .efrocachemap +prefab-linux-arm64-debug: prefab-linux-arm64-debug-build + @tools/pcommand ensure_prefab_platform linux_arm64 + @${RUN_PREFAB_LINUX_ARM64_DEBUG} + +prefab-linux-x86-64-debug-build: prereqs assets-cmake \ + build/prefab/linux_x86_64/debug/ballisticacore + @${STAGE_ASSETS} -cmake build/prefab/linux_x86_64/debug + +prefab-linux-arm64-debug-build: prereqs assets-cmake \ + build/prefab/linux_arm64/debug/ballisticacore + @${STAGE_ASSETS} -cmake build/prefab/linux_arm64/debug + +build/prefab/linux_%/debug/ballisticacore: .efrocachemap @tools/pcommand efrocache_get $@ -RUN_PREFAB_LINUX_RELEASE = cd build/prefab/linux/release && ./ballisticacore +RUN_PREFAB_LINUX_X86_64_RELEASE = cd \ + build/prefab/linux_x86_64/release && ./ballisticacore -prefab-linux-release: prefab-linux-release-build - @tools/pcommand ensure_prefab_platform linux - @${RUN_PREFAB_LINUX_RELEASE} +RUN_PREFAB_LINUX_ARM64_RELEASE = cd \ + build/prefab/linux_arm64/release && ./ballisticacore -prefab-linux-release-build: prereqs assets-cmake \ - build/prefab/linux/release/ballisticacore - @${STAGE_ASSETS} -cmake build/prefab/linux/release +prefab-linux-x86-64-release: prefab-linux-x86-64-release-build + @tools/pcommand ensure_prefab_platform linux_x86_64 + @${RUN_PREFAB_LINUX_X86_64_RELEASE} -build/prefab/linux/release/ballisticacore: .efrocachemap +prefab-linux-arm64-release: prefab-linux-arm64-release-build + @tools/pcommand ensure_prefab_platform linux_arm64 + @${RUN_PREFAB_LINUX_ARM64_RELEASE} + +prefab-linux-x86-64-release-build: prereqs assets-cmake \ + build/prefab/linux_x86_64/release/ballisticacore + @${STAGE_ASSETS} -cmake build/prefab/linux_x86_64/release + +prefab-linux-arm64-release-build: prereqs assets-cmake \ + build/prefab/linux_arm64/release/ballisticacore + @${STAGE_ASSETS} -cmake build/prefab/linux_arm64/release + +build/prefab/linux_%/release/ballisticacore: .efrocachemap @tools/pcommand efrocache_get $@ -RUN_PREFAB_LINUX_SERVER_DEBUG = cd build/prefab/linux-server/debug \ - && ./ballisticacore_server +RUN_PREFAB_LINUX_X86_64_SERVER_DEBUG = cd \ + build/prefab/linux_x86_64_server/debug && ./ballisticacore_server -prefab-linux-server-debug: prefab-linux-server-debug-build - @tools/pcommand ensure_prefab_platform linux - @${RUN_PREFAB_LINUX_SERVER_DEBUG} +RUN_PREFAB_LINUX_ARM64_SERVER_DEBUG = cd \ + build/prefab/linux_arm64_server/debug && ./ballisticacore_server -prefab-linux-server-debug-build: prereqs assets-cmake \ - build/prefab/linux-server/debug/dist/ballisticacore_headless \ - build/prefab/linux-server/debug/ballisticacore_server \ - build/prefab/linux-server/debug/config_template.yaml \ - build/prefab/linux-server/debug/README.txt - @${STAGE_ASSETS} -cmakeserver build/prefab/linux-server/debug/dist +prefab-linux-x86-64-server-debug: prefab-linux-x86-64-server-debug-build + @tools/pcommand ensure_prefab_platform linux_x86_64 + @${RUN_PREFAB_LINUX_X86_64_SERVER_DEBUG} -build/prefab/linux-server/debug/ballisticacore_server: \ +prefab-linux-arm64-server-debug: prefab-linux-arm64-server-debug-build + @tools/pcommand ensure_prefab_platform linux_arm64 + @${RUN_PREFAB_LINUX_ARM64_SERVER_DEBUG} + +prefab-linux-x86-64-server-debug-build: prereqs assets-cmake \ + build/prefab/linux_x86_64_server/debug/dist/ballisticacore_headless \ + build/prefab/linux_x86_64_server/debug/ballisticacore_server \ + build/prefab/linux_x86_64_server/debug/config_template.yaml \ + build/prefab/linux_x86_64_server/debug/README.txt + @${STAGE_ASSETS} -cmakeserver build/prefab/linux_x86_64_server/debug/dist + +prefab-linux-arm64-server-debug-build: prereqs assets-cmake \ + build/prefab/linux_arm64_server/debug/dist/ballisticacore_headless \ + build/prefab/linux_arm64_server/debug/ballisticacore_server \ + build/prefab/linux_arm64_server/debug/config_template.yaml \ + build/prefab/linux_arm64_server/debug/README.txt + @${STAGE_ASSETS} -cmakeserver build/prefab/linux_arm64_server/debug/dist + +build/prefab/linux_%_server/debug/ballisticacore_server: \ assets/src/server/ballisticacore_server.py tools/batools/pcommand.py @tools/pcommand stage_server_file debug $< $@ -build/prefab/linux-server/debug/config_template.yaml: \ +build/prefab/linux_%_server/debug/config_template.yaml: \ assets/src/server/config_template.yaml \ tools/batools/build.py \ tools/batools/pcommand.py \ tools/bacommon/servermanager.py @tools/pcommand stage_server_file debug $< $@ -build/prefab/linux-server/debug/README.txt: \ +build/prefab/linux_%_server/debug/README.txt: \ assets/src/server/README.txt @cp $< $@ -build/prefab/linux-server/debug/dist/ballisticacore_headless: .efrocachemap +build/prefab/linux_%_server/debug/dist/ballisticacore_headless: .efrocachemap @tools/pcommand efrocache_get $@ -RUN_PREFAB_LINUX_SERVER_RELEASE = cd build/prefab/linux-server/release \ - && ./ballisticacore_server +RUN_PREFAB_LINUX_X86_64_SERVER_RELEASE = cd \ + build/prefab/linux_x86_64_server/release && ./ballisticacore_server -prefab-linux-server-release: prefab-linux-server-release-build - @tools/pcommand ensure_prefab_platform linux - @${RUN_PREFAB_LINUX_SERVER_RELEASE} +RUN_PREFAB_LINUX_ARM64_SERVER_RELEASE = cd \ + build/prefab/linux_arm64_server/release && ./ballisticacore_server -prefab-linux-server-release-build: prereqs assets-cmake \ - build/prefab/linux-server/release/dist/ballisticacore_headless \ - build/prefab/linux-server/release/ballisticacore_server \ - build/prefab/linux-server/release/config_template.yaml \ - build/prefab/linux-server/release/README.txt - @${STAGE_ASSETS} -cmakeserver build/prefab/linux-server/release/dist +prefab-linux-x86-64-server-release: prefab-linux-x86-64-server-release-build + @tools/pcommand ensure_prefab_platform linux_x86_64 + @${RUN_PREFAB_LINUX_X86_64_SERVER_RELEASE} -build/prefab/linux-server/release/ballisticacore_server: \ +prefab-linux-x86-64-server-release-build: prereqs assets-cmake \ + build/prefab/linux_x86_64_server/release/dist/ballisticacore_headless \ + build/prefab/linux_x86_64_server/release/ballisticacore_server \ + build/prefab/linux_x86_64_server/release/config_template.yaml \ + build/prefab/linux_x86_64_server/release/README.txt + @${STAGE_ASSETS} -cmakeserver build/prefab/linux_x86_64_server/release/dist + +build/prefab/linux_%_server/release/ballisticacore_server: \ assets/src/server/ballisticacore_server.py tools/batools/pcommand.py @tools/pcommand stage_server_file release $< $@ -build/prefab/linux-server/release/config_template.yaml: \ +build/prefab/linux_%_server/release/config_template.yaml: \ assets/src/server/config_template.yaml \ tools/batools/build.py \ tools/batools/pcommand.py \ tools/bacommon/servermanager.py @tools/pcommand stage_server_file release $< $@ -build/prefab/linux-server/release/README.txt: \ +build/prefab/linux_%_server/release/README.txt: \ assets/src/server/README.txt @cp $< $@ -build/prefab/linux-server/release/dist/ballisticacore_headless: .efrocachemap +build/prefab/linux_%_server/release/dist/ballisticacore_headless: .efrocachemap @tools/pcommand efrocache_get $@ -PREFAB_WINDOWS_PLATFORM = Win32 +WINPLAT_X86 = Win32 -RUN_PREFAB_WINDOWS_DEBUG = cd build/prefab/windows/debug && ./BallisticaCore.exe +RUN_PREFAB_WINDOWS_X86_DEBUG = cd build/prefab/windows_x86/debug \ + && ./BallisticaCore.exe -prefab-windows-debug: prefab-windows-debug-build - @tools/pcommand ensure_prefab_platform windows - @{RUN_PREFAB_WINDOWS_DEBUG} +prefab-windows-x86-debug: prefab-windows-x86-debug-build + @tools/pcommand ensure_prefab_platform windows_x86 + @{RUN_PREFAB_WINDOWS_X86_DEBUG} -prefab-windows-debug-build: prereqs assets-windows-${PREFAB_WINDOWS_PLATFORM} \ - build/prefab/windows/debug/BallisticaCore.exe - @${STAGE_ASSETS} -win-${PREFAB_WINDOWS_PLATFORM}-Debug \ -build/prefab/windows/debug +prefab-windows-x86-debug-build: prereqs assets-windows-${WINPLAT_X86} \ + build/prefab/windows_x86/debug/BallisticaCore.exe + @${STAGE_ASSETS} -win-${WINPLAT_X86}-Debug \ +build/prefab/windows_x86/debug -build/prefab/windows/debug/BallisticaCore.exe: .efrocachemap +build/prefab/windows_x86/debug/BallisticaCore.exe: .efrocachemap @tools/pcommand efrocache_get $@ -RUN_PREFAB_WINDOWS_RELEASE = cd build/prefab/windows/release \ +RUN_PREFAB_WINDOWS_X86_RELEASE = cd build/prefab/windows_x86/release \ && ./BallisticaCore.exe -prefab-windows-release: prefab-windows-release-build - @tools/pcommand ensure_prefab_platform windows - @{RUN_PREFAB_WINDOWS_RELEASE} +prefab-windows-x86-release: prefab-windows-x86-release-build + @tools/pcommand ensure_prefab_platform windows_x86 + @{RUN_PREFAB_WINDOWS_X86_RELEASE} -prefab-windows-release-build: prereqs \ - assets-windows-${PREFAB_WINDOWS_PLATFORM} \ - build/prefab/windows/release/BallisticaCore.exe - @${STAGE_ASSETS} -win-${PREFAB_WINDOWS_PLATFORM}-Release \ -build/prefab/windows/release +prefab-windows-x86-release-build: prereqs \ + assets-windows-${WINPLAT_X86} \ + build/prefab/windows_x86/release/BallisticaCore.exe + @${STAGE_ASSETS} -win-${WINPLAT_X86}-Release \ +build/prefab/windows_x86/release -build/prefab/windows/release/BallisticaCore.exe: .efrocachemap +build/prefab/windows_x86/release/BallisticaCore.exe: .efrocachemap @tools/pcommand efrocache_get $@ -RUN_PREFAB_WINDOWS_SERVER_DEBUG = cd build/prefab/windows-server/debug \ +RUN_PREFAB_WINDOWS_X86_SERVER_DEBUG = cd build/prefab/windows_x86_server/debug \ && dist/python.exe ballisticacore_server.py -prefab-windows-server-debug: prefab-windows-server-debug-build - @tools/pcommand ensure_prefab_platform windows - @{RUN_PREFAB_WINDOWS_SERVER_DEBUG} +prefab-windows-x86-server-debug: prefab-windows-x86-server-debug-build + @tools/pcommand ensure_prefab_platform windows_x86 + @{RUN_PREFAB_WINDOWS_X86_SERVER_DEBUG} -prefab-windows-server-debug-build: prereqs \ - assets-windows-${PREFAB_WINDOWS_PLATFORM} \ - build/prefab/windows-server/debug/dist/ballisticacore_headless.exe \ - build/prefab/windows-server/debug/launch_ballisticacore_server.bat \ - build/prefab/windows-server/debug/ballisticacore_server.py \ - build/prefab/windows-server/debug/config_template.yaml \ - build/prefab/windows-server/debug/README.txt - @${STAGE_ASSETS} -winserver-${PREFAB_WINDOWS_PLATFORM}-Debug \ - build/prefab/windows-server/debug/dist +prefab-windows-x86-server-debug-build: prereqs \ + assets-windows-${WINPLAT_X86} \ + build/prefab/windows_x86_server/debug/dist/ballisticacore_headless.exe \ + build/prefab/windows_x86_server/debug/launch_ballisticacore_server.bat \ + build/prefab/windows_x86_server/debug/ballisticacore_server.py \ + build/prefab/windows_x86_server/debug/config_template.yaml \ + build/prefab/windows_x86_server/debug/README.txt + @${STAGE_ASSETS} -winserver-${WINPLAT_X86}-Debug \ + build/prefab/windows_x86_server/debug/dist -build/prefab/windows-server/debug/dist/ballisticacore_headless.exe: .efrocachemap +build/prefab/windows_x86_server/debug/dist/ballisticacore_headless.exe: .efrocachemap @tools/pcommand efrocache_get $@ -build/prefab/windows-server/debug/ballisticacore_server.py: \ +build/prefab/windows_%_server/debug/ballisticacore_server.py: \ assets/src/server/ballisticacore_server.py tools/batools/pcommand.py @tools/pcommand stage_server_file debug $< $@ -build/prefab/windows-server/debug/launch_ballisticacore_server.bat: \ +build/prefab/windows_%_server/debug/launch_ballisticacore_server.bat: \ assets/src/server/launch_ballisticacore_server.bat tools/batools/pcommand.py @tools/pcommand stage_server_file debug $< $@ -build/prefab/windows-server/debug/config_template.yaml: \ +build/prefab/windows_%_server/debug/config_template.yaml: \ assets/src/server/config_template.yaml \ tools/batools/build.py \ tools/batools/pcommand.py \ tools/bacommon/servermanager.py @tools/pcommand stage_server_file debug $< $@ -build/prefab/windows-server/debug/README.txt: \ +build/prefab/windows_%_server/debug/README.txt: \ assets/src/server/README.txt @cp $< $@ -RUN_PREFAB_WINDOWS_SERVER_RELEASE = cd build/prefab/windows-server/release \ - && dist/python.exe -O ballisticacore_server.py +RUN_PREFAB_WINDOWS_X86_SERVER_RELEASE = cd \ + build/prefab/windows_x86_server/release \ + && dist/python.exe -O ballisticacore_server.py -prefab-windows-server-release: prefab-windows-server-release-build - @tools/pcommand ensure_prefab_platform windows - @{RUN_PREFAB_WINDOWS_SERVER_RELEASE} +prefab-windows-x86-server-release: prefab-windows-x86-server-release-build + @tools/pcommand ensure_prefab_platform windows_x86 + @{RUN_PREFAB_WINDOWS_X86_SERVER_RELEASE} -prefab-windows-server-release-build: prereqs \ - assets-windows-${PREFAB_WINDOWS_PLATFORM} \ - build/prefab/windows-server/release/dist/ballisticacore_headless.exe \ - build/prefab/windows-server/release/launch_ballisticacore_server.bat \ - build/prefab/windows-server/release/ballisticacore_server.py \ - build/prefab/windows-server/release/config_template.yaml \ - build/prefab/windows-server/release/README.txt - @${STAGE_ASSETS} -winserver-${PREFAB_WINDOWS_PLATFORM}-Release \ - build/prefab/windows-server/release/dist +prefab-windows-x86-server-release-build: prereqs \ + assets-windows-${WINPLAT_X86} \ + build/prefab/windows_x86_server/release/dist/ballisticacore_headless.exe \ + build/prefab/windows_x86_server/release/launch_ballisticacore_server.bat \ + build/prefab/windows_x86_server/release/ballisticacore_server.py \ + build/prefab/windows_x86_server/release/config_template.yaml \ + build/prefab/windows_x86_server/release/README.txt + @${STAGE_ASSETS} -winserver-${WINPLAT_X86}-Release \ + build/prefab/windows_x86_server/release/dist -build/prefab/windows-server/release/dist/ballisticacore_headless.exe: .efrocachemap +build/prefab/windows_x86_server/release/dist/ballisticacore_headless.exe: .efrocachemap @tools/pcommand efrocache_get $@ -build/prefab/windows-server/release/ballisticacore_server.py: \ +build/prefab/windows_%_server/release/ballisticacore_server.py: \ assets/src/server/ballisticacore_server.py tools/batools/pcommand.py @tools/pcommand stage_server_file release $< $@ -build/prefab/windows-server/release/launch_ballisticacore_server.bat: \ +build/prefab/windows_%_server/release/launch_ballisticacore_server.bat: \ assets/src/server/launch_ballisticacore_server.bat tools/batools/pcommand.py @tools/pcommand stage_server_file release $< $@ -build/prefab/windows-server/release/config_template.yaml: \ +build/prefab/windows_%_server/release/config_template.yaml: \ assets/src/server/config_template.yaml \ tools/batools/build.py \ tools/batools/pcommand.py \ tools/bacommon/servermanager.py @tools/pcommand stage_server_file release $< $@ -build/prefab/windows-server/release/README.txt: \ +build/prefab/windows_%_server/release/README.txt: \ assets/src/server/README.txt @cp $< $@ @@ -768,19 +863,12 @@ ENV_SRC = tools/pcommand tools/batools/build.py @mkdir -p .cache @touch .cache/checkenv -# Tell make which of these targets don't represent files. -.PHONY: - - -################################################################################ -# # -# Auxiliary # -# # -################################################################################ - # CMake build-type lowercase CM_BT_LC = $(shell echo $(CMAKE_BUILD_TYPE) | tr A-Z a-z) # When using CLion, our cmake dir is root. Expose .clang-format there too. ballisticacore-cmake/.clang-format: .clang-format @cd ballisticacore-cmake && ln -sf ../.clang-format . + +# Tell make which of these targets don't represent files. +.PHONY: diff --git a/ballisticacore-cmake/CMakeLists.txt b/ballisticacore-cmake/CMakeLists.txt index 967dbef0..4de0a9f7 100644 --- a/ballisticacore-cmake/CMakeLists.txt +++ b/ballisticacore-cmake/CMakeLists.txt @@ -186,5 +186,5 @@ target_include_directories(ballisticacore PRIVATE # NOTE: seems we need to add 'dl' here for raspberry pi with a manually # built Python 3.8. Might be able to remove later. target_link_libraries(ballisticacore PRIVATE - ballisticacore_private ode pthread ${Python_LIBRARIES} + ballisticacore_internal ode pthread ${Python_LIBRARIES} ${SDL2_LIBRARIES} ${EXTRA_LIBRARIES} dl) diff --git a/tools/batools/build.py b/tools/batools/build.py index f80e6d6c..2d09ee9b 100644 --- a/tools/batools/build.py +++ b/tools/batools/build.py @@ -455,19 +455,24 @@ def get_current_prefab_platform() -> str: 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. - return 'mac' + if machine == 'x86_64': + return 'mac_x86_64' + # TODO: add support for arm macs. + raise RuntimeError(f'make_prefab: unsupported mac machine type:' + f' {machine}.') if system == 'Linux': # If it looks like we're in Windows Subsystem for Linux, # go with the Windows version. if 'microsoft' in platform.uname().release.lower(): - return 'windows' + # TODO: add support for arm windows + if machine == 'x86_64': + return 'windows_x86' + raise RuntimeError(f'make_prefab: unsupported win machine type:' + f' {machine}.') - # We currently only support x86_64 linux. + # TODO: add support for arm linux. if machine == 'x86_64': - return 'linux' + return 'linux_x86_64' raise RuntimeError(f'make_prefab: unsupported linux machine type:' f' {machine}.') raise RuntimeError(f'make_prefab: unrecognized platform:' diff --git a/tools/batools/pcommand.py b/tools/batools/pcommand.py index 227f089a..722e1c85 100644 --- a/tools/batools/pcommand.py +++ b/tools/batools/pcommand.py @@ -34,6 +34,8 @@ def stage_server_file() -> None: print(f'Building server file: {os.path.basename(outfilename)}') + os.makedirs(os.path.dirname(outfilename), exist_ok=True) + basename = os.path.basename(infilename) if basename == 'config_template.yaml': # Inject all available config values into the config file. @@ -581,6 +583,9 @@ def make_prefab() -> None: raise RuntimeError('Expected one argument') target = batools.build.PrefabTarget(sys.argv[2]) platform = batools.build.get_current_prefab_platform() + + # We use dashes instead of underscores in target names. + platform = platform.replace('_', '-') try: subprocess.run(['make', f'prefab-{platform}-{target.value}-build'], check=True)