cleaning up dummymodule generation

This commit is contained in:
Eric 2023-06-06 10:39:43 -07:00
parent a5cac1aa19
commit 503b802faf
No known key found for this signature in database
GPG Key ID: 89C93F0F8D6D5A98
14 changed files with 117 additions and 134 deletions

View File

@ -4080,18 +4080,18 @@
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/7b/c1/2dfb7c5fc6a31dd4ac4be9ef69bb", "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/7b/c1/2dfb7c5fc6a31dd4ac4be9ef69bb",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/af/9b/8de9876d0e3db5ccc49ce80c8e2a", "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/af/9b/8de9876d0e3db5ccc49ce80c8e2a",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/16/63/7bedf858ae0dc1e91acf76c1cbd6", "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/16/63/7bedf858ae0dc1e91acf76c1cbd6",
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/76/d8/e2d3ae9228e1dd7b8fdbfcb676e0", "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/b9/94/14e96f6497e7d79148194ee6a7cb",
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/cc/d0/f0c1c32c948f5349e91071107d9a", "build/prefab/full/mac_arm64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/cc/d0/f0c1c32c948f5349e91071107d9a",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/51/2c/23125061df4f8d2c62bac5787979", "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/4c/2e/475331e7531640a05e43b4a08120",
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/fc/34/1623d3a8d0ff13a71f819300c091", "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/fc/34/1623d3a8d0ff13a71f819300c091",
"build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/dd/8d/c73ee71bfd88d0af120ff17d551b", "build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/fb/bd/4395fa6dc06f077fe0cc5c5b4be1",
"build/prefab/full/mac_x86_64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/84/38/e6f2c8c7607161c76e7c2d65ffd1", "build/prefab/full/mac_x86_64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/84/38/e6f2c8c7607161c76e7c2d65ffd1",
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/7b/ea/d4b485f9f702619046631f74fcc2", "build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/18/4a/3df0a4f45e6aeb92341194b3405c",
"build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/08/dd/98f18c4d39850dafbf3efdfbc305", "build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/08/dd/98f18c4d39850dafbf3efdfbc305",
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "https://files.ballistica.net/cache/ba1/bb/dc/546b55bf1e7cfa297dbc74f3b335", "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "https://files.ballistica.net/cache/ba1/14/b1/12cff0cf6314c5476e6c7f6920a5",
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "https://files.ballistica.net/cache/ba1/83/8a/bb8485797aae51bca7edcf62dc96", "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "https://files.ballistica.net/cache/ba1/75/c7/48d7c37f280b875e398cb340f533",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "https://files.ballistica.net/cache/ba1/d1/2d/9850c8bc21b31c627386fa44c96a", "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "https://files.ballistica.net/cache/ba1/07/ea/fc994e8da3d8eb2d397a84e0c375",
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "https://files.ballistica.net/cache/ba1/b4/fb/efce666ea6a479f1310d9aa27300", "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "https://files.ballistica.net/cache/ba1/0f/08/4c5d8367112ee73bc9d239e2b05a",
"build/prefab/lib/linux_arm64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/98/32/43c61f1e11520f764158cf0e76d2", "build/prefab/lib/linux_arm64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/98/32/43c61f1e11520f764158cf0e76d2",
"build/prefab/lib/linux_arm64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/ca/65/cba463f21a8f76c5bbfe27cae124", "build/prefab/lib/linux_arm64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/ca/65/cba463f21a8f76c5bbfe27cae124",
"build/prefab/lib/linux_arm64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/73/20/119211f1700bb5a410cedf4e76f2", "build/prefab/lib/linux_arm64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/73/20/119211f1700bb5a410cedf4e76f2",
@ -4108,14 +4108,14 @@
"build/prefab/lib/mac_x86_64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/90/9b/94f733c3a48691e02240e04dc792", "build/prefab/lib/mac_x86_64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/90/9b/94f733c3a48691e02240e04dc792",
"build/prefab/lib/mac_x86_64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/2e/c7/873af48627997b6fab4b2c4ba6bc", "build/prefab/lib/mac_x86_64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/2e/c7/873af48627997b6fab4b2c4ba6bc",
"build/prefab/lib/mac_x86_64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/3a/94/4780fada10f0fc3f43a54f29c86f", "build/prefab/lib/mac_x86_64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/3a/94/4780fada10f0fc3f43a54f29c86f",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "https://files.ballistica.net/cache/ba1/e5/c9/1fafb53497e7d4ff19ecddc31d09", "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "https://files.ballistica.net/cache/ba1/4f/69/a8254d42f8347e4951fc479a1d39",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "https://files.ballistica.net/cache/ba1/98/26/04e281a4cfa6a334abcb7e79dcbe", "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "https://files.ballistica.net/cache/ba1/49/1a/d361e1f0f1d0d8f68fb2b3f8e2f5",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "https://files.ballistica.net/cache/ba1/46/8b/eaee1191df159ad37a437429bbd9", "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "https://files.ballistica.net/cache/ba1/33/34/524165a684cc56828dc7cb1be254",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "https://files.ballistica.net/cache/ba1/82/fc/bbd1be0784b9d4ad46aa7da5dc24", "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "https://files.ballistica.net/cache/ba1/45/9c/def4dc35037b5da3b43a85473cda",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "https://files.ballistica.net/cache/ba1/c7/e7/a74ee82202fb7ae828f5066d1c79", "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "https://files.ballistica.net/cache/ba1/6e/8b/60bbd66f58dd133af1904420905d",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "https://files.ballistica.net/cache/ba1/f5/c3/eac894e0bfaacf4ec4740d54869d", "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "https://files.ballistica.net/cache/ba1/e8/dd/0ed0c7ef302308d47c2e898f46f9",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "https://files.ballistica.net/cache/ba1/d1/9f/f5e35440c800af9f002c795a2814", "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "https://files.ballistica.net/cache/ba1/5c/13/53ebf825ed88053908d7952359f0",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "https://files.ballistica.net/cache/ba1/ff/fc/b6ff2a5bf8c73e1a5fa987944548", "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "https://files.ballistica.net/cache/ba1/c1/e4/c1a3657c0e255d5e348436b374c7",
"src/assets/ba_data/python/babase/_mgen/__init__.py": "https://files.ballistica.net/cache/ba1/52/c6/c11130af7b10d6c0321add5518fa", "src/assets/ba_data/python/babase/_mgen/__init__.py": "https://files.ballistica.net/cache/ba1/52/c6/c11130af7b10d6c0321add5518fa",
"src/assets/ba_data/python/babase/_mgen/enums.py": "https://files.ballistica.net/cache/ba1/38/c3/1dedd5e74f2508efc5974c8815a1", "src/assets/ba_data/python/babase/_mgen/enums.py": "https://files.ballistica.net/cache/ba1/38/c3/1dedd5e74f2508efc5974c8815a1",
"src/ballistica/base/mgen/pyembed/binding_base.inc": "https://files.ballistica.net/cache/ba1/4e/07/87dd93e7ef29b8b78d0b4791d6f8", "src/ballistica/base/mgen/pyembed/binding_base.inc": "https://files.ballistica.net/cache/ba1/4e/07/87dd93e7ef29b8b78d0b4791d6f8",

View File

@ -113,6 +113,7 @@
<w>appengine</w> <w>appengine</w>
<w>appiconset</w> <w>appiconset</w>
<w>appid</w> <w>appid</w>
<w>appintent</w>
<w>appintentsmetadataprocessor</w> <w>appintentsmetadataprocessor</w>
<w>appinvite</w> <w>appinvite</w>
<w>appkit</w> <w>appkit</w>
@ -121,12 +122,14 @@
<w>appletvos</w> <w>appletvos</w>
<w>appletvsimulator</w> <w>appletvsimulator</w>
<w>appmode</w> <w>appmode</w>
<w>appmodeselector</w>
<w>appname</w> <w>appname</w>
<w>appnameupper</w> <w>appnameupper</w>
<w>appnow</w> <w>appnow</w>
<w>appspot</w> <w>appspot</w>
<w>appstate</w> <w>appstate</w>
<w>appstore</w> <w>appstore</w>
<w>appsubsystem</w>
<w>apptime</w> <w>apptime</w>
<w>apptimer</w> <w>apptimer</w>
<w>apptimers</w> <w>apptimers</w>
@ -1546,6 +1549,7 @@
<w>libxm</w> <w>libxm</w>
<w>libxmu</w> <w>libxmu</w>
<w>libxz</w> <w>libxz</w>
<w>lifecyclelog</w>
<w>linbeast</w> <w>linbeast</w>
<w>lindex</w> <w>lindex</w>
<w>lindexorig</w> <w>lindexorig</w>
@ -1740,6 +1744,7 @@
<w>modders</w> <w>modders</w>
<w>modename</w> <w>modename</w>
<w>modestr</w> <w>modestr</w>
<w>modetype</w>
<w>modeval</w> <w>modeval</w>
<w>modpack</w> <w>modpack</w>
<w>modstr</w> <w>modstr</w>

112
Makefile
View File

@ -150,8 +150,10 @@ clean-list:
# Build/update dummy python modules. # Build/update dummy python modules.
# IMPORTANT - building this target can kick off full builds/cleans and so # IMPORTANT - building this target can kick off full builds/cleans and so
# it should not be built in parallel with other targets. # it should not be built in parallel with other targets.
# See py_check_prepass target for more info. # See py_check_prereqs target for more info.
dummymodules: build/dummymodules/.dummy_modules_state dummymodules: prereqs meta
@tools/pcommand lazybuild dummymodules_src $(LAZYBUILDDIR)/$@ \
rm -rf build/dummymodules \&\& ./tools/pcommand gen_dummy_modules
dummymodules-clean: dummymodules-clean:
rm -rf build/dummymodules rm -rf build/dummymodules
@ -698,7 +700,7 @@ format-makefile: prereqs
################################################################################ ################################################################################
# Run all project checks. (static analysis) # Run all project checks. (static analysis)
check: py_check_prepass check: py_check_prereqs
# TEMP - disabling some checks during 1.7.20 refactor. # TEMP - disabling some checks during 1.7.20 refactor.
@$(DMAKE) -j$(CPUS) update-check cpplint mypy @$(DMAKE) -j$(CPUS) update-check cpplint mypy
@tools/pcommand echo SGRN BLD ALL CHECKS PASSED! @tools/pcommand echo SGRN BLD ALL CHECKS PASSED!
@ -706,7 +708,7 @@ check: py_check_prepass
# @tools/pcommand echo SGRN BLD ALL CHECKS PASSED! # @tools/pcommand echo SGRN BLD ALL CHECKS PASSED!
# Same as check but no caching (all files are checked). # Same as check but no caching (all files are checked).
check-full: py_check_prepass check-full: py_check_prereqs
# TEMP - disabling some checks during 1.7.20 refactor. # TEMP - disabling some checks during 1.7.20 refactor.
@$(DMAKE) -j$(CPUS) update-check cpplint-full mypy-full @$(DMAKE) -j$(CPUS) update-check cpplint-full mypy-full
@tools/pcommand echo SGRN BLD ALL CHECKS PASSED! @tools/pcommand echo SGRN BLD ALL CHECKS PASSED!
@ -714,7 +716,7 @@ check-full: py_check_prepass
# @tools/pcommand echo SGRN BLD ALL CHECKS PASSED! # @tools/pcommand echo SGRN BLD ALL CHECKS PASSED!
# Same as 'check' plus optional/slow extra checks. # Same as 'check' plus optional/slow extra checks.
check2: py_check_prepass check2: py_check_prereqs
# TEMP - disabling some during 1.7.20 refactor. # TEMP - disabling some during 1.7.20 refactor.
@$(DMAKE) -j$(CPUS) update-check cpplint mypy @$(DMAKE) -j$(CPUS) update-check cpplint mypy
@tools/pcommand echo SGRN BLD ALL CHECKS PASSED! @tools/pcommand echo SGRN BLD ALL CHECKS PASSED!
@ -723,7 +725,7 @@ check2: py_check_prepass
# Same as check2 but no caching (all files are checked). # Same as check2 but no caching (all files are checked).
# TEMP - disabling some checks during 1.7.20 refactor. # TEMP - disabling some checks during 1.7.20 refactor.
check2-full: py_check_prepass check2-full: py_check_prereqs
@$(DMAKE) -j$(CPUS) update-check cpplint-full mypy-full @$(DMAKE) -j$(CPUS) update-check cpplint-full mypy-full
@tools/pcommand echo SGRN BLD ALL CHECKS PASSED! @tools/pcommand echo SGRN BLD ALL CHECKS PASSED!
# @$(DMAKE) -j$(CPUS) update-check cpplint-full pylint-full mypy-full \ # @$(DMAKE) -j$(CPUS) update-check cpplint-full pylint-full mypy-full \
@ -739,45 +741,42 @@ cpplint-full: prereqs meta
@tools/pcommand cpplint -full @tools/pcommand cpplint -full
# Run Pylint checks on all Python Code. # Run Pylint checks on all Python Code.
pylint: py_check_prepass pylint: py_check_prereqs
@tools/pcommand pylint @tools/pcommand pylint
# Run Pylint checks without caching (all files are checked). # Run Pylint checks without caching (all files are checked).
pylint-full: py_check_prepass pylint-full: py_check_prereqs
@tools/pcommand pylint -full @tools/pcommand pylint -full
# Run Mypy checks on all Python code. # Run Mypy checks on all Python code.
mypy: py_check_prepass mypy: py_check_prereqs
@tools/pcommand mypy @tools/pcommand mypy
# Run Mypy checks without caching (all files are checked). # Run Mypy checks without caching (all files are checked).
mypy-full: py_check_prepass mypy-full: py_check_prereqs
@tools/pcommand mypy -full @tools/pcommand mypy -full
# Run Mypy checks on all Python code using daemon mode. # Run Mypy checks on all Python code using daemon mode.
dmypy: py_check_prepass dmypy: py_check_prereqs
@tools/pcommand dmypy @tools/pcommand dmypy
# Stop the mypy daemon # Stop the mypy daemon
dmypy-stop: py_check_prepass dmypy-stop: py_check_prereqs
@tools/pcommand dmypy -stop @tools/pcommand dmypy -stop
# Run PyCharm checks on all Python code. # Run PyCharm checks on all Python code.
pycharm: py_check_prepass pycharm: py_check_prereqs
@tools/pcommand pycharm @tools/pcommand pycharm
# Run PyCharm checks without caching (all files are checked). # Run PyCharm checks without caching (all files are checked).
pycharm-full: py_check_prepass pycharm-full: py_check_prereqs
@tools/pcommand pycharm -full @tools/pcommand pycharm -full
# Run extra mypy checks with various dependency permutations. # Run extra mypy checks with various dependency permutations.
# ensures packages don't depend on thing they're not supposed to. # ensures packages don't depend on thing they're not supposed to.
depchecks: py_check_prepass depchecks: py_check_prereqs
@tools/pcommand depchecks @tools/pcommand depchecks
featuresettest: py_check_prepass
echo WOULD DO FS
# Build prerequisites needed for python checks. # Build prerequisites needed for python checks.
# #
# IMPORTANT - this target may kick off new meta/asset/binary builds/cleans as # IMPORTANT - this target may kick off new meta/asset/binary builds/cleans as
@ -790,63 +789,12 @@ featuresettest: py_check_prepass
# others (such as by the 'check-full' target) the parent target should # others (such as by the 'check-full' target) the parent target should
# explicitly built this beforehand to ensure it does not happen during the # explicitly built this beforehand to ensure it does not happen during the
# parallel part. # parallel part.
# Note to self: Originally prereqs and meta were listed as deps of py_check_prereqs: dummymodules
# .dummy_modules_state, but because prereqs has no output dependencies
# it always fires which meant dummy modules would get rebuilt every run.
# This config should do the right thing without violating the above rules.
py_check_prepass: prereqs meta
@$(MAKE) dummymodules
# The following section is auto-generated; do not edit by hand.
# __AUTOGENERATED_DUMMY_MODULES_BEGIN__
# Update dummy Python modules when source files contributing to them change.
build/dummymodules/.dummy_modules_state: \
src/ballistica/base/python/class/python_class_app_timer.cc \
src/ballistica/base/python/class/python_class_context_call.cc \
src/ballistica/base/python/class/python_class_context_ref.cc \
src/ballistica/base/python/class/python_class_display_timer.cc \
src/ballistica/base/python/class/python_class_feature_set_data.cc \
src/ballistica/base/python/class/python_class_simple_sound.cc \
src/ballistica/base/python/class/python_class_vec3.cc \
src/ballistica/base/python/methods/python_methods_app.cc \
src/ballistica/base/python/methods/python_methods_graphics.cc \
src/ballistica/base/python/methods/python_methods_misc.cc \
src/ballistica/classic/python/methods/python_methods_classic.cc \
src/ballistica/scene_v1/python/class/python_class_activity_data.cc \
src/ballistica/scene_v1/python/class/python_class_base_timer.cc \
src/ballistica/scene_v1/python/class/python_class_input_device.cc \
src/ballistica/scene_v1/python/class/python_class_material.cc \
src/ballistica/scene_v1/python/class/python_class_node.cc \
src/ballistica/scene_v1/python/class/python_class_scene_collision_mesh.cc \
src/ballistica/scene_v1/python/class/python_class_scene_data_asset.cc \
src/ballistica/scene_v1/python/class/python_class_scene_mesh.cc \
src/ballistica/scene_v1/python/class/python_class_scene_sound.cc \
src/ballistica/scene_v1/python/class/python_class_scene_texture.cc \
src/ballistica/scene_v1/python/class/python_class_scene_timer.cc \
src/ballistica/scene_v1/python/class/python_class_session_data.cc \
src/ballistica/scene_v1/python/class/python_class_session_player.cc \
src/ballistica/scene_v1/python/methods/python_methods_assets.cc \
src/ballistica/scene_v1/python/methods/python_methods_input.cc \
src/ballistica/scene_v1/python/methods/python_methods_networking.cc \
src/ballistica/scene_v1/python/methods/python_methods_scene.cc \
src/ballistica/template_fs/python/class/python_class_hello.cc \
src/ballistica/template_fs/python/methods/python_methods_template_fs.cc \
src/ballistica/ui_v1/python/class/python_class_ui_mesh.cc \
src/ballistica/ui_v1/python/class/python_class_ui_sound.cc \
src/ballistica/ui_v1/python/class/python_class_ui_texture.cc \
src/ballistica/ui_v1/python/class/python_class_widget.cc \
src/ballistica/ui_v1/python/methods/python_methods_ui_v1.cc
@tools/pcommand with_build_lock gen_dummy_modules_lock \
rm -rf build/dummymodules \&\& mkdir -p build/dummymodules \
\&\& ./tools/pcommand gen_dummy_modules \
\&\& touch build/dummymodules/.dummy_modules_state
# __AUTOGENERATED_DUMMY_MODULES_END__
# Tell make which of these targets don't represent files. # Tell make which of these targets don't represent files.
.PHONY: check check-full check2 check2-full \ .PHONY: check check-full check2 check2-full \
cpplint cpplint-full pylint pylint-full mypy \ cpplint cpplint-full pylint pylint-full mypy \
mypy-full dmypy dmypy-stop pycharm pycharm-full py_check_prepass mypy-full dmypy dmypy-stop pycharm pycharm-full py_check_prereqs
################################################################################ ################################################################################
@ -864,39 +812,35 @@ build/dummymodules/.dummy_modules_state: \
TEST_TARGET ?= tests TEST_TARGET ?= tests
# Run all tests. (live execution verification) # Run all tests. (live execution verification)
test: py_check_prepass test: py_check_prereqs
@tools/pcommand echo BLU Running all tests... @tools/pcommand echo BLU Running all tests...
@tools/pcommand pytest -v $(TEST_TARGET) @tools/pcommand pytest -v $(TEST_TARGET)
test-verbose: py_check_prepass test-verbose: py_check_prereqs
@tools/pcommand echo BLU Running all tests... @tools/pcommand echo BLU Running all tests...
@tools/pcommand pytest -o log_cli=true -o log_cli_level=debug -s -vv $(TEST_TARGET) @tools/pcommand pytest -o log_cli=true -o log_cli_level=debug \
-s -vv $(TEST_TARGET)
# Run tests with any caching disabled. # Run tests with any caching disabled.
test-full: test test-full: test
# Individual test with extra output enabled. # Shortcut to test efro.message only.
test-assetmanager:
@tools/pcommand pytest -o log_cli=true -o log_cli_level=debug -s -vv \
tests/test_babase/test_assetmanager.py::test_assetmanager
# Individual test with extra output enabled.
test-message: test-message:
@tools/pcommand pytest -o log_cli=true -o log_cli_level=debug -s -vv \ @tools/pcommand pytest -o log_cli=true -o log_cli_level=debug -s -vv \
tests/test_efro/test_message.py tests/test_efro/test_message.py
# Individual test with extra output enabled. # Shortcut to test efro.dataclassio only.
test-dataclassio: test-dataclassio:
@tools/pcommand pytest -o log_cli=true -o log_cli_level=debug -s -vv \ @tools/pcommand pytest -o log_cli=true -o log_cli_level=debug -s -vv \
tests/test_efro/test_dataclassio.py tests/test_efro/test_dataclassio.py
# Individual test with extra output enabled. # Shortcut to test efro.rpc only.
test-rpc: test-rpc:
@tools/pcommand pytest -o log_cli=true -o log_cli_level=debug -s -vv \ @tools/pcommand pytest -o log_cli=true -o log_cli_level=debug -s -vv \
tests/test_efro/test_rpc.py tests/test_efro/test_rpc.py
# Tell make which of these targets don't represent files. # Tell make which of these targets don't represent files.
.PHONY: test test-full test-assetmanager .PHONY: test test-verbose test-full test-message test-dataclassio test-rpc
################################################################################ ################################################################################

View File

@ -75,15 +75,18 @@
<w>apost</w> <w>apost</w>
<w>appcomponent</w> <w>appcomponent</w>
<w>appconfig</w> <w>appconfig</w>
<w>appintent</w>
<w>appintentsmetadataprocessor</w> <w>appintentsmetadataprocessor</w>
<w>appletvos</w> <w>appletvos</w>
<w>appletvsimulator</w> <w>appletvsimulator</w>
<w>appmode</w> <w>appmode</w>
<w>appmodeselector</w>
<w>appname</w> <w>appname</w>
<w>appnameupper</w> <w>appnameupper</w>
<w>appnow</w> <w>appnow</w>
<w>appspot</w> <w>appspot</w>
<w>appstate</w> <w>appstate</w>
<w>appsubsystem</w>
<w>apptime</w> <w>apptime</w>
<w>apptimer</w> <w>apptimer</w>
<w>apptimers</w> <w>apptimers</w>
@ -886,6 +889,7 @@
<w>libbzip</w> <w>libbzip</w>
<w>libutf</w> <w>libutf</w>
<w>libuuid</w> <w>libuuid</w>
<w>lifecyclelog</w>
<w>lightshad</w> <w>lightshad</w>
<w>linearsize</w> <w>linearsize</w>
<w>linearstep</w> <w>linearstep</w>
@ -994,6 +998,7 @@
<w>modder</w> <w>modder</w>
<w>modders</w> <w>modders</w>
<w>modelview</w> <w>modelview</w>
<w>modetype</w>
<w>modstr</w> <w>modstr</w>
<w>modtime</w> <w>modtime</w>
<w>moduletype</w> <w>moduletype</w>

View File

@ -25,7 +25,6 @@ if TYPE_CHECKING:
from typing import Any, Callable from typing import Any, Callable
from concurrent.futures import Future from concurrent.futures import Future
from efro.log import LogHandler
import babase import babase
from babase import AppIntent, AppMode, AppSubsystem from babase import AppIntent, AppMode, AppSubsystem
from babase._apputils import AppHealthMonitor from babase._apputils import AppHealthMonitor

View File

@ -8,7 +8,7 @@ from typing import TYPE_CHECKING
import _babase import _babase
if TYPE_CHECKING: if TYPE_CHECKING:
from babase._app import App pass
class AppSubsystem: class AppSubsystem:

View File

@ -31,7 +31,6 @@ def setup_asyncio() -> asyncio.AbstractEventLoop:
import _babase import _babase
import babase import babase
from babase._mgen.enums import TimeType
assert _babase.in_logic_thread() assert _babase.in_logic_thread()

View File

@ -20,9 +20,7 @@ from typing import TYPE_CHECKING
import _babase import _babase
if TYPE_CHECKING: if TYPE_CHECKING:
from typing import Sequence, Any pass
import babase
def on_app_bootstrapping_complete() -> None: def on_app_bootstrapping_complete() -> None:

View File

@ -8,7 +8,6 @@ import threading
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
if TYPE_CHECKING: if TYPE_CHECKING:
from typing import Any, Callable
import socket import socket
# Timeout for standard functions talking to the master-server/etc. # Timeout for standard functions talking to the master-server/etc.

View File

@ -103,12 +103,13 @@ class LazyBuildCategory(Enum):
META = 'meta_src' META = 'meta_src'
CMAKE = 'cmake_src' CMAKE = 'cmake_src'
WIN = 'win_src' WIN = 'win_src'
DUMMYMODULES = 'dummymodules_src'
def lazybuild(target: str, category: LazyBuildCategory, command: str) -> None: def lazybuild(target: str, category: LazyBuildCategory, command: str) -> None:
"""Run some lazybuild presets.""" """Run some lazybuild presets."""
# Everything possibly affecting meta builds. # Meta builds.
if category is LazyBuildCategory.META: if category is LazyBuildCategory.META:
LazyBuildContext( LazyBuildContext(
target=target, target=target,
@ -135,14 +136,14 @@ def lazybuild(target: str, category: LazyBuildCategory, command: str) -> None:
'tools/batoolsinternal', 'tools/batoolsinternal',
'config/featuresets', 'config/featuresets',
], ],
# Also enable an option to maintain a hash of all file paths # Maintain a hash of all srcpaths and do a full-clean
# in the above sets and do a full-clean whenever that changes. # whenever that changes. Takes care of orphaned files if a
# Takes care of orphaned files if remove a featureset/etc. # featureset is removed/etc.
manifest_file='.cache/lazybuild/meta_manifest', manifest_file=f'.cache/lazybuild/manifest_{category.value}',
command_fullclean='make meta-clean', command_fullclean='make meta-clean',
).run() ).run()
# Everything possibly affecting CMake builds. # CMake builds.
elif category is LazyBuildCategory.CMAKE: elif category is LazyBuildCategory.CMAKE:
LazyBuildContext( LazyBuildContext(
target=target, target=target,
@ -165,7 +166,7 @@ def lazybuild(target: str, category: LazyBuildCategory, command: str) -> None:
command=command, command=command,
).run() ).run()
# Everything possibly affecting Windows binary builds. # Windows binary builds.
elif category is LazyBuildCategory.WIN: elif category is LazyBuildCategory.WIN:
def _win_dirfilter(root: str, dirname: str) -> bool: def _win_dirfilter(root: str, dirname: str) -> bool:
@ -192,7 +193,7 @@ def lazybuild(target: str, category: LazyBuildCategory, command: str) -> None:
command=command, command=command,
).run() ).run()
# Everything possibly affecting resource builds. # Resource builds.
elif category is LazyBuildCategory.RESOURCES: elif category is LazyBuildCategory.RESOURCES:
LazyBuildContext( LazyBuildContext(
target=target, target=target,
@ -208,7 +209,7 @@ def lazybuild(target: str, category: LazyBuildCategory, command: str) -> None:
command=command, command=command,
).run() ).run()
# Everything possibly affecting asset builds. # Asset builds.
elif category is LazyBuildCategory.ASSETS: elif category is LazyBuildCategory.ASSETS:
def _filefilter(root: str, filename: str) -> bool: def _filefilter(root: str, filename: str) -> bool:
@ -234,6 +235,37 @@ def lazybuild(target: str, category: LazyBuildCategory, command: str) -> None:
filefilter=_filefilter, filefilter=_filefilter,
).run() ).run()
# Dummymodule builds.
elif category is LazyBuildCategory.DUMMYMODULES:
def _filefilter(root: str, filename: str) -> bool:
# In our C++ sources, only look at stuff with 'python' in the
# name.
if root.startswith('ballistica'):
return 'python' in filename
# In other srcpaths use everything.
return True
LazyBuildContext(
target=target,
# This category builds binaries and other crazy stuff
# so we definitely want to restrict to one at a time.
buildlockname=category.value,
srcpaths=[
'config/featuresets',
'tools/batools/dummymodule.py',
'src/ballistica',
],
command=command,
filefilter=_filefilter,
# Maintain a hash of all srcpaths and do a full-clean
# whenever that changes. Takes care of orphaned files if a
# featureset is removed/etc.
manifest_file=f'.cache/lazybuild/manifest_{category.value}',
command_fullclean='make dummymodules-clean',
).run()
else: else:
assert_never(category) assert_never(category)

View File

@ -886,7 +886,7 @@ class Generator:
outfile.write(out) outfile.write(out)
def generate(projroot: str) -> None: def generate_dummy_modules(projroot: str) -> None:
"""Generate all dummy-modules.""" """Generate all dummy-modules."""
from batools.featureset import FeatureSet from batools.featureset import FeatureSet
@ -970,6 +970,8 @@ def generate(projroot: str) -> None:
featuresets = [f for f in featuresets if f.has_native_python_module] featuresets = [f for f in featuresets if f.has_native_python_module]
mnames: list[str] = [fs.name_python_binary_module for fs in featuresets] mnames: list[str] = [fs.name_python_binary_module for fs in featuresets]
os.makedirs('build/dummymodules', exist_ok=True)
gencount = 0 gencount = 0
for mname in mnames: for mname in mnames:
gencount += 1 gencount += 1

View File

@ -979,12 +979,12 @@ def gen_python_init_module() -> None:
def gen_dummy_modules() -> None: def gen_dummy_modules() -> None:
"""Generate all dummy modules.""" """Generate all dummy modules."""
from efro.error import CleanError from efro.error import CleanError
from batools.dummymodule import generate from batools.dummymodule import generate_dummy_modules
if len(sys.argv) != 2: if len(sys.argv) != 2:
raise CleanError(f'Expected no args; got {len(sys.argv)-2}.') raise CleanError(f'Expected no args; got {len(sys.argv)-2}.')
generate(projroot=str(PROJROOT)) generate_dummy_modules(projroot=str(PROJROOT))
def version() -> None: def version() -> None:

View File

@ -21,17 +21,24 @@ def generate_top_level_makefile(projroot: str, existing_data: str) -> str:
assert isinstance(public, bool) assert isinstance(public, bool)
original = existing_data original = existing_data
lines = original.splitlines()
auto_start = lines.index('# __AUTOGENERATED_DUMMY_MODULES_BEGIN__') # NOTE: no longer doing this; our dummy module generation stuff is
auto_end = lines.index('# __AUTOGENERATED_DUMMY_MODULES_END__') # now a nice static lazybuild target. Can remove this whole file
# soon if no other uses for it come up.
if bool(False):
lines = original.splitlines()
our_lines = [ auto_start = lines.index('# __AUTOGENERATED_DUMMY_MODULES_BEGIN__')
_get_dummy_module_target(projroot), auto_end = lines.index('# __AUTOGENERATED_DUMMY_MODULES_END__')
]
filtered = lines[: auto_start + 1] + our_lines + lines[auto_end:] our_lines = [
out = '\n'.join(filtered) + '\n' _get_dummy_module_target(projroot),
]
filtered = lines[: auto_start + 1] + our_lines + lines[auto_end:]
out = '\n'.join(filtered) + '\n'
else:
out = original
return out return out

View File

@ -86,13 +86,6 @@ class LazyBuildContext:
# as dependency relationships in a Makefile. # as dependency relationships in a Makefile.
self.srcpaths_fullclean = srcpaths_fullclean self.srcpaths_fullclean = srcpaths_fullclean
self.command_fullclean = command_fullclean self.command_fullclean = command_fullclean
if (self.srcpaths_fullclean is None) != (
self.command_fullclean is None
):
raise RuntimeError(
'Must provide both srcpaths_fullclean and'
' command_fullclean together'
)
# We also support a 'manifest' file which is a hash of all filenames # We also support a 'manifest' file which is a hash of all filenames
# processed as part of srcpaths OR srcpaths_fullclean. If defined, # processed as part of srcpaths OR srcpaths_fullclean. If defined,