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,