From 2aa9a0761cab4b01ae4ea9059cee508002622b58 Mon Sep 17 00:00:00 2001 From: Eric Date: Fri, 21 Jul 2023 17:01:38 -0700 Subject: [PATCH] more build-staging cleanup --- .efrocachemap | 56 +++++++++---------- .idea/dictionaries/ericf.xml | 1 + CHANGELOG.md | 5 +- Makefile | 55 +++++++++--------- .../.idea/dictionaries/ericf.xml | 1 + src/assets/ba_data/python/baenv.py | 2 +- src/ballistica/shared/ballistica.cc | 2 +- tools/batools/pcommand.py | 8 +-- tools/batools/{assetstaging.py => staging.py} | 48 ++++++++++++---- tools/pcommand | 2 +- 10 files changed, 105 insertions(+), 75 deletions(-) rename tools/batools/{assetstaging.py => staging.py} (94%) diff --git a/.efrocachemap b/.efrocachemap index 8e0d0b44..e82becc8 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -4068,26 +4068,26 @@ "build/assets/windows/Win32/ucrtbased.dll": "https://files.ballistica.net/cache/ba1/2d/ef/5335207d41b21b9823f6805997f1", "build/assets/windows/Win32/vc_redist.x86.exe": "https://files.ballistica.net/cache/ba1/b0/8a/55e2e77623fe657bea24f223a3ae", "build/assets/windows/Win32/vcruntime140d.dll": "https://files.ballistica.net/cache/ba1/86/5b/2af4d1e26a1a8073c89acb06e599", - "build/prefab/full/linux_arm64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/9a/27/5ecfac5a3f4e751d51c8bfb4e772", - "build/prefab/full/linux_arm64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/92/cc/f15a2fad7ecad65578ed4fac4fca", - "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/12/15/a2a1fe203c2ec448848dd3cf7ac8", - "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/b4/47/95c432c3548163ab0ec4e84e0b49", - "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/ee/d2/158aa46106769481440dc572b2d5", - "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/98/a4/72f19c208a8842236bc248fbe12d", - "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/6b/ff/bf7b938550903cb87d233d72123c", - "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/c4/ae/b18c48d389ed094829d85df99141", - "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/36/70/a48665b4e9fc95c5048d37ceda10", - "build/prefab/full/mac_arm64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/f1/87/bf17fd40403a3fbf0160329b781b", - "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/36/df/7a930d67675b68eebe2dea0055dc", - "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/3c/e4/ae2111021df1f645fdf02d66649a", - "build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/e6/70/c94e624d323ceae53dc2dd3f3f18", - "build/prefab/full/mac_x86_64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/bc/ba/84e7697465c0bf0240dbea3910cd", - "build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/1f/ad/5c8e05d32497583ec671ec76d01b", - "build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/87/b2/dbe632dc379a3b48cb61790c99c9", - "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "https://files.ballistica.net/cache/ba1/44/26/b547190b5d7a4bbfb46ef8ee129b", - "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "https://files.ballistica.net/cache/ba1/ea/16/a0996502c6deb241746cf870e630", - "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "https://files.ballistica.net/cache/ba1/58/95/9edc949fcca9b0b6400b79f374b9", - "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "https://files.ballistica.net/cache/ba1/6d/18/c9e66cc27724298d0e9101801fb1", + "build/prefab/full/linux_arm64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/53/c4/44d44aa135b4379ca6068c3bbe05", + "build/prefab/full/linux_arm64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/79/76/a29421bf10ff5b69d388717af8d8", + "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/08/17/01d2f5b460c5e7718fcde4879c98", + "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/2d/b3/1aed611902b9a3900318ca2c7d7f", + "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/9f/72/ef529885376574b51fac22f6b1cf", + "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/a9/9e/92b0800bee6e506d8fc99ffdad43", + "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/0d/b9/8ccbe1c0bc855bc1250586ead87b", + "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/de/24/3f6d45d7befc5f23046b90148821", + "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/bf/23/0ebf3b18a7e0d0094db4172b2e48", + "build/prefab/full/mac_arm64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/b7/89/4348c3a88d0fa6829276c2bb48b7", + "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/48/5d/f3b9de867fab2277f9df097b0766", + "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/52/93/f9e1062e92b630f3c6814611b74a", + "build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/e1/41/f7a06d879c76ad38b35750662401", + "build/prefab/full/mac_x86_64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/82/07/b4f4fffb9bc622ecc904d34dec89", + "build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/c8/59/5c88827ab3bf0626147fe4e235d8", + "build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/40/5f/e4011c7265c98420a4b1debb60d9", + "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "https://files.ballistica.net/cache/ba1/55/49/6c82cd310136d8574553bd8438f2", + "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "https://files.ballistica.net/cache/ba1/f5/bd/a764be2a4b5a18c2681e92e760a2", + "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "https://files.ballistica.net/cache/ba1/ec/a4/43a8bb2f9766ca14bd59ee23bd6a", + "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "https://files.ballistica.net/cache/ba1/75/55/2bb73fb2a212123ab0d3575d7852", "build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "https://files.ballistica.net/cache/ba1/4e/69/3d3715ffb88e61962dff80e52fa0", "build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "https://files.ballistica.net/cache/ba1/df/78/f138dbf92a93dcd647831fb8fde4", "build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "https://files.ballistica.net/cache/ba1/4e/69/3d3715ffb88e61962dff80e52fa0", @@ -4104,14 +4104,14 @@ "build/prefab/lib/mac_x86_64_gui/release/libballisticaplus.a": "https://files.ballistica.net/cache/ba1/84/7d/952ba7e47c98635853b6b3e046fa", "build/prefab/lib/mac_x86_64_server/debug/libballisticaplus.a": "https://files.ballistica.net/cache/ba1/ad/de/141e3f5ea646f9d359a7edc40524", "build/prefab/lib/mac_x86_64_server/release/libballisticaplus.a": "https://files.ballistica.net/cache/ba1/84/7d/952ba7e47c98635853b6b3e046fa", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "https://files.ballistica.net/cache/ba1/3b/0c/26b8ce2c3994335e9bd74f523672", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "https://files.ballistica.net/cache/ba1/8b/c9/545467208d448d58d5ae4b87eaaa", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "https://files.ballistica.net/cache/ba1/52/04/5dca28c4fc2468a4e19a81492378", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "https://files.ballistica.net/cache/ba1/fa/da/6e414ccb08dfd81002047aa42707", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "https://files.ballistica.net/cache/ba1/f4/d5/95557f6451ae3b224cd37abe6569", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "https://files.ballistica.net/cache/ba1/b5/47/134b17d85ede3ace38682ed3ca07", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "https://files.ballistica.net/cache/ba1/a4/42/8724729ab30f005f94d4e78a6f50", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "https://files.ballistica.net/cache/ba1/3d/b2/e9cb853106006e721f828540574f", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "https://files.ballistica.net/cache/ba1/d7/c9/a00dd6d4a2986cfefa0c06332aa3", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "https://files.ballistica.net/cache/ba1/41/06/ecdf5ec3fd7c800f19dd1ff64fde", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "https://files.ballistica.net/cache/ba1/72/12/cf4c4553a377422f7abf59842454", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "https://files.ballistica.net/cache/ba1/f3/e6/f2a579f8c67d57a27161df687773", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "https://files.ballistica.net/cache/ba1/ab/ce/c58c2c29139fda41758d95002e6c", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "https://files.ballistica.net/cache/ba1/43/ff/17cfafaf235f8d83b7cefe21c52d", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "https://files.ballistica.net/cache/ba1/ec/b9/e4347a41daedceeee53296cdc1e5", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "https://files.ballistica.net/cache/ba1/2f/60/c85447897afec670b15957f191fb", "src/assets/ba_data/python/babase/_mgen/__init__.py": "https://files.ballistica.net/cache/ba1/f8/85/fed7f2ed98ff2ba271f9dbe3391c", "src/assets/ba_data/python/babase/_mgen/enums.py": "https://files.ballistica.net/cache/ba1/f8/cd/3af311ac63147882590123b78318", "src/ballistica/base/mgen/pyembed/binding_base.inc": "https://files.ballistica.net/cache/ba1/3e/7a/203e2a5d2b5bb42cfe3fd2fe16c2", diff --git a/.idea/dictionaries/ericf.xml b/.idea/dictionaries/ericf.xml index 9c646237..326d872d 100644 --- a/.idea/dictionaries/ericf.xml +++ b/.idea/dictionaries/ericf.xml @@ -2837,6 +2837,7 @@ swipsound sylw symlinked + symlinking syncable syncall syncalllist diff --git a/CHANGELOG.md b/CHANGELOG.md index dfa5a630..cfd848be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -### 1.7.24 (build 21185, api 8, 2023-07-21) +### 1.7.24 (build 21186, api 8, 2023-07-21) - Due to the cleanup done in 1.7.20, it is now possible to build and run Ballistica as a 'pure' Python app consisting of binary Python modules loaded @@ -31,6 +31,9 @@ - `FeatureSet.has_native_python_module` has been renamed to `FeatureSet.has_python_binary_module` for better consistency with related functionality. +- Renamed `stage_assets` to `stage_build` and the module it lives in from + `assetstaging` to simply `staging`. The staging stuff now covers more things + than simply asset files so this is a more accurate name. ### 1.7.23 (build 21178, api 8, 2023-07-19) diff --git a/Makefile b/Makefile index 547feabd..058cd2b4 100644 --- a/Makefile +++ b/Makefile @@ -243,11 +243,11 @@ prefab-mac-arm64-gui-debug: prefab-mac-arm64-gui-debug-build prefab-mac-x86-64-gui-debug-build: prereqs assets-cmake \ build/prefab/full/mac_x86_64_gui/debug/ballisticakit - @$(STAGE_ASSETS) -cmake -debug build/prefab/full/mac_x86_64_gui/debug + @$(STAGE_BUILD) -cmake -debug build/prefab/full/mac_x86_64_gui/debug prefab-mac-arm64-gui-debug-build: prereqs assets-cmake \ build/prefab/full/mac_arm64_gui/debug/ballisticakit - @$(STAGE_ASSETS) -cmake -debug build/prefab/full/mac_arm64_gui/debug + @$(STAGE_BUILD) -cmake -debug build/prefab/full/mac_arm64_gui/debug build/prefab/full/mac_%_gui/debug/ballisticakit: .efrocachemap @tools/pcommand efrocache_get $@ @@ -273,11 +273,11 @@ prefab-mac-arm64-gui-release: prefab-mac-arm64-gui_release-build prefab-mac-x86-64-gui-release-build: prereqs assets-cmake \ build/prefab/full/mac_x86_64_gui/release/ballisticakit - @$(STAGE_ASSETS) -cmake -release build/prefab/full/mac_x86_64_gui/release + @$(STAGE_BUILD) -cmake -release build/prefab/full/mac_x86_64_gui/release prefab-mac-arm64-gui-release-build: prereqs assets-cmake \ build/prefab/full/mac_arm64_gui/release/ballisticakit - @$(STAGE_ASSETS) -cmake -release build/prefab/full/mac_arm64_gui/release + @$(STAGE_BUILD) -cmake -release build/prefab/full/mac_arm64_gui/release build/prefab/full/mac_%_gui/release/ballisticakit: .efrocachemap @tools/pcommand efrocache_get $@ @@ -303,11 +303,11 @@ prefab-mac-arm64-server-debug: prefab-mac-arm64-server-debug-build prefab-mac-x86-64-server-debug-build: prereqs assets-server \ build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless - @$(STAGE_ASSETS) -cmakeserver -debug build/prefab/full/mac_x86_64_server/debug + @$(STAGE_BUILD) -cmakeserver -debug build/prefab/full/mac_x86_64_server/debug prefab-mac-arm64-server-debug-build: prereqs assets-server \ build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless - @$(STAGE_ASSETS) -cmakeserver -debug build/prefab/full/mac_arm64_server/debug + @$(STAGE_BUILD) -cmakeserver -debug build/prefab/full/mac_arm64_server/debug build/prefab/full/mac_%_server/debug/dist/ballisticakit_headless: .efrocachemap @tools/pcommand efrocache_get $@ @@ -333,12 +333,12 @@ prefab-mac-arm64-server-release: prefab-mac-arm64-server-release-build prefab-mac-x86-64-server-release-build: prereqs assets-server \ build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless - @$(STAGE_ASSETS) -cmakeserver -release \ + @$(STAGE_BUILD) -cmakeserver -release \ build/prefab/full/mac_x86_64_server/release prefab-mac-arm64-server-release-build: prereqs assets-server \ build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless - @$(STAGE_ASSETS) -cmakeserver -release \ + @$(STAGE_BUILD) -cmakeserver -release \ build/prefab/full/mac_arm64_server/release build/prefab/full/mac_%_server/release/dist/ballisticakit_headless: .efrocachemap @@ -365,11 +365,11 @@ prefab-linux-arm64-gui-debug: prefab-linux-arm64-gui-debug-build prefab-linux-x86-64-gui-debug-build: prereqs assets-cmake \ build/prefab/full/linux_x86_64_gui/debug/ballisticakit - @$(STAGE_ASSETS) -cmake -debug build/prefab/full/linux_x86_64_gui/debug + @$(STAGE_BUILD) -cmake -debug build/prefab/full/linux_x86_64_gui/debug prefab-linux-arm64-gui-debug-build: prereqs assets-cmake \ build/prefab/full/linux_arm64_gui/debug/ballisticakit - @$(STAGE_ASSETS) -cmake -debug build/prefab/full/linux_arm64_gui/debug + @$(STAGE_BUILD) -cmake -debug build/prefab/full/linux_arm64_gui/debug build/prefab/full/linux_%_gui/debug/ballisticakit: .efrocachemap @tools/pcommand efrocache_get $@ @@ -395,11 +395,11 @@ prefab-linux-arm64-gui-release: prefab-linux-arm64-gui-release-build prefab-linux-x86-64-gui-release-build: prereqs assets-cmake \ build/prefab/full/linux_x86_64_gui/release/ballisticakit - @$(STAGE_ASSETS) -cmake -release build/prefab/full/linux_x86_64_gui/release + @$(STAGE_BUILD) -cmake -release build/prefab/full/linux_x86_64_gui/release prefab-linux-arm64-gui-release-build: prereqs assets-cmake \ build/prefab/full/linux_arm64_gui/release/ballisticakit - @$(STAGE_ASSETS) -cmake -release build/prefab/full/linux_arm64_gui/release + @$(STAGE_BUILD) -cmake -release build/prefab/full/linux_arm64_gui/release build/prefab/full/linux_%_gui/release/ballisticakit: .efrocachemap @tools/pcommand efrocache_get $@ @@ -425,12 +425,12 @@ prefab-linux-arm64-server-debug: prefab-linux-arm64-server-debug-build prefab-linux-x86-64-server-debug-build: prereqs assets-server \ build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless - @$(STAGE_ASSETS) -cmakeserver -debug \ + @$(STAGE_BUILD) -cmakeserver -debug \ build/prefab/full/linux_x86_64_server/debug prefab-linux-arm64-server-debug-build: prereqs assets-server \ build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless - @$(STAGE_ASSETS) -cmakeserver -debug \ + @$(STAGE_BUILD) -cmakeserver -debug \ build/prefab/full/linux_arm64_server/debug build/prefab/full/linux_%_server/debug/dist/ballisticakit_headless: .efrocachemap @@ -457,12 +457,12 @@ prefab-linux-arm64-server-release: prefab-linux-arm64-server-release-build prefab-linux-x86-64-server-release-build: prereqs assets-server \ build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless - @$(STAGE_ASSETS) -cmakeserver -release \ + @$(STAGE_BUILD) -cmakeserver -release \ build/prefab/full/linux_x86_64_server/release prefab-linux-arm64-server-release-build: prereqs assets-server \ build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless - @$(STAGE_ASSETS) -cmakeserver -release \ + @$(STAGE_BUILD) -cmakeserver -release \ build/prefab/full/linux_arm64_server/release build/prefab/full/linux_%_server/release/dist/ballisticakit_headless: .efrocachemap @@ -482,7 +482,7 @@ prefab-windows-x86-gui-debug: prefab-windows-x86-gui-debug-build prefab-windows-x86-gui-debug-build: prereqs assets-windows-$(WINPLAT_X86) \ build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe - @$(STAGE_ASSETS) -win-$(WINPLAT_X86) -debug \ + @$(STAGE_BUILD) -win-$(WINPLAT_X86) -debug \ build/prefab/full/windows_x86_gui/debug build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe: .efrocachemap @@ -506,7 +506,7 @@ prefab-windows-x86-gui-release: prefab-windows-x86-gui-release-build prefab-windows-x86-gui-release-build: prereqs \ assets-windows-$(WINPLAT_X86) \ build/prefab/full/windows_x86_gui/release/BallisticaKit.exe - @$(STAGE_ASSETS) -win-$(WINPLAT_X86) -release \ + @$(STAGE_BUILD) -win-$(WINPLAT_X86) -release \ build/prefab/full/windows_x86_gui/release build/prefab/full/windows_x86_gui/release/BallisticaKit.exe: .efrocachemap @@ -531,7 +531,7 @@ prefab-windows-x86-server-debug: prefab-windows-x86-server-debug-build prefab-windows-x86-server-debug-build: prereqs \ assets-windows-$(WINPLAT_X86) \ build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe - @$(STAGE_ASSETS) -winserver-$(WINPLAT_X86) -debug \ + @$(STAGE_BUILD) -winserver-$(WINPLAT_X86) -debug \ build/prefab/full/windows_x86_server/debug build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe: .efrocachemap @@ -556,7 +556,7 @@ prefab-windows-x86-server-release: prefab-windows-x86-server-release-build prefab-windows-x86-server-release-build: prereqs \ assets-windows-$(WINPLAT_X86) \ build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe - @$(STAGE_ASSETS) -winserver-$(WINPLAT_X86) -release \ + @$(STAGE_BUILD) -winserver-$(WINPLAT_X86) -release \ build/prefab/full/windows_x86_server/release build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe: .efrocachemap @@ -931,7 +931,7 @@ WINDOWS_CONFIGURATION ?= Debug # Stage assets and other files so a built binary will run. windows-staging: assets-windows resources meta - $(STAGE_ASSETS) -win-$(WINPLT) -$(WINCFGLC) \ + $(STAGE_BUILD) -win-$(WINPLT) -$(WINCFGLC) \ build/windows/$(WINCFG)_$(WINPLT) # Build and run a debug windows build (from WSL). @@ -1026,7 +1026,7 @@ cmake-lldb: cmake-build # Build but don't run it. cmake-build: assets-cmake resources cmake-binary - @$(STAGE_ASSETS) -cmake -$(CM_BT_LC) build/cmake/$(CM_BT_LC) + @$(STAGE_BUILD) -cmake -$(CM_BT_LC) build/cmake/$(CM_BT_LC) @tools/pcommand echo BLD Build complete: BLU build/cmake/$(CM_BT_LC) cmake-binary: meta @@ -1044,7 +1044,7 @@ cmake-server: cmake-server-build @cd build/cmake/server-$(CM_BT_LC) && ./ballisticakit_server cmake-server-build: assets-server meta cmake-server-binary - @$(STAGE_ASSETS) -cmakeserver -$(CM_BT_LC) build/cmake/server-$(CM_BT_LC) + @$(STAGE_BUILD) -cmakeserver -$(CM_BT_LC) build/cmake/server-$(CM_BT_LC) @tools/pcommand echo BLD \ Server build complete: BLU build/cmake/server-$(CM_BT_LC) @@ -1061,7 +1061,8 @@ cmake-server-clean: rm -rf build/cmake/server-$(CM_BT_LC) cmake-modular-build: assets-cmake meta cmake-modular-binary - @$(STAGE_ASSETS) -cmakemodular -$(CM_BT_LC) \ + @$(STAGE_BUILD) -cmakemodular -$(CM_BT_LC) \ + -builddir build/cmake/modular-$(CM_BT_LC) \ build/cmake/modular-$(CM_BT_LC)/staged @tools/pcommand echo BLD \ Modular build complete: BLU build/cmake/modular-$(CM_BT_LC)/staged @@ -1082,8 +1083,8 @@ cmake-modular-clean: # Stage assets for building/running within CLion. clion-staging: assets-cmake resources meta - $(STAGE_ASSETS) -cmake -debug build/clion_debug - $(STAGE_ASSETS) -cmake -release build/clion_release + $(STAGE_BUILD) -cmake -debug build/clion_debug + $(STAGE_BUILD) -cmake -release build/clion_release # Tell make which of these targets don't represent files. .PHONY: cmake cmake-build cmake-clean cmake-server cmake-server-build \ @@ -1114,7 +1115,7 @@ VERSION = $(shell tools/pcommand version version) BUILD_NUMBER = $(shell tools/pcommand version build) BUILD_DIR = $(PROJ_DIR)/build LAZYBUILDDIR = .cache/lazybuild -STAGE_ASSETS = $(PROJ_DIR)/tools/pcommand stage_assets +STAGE_BUILD = $(PROJ_DIR)/tools/pcommand stage_build # Things to ignore when doing root level cleans. Note that we exclude build # and just blow that away manually; it might contain git repos or other things diff --git a/ballisticakit-cmake/.idea/dictionaries/ericf.xml b/ballisticakit-cmake/.idea/dictionaries/ericf.xml index 1d8e0e06..a5ad63fe 100644 --- a/ballisticakit-cmake/.idea/dictionaries/ericf.xml +++ b/ballisticakit-cmake/.idea/dictionaries/ericf.xml @@ -1662,6 +1662,7 @@ swiftgeneratepch swiftmergegeneratedheaders symbolification + symlinking syscall syscalls sysresponse diff --git a/src/assets/ba_data/python/baenv.py b/src/assets/ba_data/python/baenv.py index 27928439..c7cb6df7 100644 --- a/src/assets/ba_data/python/baenv.py +++ b/src/assets/ba_data/python/baenv.py @@ -51,7 +51,7 @@ if TYPE_CHECKING: # Build number and version of the ballistica binary we expect to be # using. -TARGET_BALLISTICA_BUILD = 21185 +TARGET_BALLISTICA_BUILD = 21186 TARGET_BALLISTICA_VERSION = '1.7.24' diff --git a/src/ballistica/shared/ballistica.cc b/src/ballistica/shared/ballistica.cc index ed4f59c4..5bc9636e 100644 --- a/src/ballistica/shared/ballistica.cc +++ b/src/ballistica/shared/ballistica.cc @@ -39,7 +39,7 @@ auto main(int argc, char** argv) -> int { namespace ballistica { // These are set automatically via script; don't modify them here. -const int kEngineBuildNumber = 21185; +const int kEngineBuildNumber = 21186; const char* kEngineVersion = "1.7.24"; #if BA_MONOLITHIC_BUILD diff --git a/tools/batools/pcommand.py b/tools/batools/pcommand.py index 46475442..758989e7 100644 --- a/tools/batools/pcommand.py +++ b/tools/batools/pcommand.py @@ -804,15 +804,13 @@ def efro_gradle() -> None: sys.exit(1) -def stage_assets() -> None: +def stage_build() -> None: """Stage assets for a build.""" - import batools.assetstaging + import batools.staging from efro.error import CleanError try: - batools.assetstaging.stage_assets( - projroot=str(PROJROOT), args=sys.argv[2:] - ) + batools.staging.stage_build(projroot=str(PROJROOT), args=sys.argv[2:]) except CleanError as exc: exc.pretty_print() sys.exit(1) diff --git a/tools/batools/assetstaging.py b/tools/batools/staging.py similarity index 94% rename from tools/batools/assetstaging.py rename to tools/batools/staging.py index 490c01a6..55772619 100755 --- a/tools/batools/assetstaging.py +++ b/tools/batools/staging.py @@ -11,7 +11,7 @@ import subprocess from functools import partial from typing import TYPE_CHECKING -from efrotools import PYVER +from efrotools import PYVER, extract_arg, extract_flag if TYPE_CHECKING: pass @@ -25,7 +25,7 @@ if TYPE_CHECKING: OPT_PYC_SUFFIX = 'cpython-' + PYVER.replace('.', '') + '.opt-1.pyc' -def stage_assets(projroot: str, args: list[str] | None = None) -> None: +def stage_build(projroot: str, args: list[str] | None = None) -> None: """Stage assets for a build.""" if args is None: @@ -62,6 +62,8 @@ class AssetStager: self.tex_suffix: str | None = None self.is_payload_full = False self.debug: bool | None = None + self.builddir: str | None = None + self.dist_mode: bool = False def run(self, args: list[str]) -> None: """Do the thing.""" @@ -105,6 +107,17 @@ class AssetStager: raise RuntimeError('Expected at least one argument.') platform_arg = args[0] + # First, look for a few optional args: + + # Some build types require a build dir to pull stuff from beyond + # the normal assets dir. + self.builddir = extract_arg(args, '-builddir') + + # In some cases we behave differently when building a 'dist' + # version compared to a regular version; copying files in instead + # of symlinking them/etc. + self.dist_mode = extract_flag(args, '-dist') + # Require either -debug or -release in args. if '-debug' in args: self.debug = True @@ -512,18 +525,31 @@ class AssetStager: if not os.path.exists(dylib_staging_dir): os.makedirs(dylib_staging_dir, exist_ok=True) - # Create a symlink to our original built so. NOTE: Anyone - # building final app packages/etc. should replace this with the - # actual file. This is just for development. + # Create a symlink to our original built so. (or copy the actual + # file for dist mode) - # FIXME - currently assuming our built .so lives one dir above - # our staging dir; should not be making that assumption. - built_so_path = f'{self.dst}/../{soname}' + if self.builddir is None: + raise RuntimeError("This staging type requires '-builddir' arg.") + + built_so_path = f'{self.builddir}/{soname}' staged_so_path = f'{dylib_staging_dir}/{soname}' - if not os.path.islink(staged_so_path): - relpath = os.path.relpath(built_so_path, dylib_staging_dir) - subprocess.run(['ln', '-sf', relpath, staged_so_path], check=True) + # Copy the file in for dist mode; otherwise set up a symlink for + # faster iteration. + if self.dist_mode: + # Blow away any symlink. + if os.path.islink(staged_so_path): + os.unlink(staged_so_path) + if not os.path.isfile(staged_so_path): + subprocess.run( + ['cp', built_so_path, staged_so_path], check=True + ) + else: + if not os.path.islink(staged_so_path): + relpath = os.path.relpath(built_so_path, dylib_staging_dir) + subprocess.run( + ['ln', '-sf', relpath, staged_so_path], check=True + ) # Ok, now we want to create symlinks for each of our featureset # Python modules. All of our stuff lives in the same .so and we diff --git a/tools/pcommand b/tools/pcommand index 21c45233..71d93675 100755 --- a/tools/pcommand +++ b/tools/pcommand @@ -97,7 +97,7 @@ from batools.pcommand import ( make_prefab, lazybuild, efro_gradle, - stage_assets, + stage_build, update_project, cmake_prep_dir, gen_binding_code,