mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-01-19 21:37:57 +08:00
Tidying and updates for mypy 0.9
This commit is contained in:
parent
09feb854dc
commit
2b6d627b6a
@ -3933,26 +3933,26 @@
|
||||
"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",
|
||||
"ballisticacore-windows/Generic/BallisticaCore.ico": "https://files.ballistica.net/cache/ba1/89/c0/e32c7d2a35dc9aef57cc73b0911a",
|
||||
"build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/e8/15/872df30172235c867eda63d89589",
|
||||
"build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/b0/49/0d242e1c81141be0ee561a184d88",
|
||||
"build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/74/1d/fc9e33e565475daaac80da5252f0",
|
||||
"build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/78/4f/3c6279192f18688bd84bb6a4411b",
|
||||
"build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/72/09/88243a2824d7367ad0828fba84b6",
|
||||
"build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/62/f6/aa4a3dc1fca82b269d86b481bcb1",
|
||||
"build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/dc/87/b9f0c806997f9a7a2ca1ef951fa1",
|
||||
"build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/55/84/9518f657254defb0ef73c851398d",
|
||||
"build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/df/69/682d4c7c7e84d061b98994bc99b9",
|
||||
"build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/9c/7b/ac1a200be0f37078af0991faca3b",
|
||||
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/4b/64/b2ddd98e877794b3a47942a0dde5",
|
||||
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/bf/3d/ddca25182c6a76cf299b3e93eb3c",
|
||||
"build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/5f/81/fb4afce0d09fe9f645b768824fd1",
|
||||
"build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/97/ee/ac6204b2ffab83307b1c290ae415",
|
||||
"build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/73/30/c7eaf5ad343369861bf6a9eb013d",
|
||||
"build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/f8/b4/8a2165fad347af56ba3ec1bf7245",
|
||||
"build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/97/a1/37ed4f3db4efd65b2b65cf7767b1",
|
||||
"build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/af/d7/ea785c5a3cb974311c071b1e4570",
|
||||
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/d9/8d/d65fcf33eb6d33cf5201bd832c11",
|
||||
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/99/3c/8be98acc89f793f458aa61e050c2",
|
||||
"build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/3f/9f/2f4750d796e57a19de0ffd9a6b02",
|
||||
"build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/02/01/97181feb54a1788002020de362a2",
|
||||
"build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/e3/03/85e4eae1bb8231864e1e46554913",
|
||||
"build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/60/79/2e0070b506a3d9e9370d735c79b4",
|
||||
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/cd/dc/37d0300f47f401c15d132e294f2e",
|
||||
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/7b/5e/da03ccf4a7ebab8c46b95b469367",
|
||||
"build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/ea/17/500370ba461c0f7227b76cde2204",
|
||||
"build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/66/bd/2e3b4d3e269b9e3e65e9300232b7",
|
||||
"build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/21/c6/1e10d70c2568b56913890568537a",
|
||||
"build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/96/a1/d839bc70d0f55d4004836a7e176e",
|
||||
"build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/f8/51/b7c3284e399104333e92df77e4a7",
|
||||
"build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/8d/3c/6ccc8358ee11f2db98759b23cb46",
|
||||
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/fe/36/8c17984b5b81d1dd8b20d7137e15",
|
||||
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/6d/62/68ccb9541b572031affc826cc7ce",
|
||||
"build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/7f/1d/8183153d8a03b7176dbc406ce067",
|
||||
"build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/d0/b4/eb830b468a4ce0bce93f12d54cab",
|
||||
"build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/fd/da/292850ec6a6a5281d56065b4de0c",
|
||||
"build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/2f/b7/22991b860126043b5fdf95ebfe35",
|
||||
"build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/f0/d3/e88910c0724d5d5828598a55b3ac",
|
||||
"build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/72/71/edc3f08a87cc22c1bf069f9b40a2",
|
||||
"build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/a3/a8/c243af3492cfd3dd85a8c48e539b",
|
||||
|
||||
9
.idea/dictionaries/ericf.xml
generated
9
.idea/dictionaries/ericf.xml
generated
@ -553,6 +553,7 @@
|
||||
<w>dline</w>
|
||||
<w>dlldir</w>
|
||||
<w>dlls</w>
|
||||
<w>dmake</w>
|
||||
<w>dmitry</w>
|
||||
<w>dmodule</w>
|
||||
<w>dmypy</w>
|
||||
@ -754,6 +755,7 @@
|
||||
<w>fileinfo</w>
|
||||
<w>fileinput</w>
|
||||
<w>filelist</w>
|
||||
<w>filelock</w>
|
||||
<w>filenames</w>
|
||||
<w>filepath</w>
|
||||
<w>fileselector</w>
|
||||
@ -1292,6 +1294,8 @@
|
||||
<w>makebob</w>
|
||||
<w>makedeps</w>
|
||||
<w>makedirs</w>
|
||||
<w>makeflags</w>
|
||||
<w>makelevel</w>
|
||||
<w>makesetup</w>
|
||||
<w>malformatted</w>
|
||||
<w>malhotra</w>
|
||||
@ -1352,6 +1356,7 @@
|
||||
<w>mios</w>
|
||||
<w>mipmap</w>
|
||||
<w>mipmaps</w>
|
||||
<w>mkflags</w>
|
||||
<w>mline</w>
|
||||
<w>mmapmodule</w>
|
||||
<w>mmult</w>
|
||||
@ -1599,7 +1604,9 @@
|
||||
<w>pickletools</w>
|
||||
<w>pickupmats</w>
|
||||
<w>pipestatus</w>
|
||||
<w>piplist</w>
|
||||
<w>pipname</w>
|
||||
<w>pipvers</w>
|
||||
<w>pkey</w>
|
||||
<w>pkgutil</w>
|
||||
<w>playercast</w>
|
||||
@ -1751,6 +1758,8 @@
|
||||
<w>putfiles</w>
|
||||
<w>pval</w>
|
||||
<w>pvars</w>
|
||||
<w>pver</w>
|
||||
<w>pverraw</w>
|
||||
<w>pvrtc</w>
|
||||
<w>pvrtcbest</w>
|
||||
<w>pvrtcfast</w>
|
||||
|
||||
102
Makefile
102
Makefile
@ -6,6 +6,17 @@
|
||||
# Targets in this top level Makefile do not expect -jX to be passed to them
|
||||
# and generally handle spawning an appropriate number of child jobs themselves.
|
||||
|
||||
# Can be used in place of the recommended $(MAKE) to suppress various
|
||||
# warnings about the jobserver being disabled due to -jX options being
|
||||
# passed to sub-makes. Generally passing -jX as part of a recursive make
|
||||
# instantiation is frowned upon, but we treat this Makefile as a high level
|
||||
# orchestration layer and we want to handle details like that for the user,
|
||||
# so we try to pick smart -j values ourselves. We can't really rely on the
|
||||
# jobserver anyway to balance our loads since we often call out to other
|
||||
# systems (XCode, Gradle, Visual Studio, etc.) which wrangle jobs in their
|
||||
# own ways.
|
||||
DMAKE = $(MAKE) MAKEFLAGS= MKFLAGS= MAKELEVEL=
|
||||
|
||||
# Prefix used for output of docs/changelogs/etc. targets for use in webpages.
|
||||
DOCPREFIX = "ballisticacore_"
|
||||
|
||||
@ -40,61 +51,61 @@ prereqs-clean:
|
||||
|
||||
# Build all assets for all platforms.
|
||||
assets: prereqs
|
||||
cd assets && make -j${CPUS}
|
||||
cd assets && $(MAKE) -j$(CPUS)
|
||||
|
||||
# Build assets required for cmake builds (linux, mac)
|
||||
assets-cmake: prereqs
|
||||
cd assets && ${MAKE} -j${CPUS} cmake
|
||||
cd assets && $(MAKE) -j$(CPUS) cmake
|
||||
|
||||
# Build assets required for WINDOWS_PLATFORM windows builds.
|
||||
assets-windows: prereqs
|
||||
cd assets && ${MAKE} -j${CPUS} win-${WINDOWS_PLATFORM}
|
||||
cd assets && $(MAKE) -j$(CPUS) win-${WINDOWS_PLATFORM}
|
||||
|
||||
# Build assets required for Win32 windows builds.
|
||||
assets-windows-Win32: prereqs
|
||||
cd assets && ${MAKE} -j${CPUS} win-Win32
|
||||
cd assets && $(MAKE) -j$(CPUS) win-Win32
|
||||
|
||||
# Build assets required for x64 windows builds.
|
||||
assets-windows-x64: prereqs
|
||||
cd assets && ${MAKE} -j${CPUS} win-x64
|
||||
cd assets && $(MAKE) -j$(CPUS) win-x64
|
||||
|
||||
# Build assets required for mac xcode builds
|
||||
assets-mac: prereqs
|
||||
cd assets && ${MAKE} -j${CPUS} mac
|
||||
cd assets && $(MAKE) -j$(CPUS) mac
|
||||
|
||||
# Build assets required for ios.
|
||||
assets-ios: prereqs
|
||||
cd assets && ${MAKE} -j${CPUS} ios
|
||||
cd assets && $(MAKE) -j$(CPUS) ios
|
||||
|
||||
# Build assets required for android.
|
||||
assets-android: prereqs
|
||||
cd assets && ${MAKE} -j${CPUS} android
|
||||
cd assets && $(MAKE) -j$(CPUS) android
|
||||
|
||||
# Clean all assets.
|
||||
assets-clean:
|
||||
cd assets && ${MAKE} clean
|
||||
cd assets && $(MAKE) clean
|
||||
|
||||
# Build resources.
|
||||
resources: prereqs
|
||||
tools/pcommand lazybuild resources_src ${LAZYBUILDDIR}/resources \
|
||||
cd resources \&\& ${MAKE} -j${CPUS} resources
|
||||
cd resources \&\& $(MAKE) -j$(CPUS) resources
|
||||
|
||||
# Clean resources.
|
||||
resources-clean:
|
||||
cd resources && ${MAKE} clean
|
||||
cd resources && $(MAKE) clean
|
||||
rm -f ${LAZYBUILDDIR}/resources
|
||||
|
||||
# Build our generated code.
|
||||
# Build our generated sources.
|
||||
# TODO: should perhaps make this a more standard component, including it
|
||||
# in other standard targets such as checks and tests (at least once we're
|
||||
# generating things that can affect the outcome of said checks/tests).
|
||||
code: prereqs
|
||||
tools/pcommand lazybuild code_gen_src ${LAZYBUILDDIR}/code \
|
||||
cd src/generated_src \&\& ${MAKE} -j${CPUS} generated_code
|
||||
cd src/generated_src \&\& $(MAKE) -j$(CPUS) generated_code
|
||||
|
||||
# Clean our generated code.
|
||||
# Clean our generated sources.
|
||||
code-clean:
|
||||
cd src/generated_src && ${MAKE} clean
|
||||
cd src/generated_src && $(MAKE) clean
|
||||
rm -f ${LAZYBUILDDIR}/code
|
||||
|
||||
# Remove ALL files and directories that aren't managed by git
|
||||
@ -562,12 +573,12 @@ update-check: prereqs
|
||||
|
||||
# Run formatting on all files in the project considered 'dirty'.
|
||||
format:
|
||||
@${MAKE} -j3 format-code format-scripts format-makefile
|
||||
@$(MAKE) -j$(CPUS) format-code format-scripts format-makefile
|
||||
@tools/pcommand echo BLD Formatting complete!
|
||||
|
||||
# Same but always formats; ignores dirty state.
|
||||
format-full:
|
||||
@${MAKE} -j3 format-code-full format-scripts-full format-makefile
|
||||
@$(MAKE) -j$(CPUS) format-code-full format-scripts-full format-makefile
|
||||
@tools/pcommand echo BLD Formatting complete!
|
||||
|
||||
# Run formatting for compiled code sources (.cc, .h, etc.).
|
||||
@ -601,23 +612,24 @@ format-makefile: prereqs
|
||||
################################################################################
|
||||
|
||||
# Run all project checks. (static analysis)
|
||||
check: update-check
|
||||
@${MAKE} -j3 cpplint pylint mypy
|
||||
check:
|
||||
@${DMAKE} -j$(CPUS) update-check cpplint pylint mypy
|
||||
@tools/pcommand echo SGRN BLD ALL CHECKS PASSED!
|
||||
|
||||
# Same as check but no caching (all files are checked).
|
||||
check-full: update-check
|
||||
@${MAKE} -j3 cpplint-full pylint-full mypy-full
|
||||
check-full:
|
||||
@${DMAKE} -j$(CPUS) update-check cpplint-full pylint-full mypy-full
|
||||
@tools/pcommand echo SGRN BLD ALL CHECKS PASSED!
|
||||
|
||||
# Same as 'check' plus optional/slow extra checks.
|
||||
check2: update-check
|
||||
@${MAKE} -j4 cpplint pylint mypy pycharm
|
||||
check2:
|
||||
@${DMAKE} -j$(CPUS) update-check cpplint pylint mypy pycharm
|
||||
@tools/pcommand echo SGRN BLD ALL CHECKS PASSED!
|
||||
|
||||
# Same as check2 but no caching (all files are checked).
|
||||
check2-full: update-check
|
||||
@${MAKE} -j4 cpplint-full pylint-full mypy-full pycharm-full
|
||||
check2-full:
|
||||
@${DMAKE} -j$(CPUS) update-check cpplint-full pylint-full mypy-full \
|
||||
pycharm-full
|
||||
@tools/pcommand echo SGRN BLD ALL CHECKS PASSED!
|
||||
|
||||
# Run Cpplint checks on all C/C++ code.
|
||||
@ -707,30 +719,30 @@ test-entity:
|
||||
|
||||
# Format, update, check, & test the project. Do this before commits.
|
||||
preflight:
|
||||
@${MAKE} format
|
||||
@${MAKE} update
|
||||
@${MAKE} -j4 cpplint pylint mypy test
|
||||
@$(MAKE) format
|
||||
@$(MAKE) update
|
||||
@$(MAKE) -j$(CPUS) cpplint pylint mypy test
|
||||
@tools/pcommand echo SGRN BLD PREFLIGHT SUCCESSFUL!
|
||||
|
||||
# Same as 'preflight' without caching (all files are visited).
|
||||
preflight-full:
|
||||
@${MAKE} format-full
|
||||
@${MAKE} update
|
||||
@${MAKE} -j4 cpplint-full pylint-full mypy-full test-full
|
||||
@$(MAKE) format-full
|
||||
@$(MAKE) update
|
||||
@$(MAKE) -j$(CPUS) cpplint-full pylint-full mypy-full test-full
|
||||
@tools/pcommand echo SGRN BLD PREFLIGHT SUCCESSFUL!
|
||||
|
||||
# Same as 'preflight' plus optional/slow extra checks.
|
||||
preflight2:
|
||||
@${MAKE} format
|
||||
@${MAKE} update
|
||||
@${MAKE} -j5 cpplint pylint mypy pycharm test
|
||||
@$(MAKE) format
|
||||
@$(MAKE) update
|
||||
@$(MAKE) -j$(CPUS) cpplint pylint mypy pycharm test
|
||||
@tools/pcommand echo SGRN BLD PREFLIGHT SUCCESSFUL!
|
||||
|
||||
# Same as 'preflight2' but without caching (all files visited).
|
||||
preflight2-full:
|
||||
@${MAKE} format-full
|
||||
@${MAKE} update
|
||||
@${MAKE} -j5 cpplint-full pylint-full mypy-full pycharm-full test-full
|
||||
@$(MAKE) format-full
|
||||
@$(MAKE) update
|
||||
@$(MAKE) -j$(CPUS) cpplint-full pylint-full mypy-full pycharm-full test-full
|
||||
@tools/pcommand echo SGRN BLD PREFLIGHT SUCCESSFUL!
|
||||
|
||||
# Tell make which of these targets don't represent files.
|
||||
@ -778,7 +790,7 @@ windows-debug-build: \
|
||||
@tools/pcommand wsl_build_check_win_drive
|
||||
WINDOWS_CONFIGURATION=Debug WINDOWS_PLATFORM=Win32 $(MAKE) windows-staging
|
||||
WINDOWS_PROJECT=Generic WINDOWS_CONFIGURATION=Debug WINDOWS_PLATFORM=Win32 \
|
||||
${MAKE} _windows-wsl-build
|
||||
$(MAKE) _windows-wsl-build
|
||||
|
||||
# Rebuild a debug windows build (from WSL).
|
||||
windows-debug-rebuild: \
|
||||
@ -789,7 +801,7 @@ windows-debug-rebuild: \
|
||||
@tools/pcommand wsl_build_check_win_drive
|
||||
WINDOWS_CONFIGURATION=Debug WINDOWS_PLATFORM=Win32 $(MAKE) windows-staging
|
||||
WINDOWS_PROJECT=Generic WINDOWS_CONFIGURATION=Debug WINDOWS_PLATFORM=Win32 \
|
||||
${MAKE} _windows-wsl-rebuild
|
||||
$(MAKE) _windows-wsl-rebuild
|
||||
|
||||
# Build a release windows build (from WSL).
|
||||
windows-release-build: \
|
||||
@ -800,7 +812,7 @@ windows-release-build: \
|
||||
@tools/pcommand wsl_build_check_win_drive
|
||||
WINDOWS_CONFIGURATION=Release WINDOWS_PLATFORM=Win32 $(MAKE) windows-staging
|
||||
WINDOWS_PROJECT=Generic WINDOWS_CONFIGURATION=Release WINDOWS_PLATFORM=Win32 \
|
||||
${MAKE} _windows-wsl-build
|
||||
$(MAKE) _windows-wsl-build
|
||||
|
||||
# Rebuild a release windows build (from WSL).
|
||||
windows-release-rebuild: \
|
||||
@ -811,7 +823,7 @@ windows-release-rebuild: \
|
||||
@tools/pcommand wsl_build_check_win_drive
|
||||
WINDOWS_CONFIGURATION=Release WINDOWS_PLATFORM=Win32 $(MAKE) windows-staging
|
||||
WINDOWS_PROJECT=Generic WINDOWS_CONFIGURATION=Release WINDOWS_PLATFORM=Win32 \
|
||||
${MAKE} _windows-wsl-rebuild
|
||||
$(MAKE) _windows-wsl-rebuild
|
||||
|
||||
ballisticacore-windows/Generic/BallisticaCore.ico: .efrocachemap
|
||||
@tools/pcommand efrocache_get $@
|
||||
@ -852,7 +864,7 @@ cmake-build: assets-cmake resources code
|
||||
@cd build/cmake/$(CM_BT_LC) && test -f Makefile \
|
||||
|| cmake -DCMAKE_BUILD_TYPE=$(CMAKE_BUILD_TYPE) \
|
||||
${PWD}/ballisticacore-cmake
|
||||
@cd build/cmake/$(CM_BT_LC) && ${MAKE} -j${CPUS}
|
||||
@cd build/cmake/$(CM_BT_LC) && $(MAKE) -j$(CPUS)
|
||||
|
||||
cmake-clean:
|
||||
rm -rf build/cmake/$(CM_BT_LC)
|
||||
@ -867,7 +879,7 @@ cmake-server-build: assets-cmake resources code
|
||||
@cd build/cmake/server-$(CM_BT_LC)/dist && test -f Makefile \
|
||||
|| cmake -DCMAKE_BUILD_TYPE=$(CMAKE_BUILD_TYPE) -DHEADLESS=true \
|
||||
${PWD}/ballisticacore-cmake
|
||||
@cd build/cmake/server-$(CM_BT_LC)/dist && ${MAKE} -j${CPUS}
|
||||
@cd build/cmake/server-$(CM_BT_LC)/dist && $(MAKE) -j$(CPUS)
|
||||
@cd build/cmake/server-$(CM_BT_LC)/dist && test -f ballisticacore_headless \
|
||||
|| ln -sf ballisticacore ballisticacore_headless
|
||||
|
||||
@ -963,14 +975,14 @@ ballisticacore-cmake/.clang-format: .clang-format
|
||||
|
||||
# Simple target for CI to build a binary but not download/assemble assets/etc.
|
||||
_cmake-simple-ci-server-build:
|
||||
SKIP_ENV_CHECKS=1 ${MAKE} code
|
||||
SKIP_ENV_CHECKS=1 $(MAKE) code
|
||||
rm -rf build/cmake_simple_ci_server_build
|
||||
mkdir -p build/cmake_simple_ci_server_build
|
||||
tools/pcommand update_cmake_prefab_lib \
|
||||
server debug build/cmake_simple_ci_server_build
|
||||
cd build/cmake_simple_ci_server_build && \
|
||||
cmake -DCMAKE_BUILD_TYPE=Debug -DHEADLESS=true ${PWD}/ballisticacore-cmake
|
||||
cd build/cmake_simple_ci_server_build && ${MAKE} -j${CPUS}
|
||||
cd build/cmake_simple_ci_server_build && $(MAKE) -j$(CPUS)
|
||||
|
||||
# Irony in emacs requires us to use cmake to generate a full
|
||||
# list of compile commands for all files; lets try to keep it up to date
|
||||
|
||||
@ -3610,7 +3610,7 @@ def set_replay_speed_exponent(speed: int) -> None:
|
||||
|
||||
(internal)
|
||||
|
||||
Set replay speed. Actual displayed speed is pow(2,speed).
|
||||
Set replay speed. Actual displayed speed is pow(2, speed).
|
||||
"""
|
||||
return None
|
||||
|
||||
|
||||
@ -259,6 +259,7 @@
|
||||
<w>dlfcn</w>
|
||||
<w>dlife</w>
|
||||
<w>dllpath</w>
|
||||
<w>dmake</w>
|
||||
<w>dname</w>
|
||||
<w>dncm</w>
|
||||
<w>dobell</w>
|
||||
@ -347,6 +348,7 @@
|
||||
<w>fieldname</w>
|
||||
<w>fieldpath</w>
|
||||
<w>fifteenbits</w>
|
||||
<w>filelock</w>
|
||||
<w>filterstr</w>
|
||||
<w>filterval</w>
|
||||
<w>finishedptr</w>
|
||||
@ -578,6 +580,8 @@
|
||||
<w>magoogan</w>
|
||||
<w>magua</w>
|
||||
<w>mainmenu</w>
|
||||
<w>makeflags</w>
|
||||
<w>makelevel</w>
|
||||
<w>malhotra</w>
|
||||
<w>mallocs</w>
|
||||
<w>manualtab</w>
|
||||
@ -602,6 +606,7 @@
|
||||
<w>minsdl</w>
|
||||
<w>mipmapcount</w>
|
||||
<w>mipmaps</w>
|
||||
<w>mkflags</w>
|
||||
<w>mmask</w>
|
||||
<w>mmdevapi</w>
|
||||
<w>modder</w>
|
||||
@ -729,6 +734,8 @@
|
||||
<w>pflag</w>
|
||||
<w>pflags</w>
|
||||
<w>pgmout</w>
|
||||
<w>piplist</w>
|
||||
<w>pipvers</w>
|
||||
<w>pixelformat</w>
|
||||
<w>playpause</w>
|
||||
<w>playsound</w>
|
||||
@ -780,6 +787,8 @@
|
||||
<w>putbits</w>
|
||||
<w>putbitshigh</w>
|
||||
<w>pval</w>
|
||||
<w>pver</w>
|
||||
<w>pverraw</w>
|
||||
<w>pvrtc</w>
|
||||
<w>pycommand</w>
|
||||
<w>pyconfig</w>
|
||||
|
||||
@ -21,9 +21,6 @@ no_implicit_reexport = False
|
||||
[mypy-pylint.*]
|
||||
ignore_missing_imports = True
|
||||
|
||||
[mypy-cpplint.*]
|
||||
ignore_missing_imports = True
|
||||
|
||||
[mypy-ansiwrap.*]
|
||||
ignore_missing_imports = True
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<!-- THIS FILE IS AUTO GENERATED; DO NOT EDIT BY HAND -->
|
||||
<h4><em>last updated on 2021-05-30 for Ballistica version 1.6.4 build 20369</em></h4>
|
||||
<h4><em>last updated on 2021-06-09 for Ballistica version 1.6.4 build 20374</em></h4>
|
||||
<p>This page documents the Python classes and functions in the 'ba' module,
|
||||
which are the ones most relevant to modding in Ballistica. If you come across something you feel should be included here or could be better explained, please <a href="mailto:support@froemling.net">let me know</a>. Happy modding!</p>
|
||||
<hr>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
namespace ballistica {
|
||||
|
||||
// These are set automatically via script; don't modify them here.
|
||||
const int kAppBuildNumber = 20374;
|
||||
const int kAppBuildNumber = 20375;
|
||||
const char* kAppVersion = "1.6.4";
|
||||
|
||||
// Our standalone globals.
|
||||
|
||||
@ -625,7 +625,7 @@ auto PythonMethodsGameplay::GetMethods() -> std::vector<PyMethodDef> {
|
||||
"\n"
|
||||
"(internal)\n"
|
||||
"\n"
|
||||
"Set replay speed. Actual displayed speed is pow(2,speed)."},
|
||||
"Set replay speed. Actual displayed speed is pow(2, speed)."},
|
||||
|
||||
{"get_replay_speed_exponent", PyGetReplaySpeedExponent, METH_VARARGS,
|
||||
"get_replay_speed_exponent() -> int\n"
|
||||
|
||||
@ -23,22 +23,28 @@ if TYPE_CHECKING:
|
||||
@dataclass
|
||||
class PipRequirement:
|
||||
"""A pip package required by our project."""
|
||||
modulename: str
|
||||
modulename: Optional[str] = None
|
||||
minversion: Optional[List[int]] = None # None implies no min version.
|
||||
pipname: Optional[str] = None # None implies same as modulename.
|
||||
|
||||
|
||||
# Note: we look directly for modules when possible instead of just pip
|
||||
# entries; this accounts for manual installations or other nonstandard setups.
|
||||
PIP_REQUIREMENTS = [
|
||||
PipRequirement(modulename='pylint', minversion=[2, 8, 2]),
|
||||
PipRequirement(modulename='mypy', minversion=[0, 812]),
|
||||
PipRequirement(modulename='mypy', minversion=[0, 901]),
|
||||
PipRequirement(modulename='yapf', minversion=[0, 31, 0]),
|
||||
PipRequirement(modulename='cpplint', minversion=[1, 5, 5]),
|
||||
PipRequirement(modulename='pytest', minversion=[6, 2, 4]),
|
||||
PipRequirement(modulename='typing_extensions'),
|
||||
PipRequirement(modulename='pytz'),
|
||||
PipRequirement(modulename='ansiwrap'),
|
||||
PipRequirement(modulename='yaml', pipname='PyYAML'),
|
||||
PipRequirement(modulename='requests'),
|
||||
PipRequirement(pipname='typing-extensions', minversion=[3, 10, 0, 0]),
|
||||
PipRequirement(pipname='types-filelock', minversion=[0, 1, 3]),
|
||||
PipRequirement(pipname='types-requests', minversion=[0, 1, 9]),
|
||||
PipRequirement(pipname='types-pytz', minversion=[0, 1, 0]),
|
||||
PipRequirement(pipname='types-PyYAML', minversion=[0, 1, 6]),
|
||||
]
|
||||
|
||||
# Parts of full-tests suite we only run on particular days.
|
||||
@ -507,6 +513,7 @@ def _vstr(nums: Sequence[int]) -> str:
|
||||
def checkenv() -> None:
|
||||
"""Check for tools necessary to build and run the app."""
|
||||
# pylint: disable=too-many-branches
|
||||
# pylint: disable=too-many-statements
|
||||
|
||||
from efrotools import PYTHON_BIN
|
||||
print(f'{Clr.BLD}Checking environment...{Clr.RST}', flush=True)
|
||||
@ -537,56 +544,92 @@ def checkenv() -> None:
|
||||
'it via apt, brew, etc.')
|
||||
|
||||
# Make sure they've got pip for that python version.
|
||||
if subprocess.run(f'{PYTHON_BIN} -m pip --version',
|
||||
shell=True,
|
||||
if subprocess.run([PYTHON_BIN, '-m', 'pip', '--version'],
|
||||
check=False,
|
||||
capture_output=True).returncode != 0:
|
||||
raise CleanError(
|
||||
f'pip (for {PYTHON_BIN}) is required; please install it.')
|
||||
|
||||
# Parse package names and versions from pip.
|
||||
piplist = subprocess.run(
|
||||
[PYTHON_BIN, '-m', 'pip', 'list'], check=True,
|
||||
capture_output=True).stdout.decode().strip().splitlines()
|
||||
assert 'Package' in piplist[0] and 'Version' in piplist[0]
|
||||
assert '--------' in piplist[1]
|
||||
piplist = piplist[2:]
|
||||
pipvers: Dict[str, List[int]] = {}
|
||||
for line in piplist:
|
||||
pname, pverraw = line.split()
|
||||
pver = [int(x) if x.isdigit() else 0 for x in pverraw.split('.')]
|
||||
pipvers[pname] = pver
|
||||
|
||||
# Check for some required python modules.
|
||||
# FIXME: since all of these come from pip now, we should just use
|
||||
# pip --list to check versions on everything instead of doing it ad-hoc.
|
||||
for req in PIP_REQUIREMENTS:
|
||||
modname = req.modulename
|
||||
minver = req.minversion
|
||||
packagename = req.pipname
|
||||
if packagename is None:
|
||||
packagename = modname
|
||||
if minver is not None:
|
||||
results = subprocess.run(f'{PYTHON_BIN} -m {modname} --version',
|
||||
shell=True,
|
||||
check=False,
|
||||
capture_output=True)
|
||||
else:
|
||||
results = subprocess.run(f'{PYTHON_BIN} -c "import {modname}"',
|
||||
shell=True,
|
||||
check=False,
|
||||
capture_output=True)
|
||||
if results.returncode != 0:
|
||||
raise CleanError(f'{packagename} (for {PYTHON_BIN}) is required.\n'
|
||||
f'To install it, try: "{PYTHON_BIN}'
|
||||
f' -m pip install {packagename}"\n'
|
||||
f'Alternately, "tools/pcommand install_pip_reqs"'
|
||||
f' will update all pip requirements.')
|
||||
if minver is not None:
|
||||
# Note: some modules such as pytest print their version to stderr,
|
||||
# so grab both.
|
||||
verlines = (results.stdout + results.stderr).decode().splitlines()
|
||||
if verlines[0].startswith('Cpplint fork'):
|
||||
verlines = verlines[1:]
|
||||
ver_line = verlines[0]
|
||||
assert modname in ver_line
|
||||
vnums = [int(x) for x in ver_line.split()[-1].split('.')]
|
||||
assert len(vnums) == len(minver)
|
||||
if vnums < minver:
|
||||
pipname = req.pipname
|
||||
if modname is None:
|
||||
assert pipname is not None
|
||||
if pipname not in pipvers:
|
||||
raise CleanError(
|
||||
f'{packagename} ver. {_vstr(minver)} or newer is required;'
|
||||
f' found {_vstr(vnums)}.\n'
|
||||
f'To upgrade it, try: "{PYTHON_BIN}'
|
||||
f' -m pip install --upgrade {packagename}".\n'
|
||||
'Alternately, "tools/pcommand install_pip_reqs"'
|
||||
' will update all pip requirements.')
|
||||
f'{pipname} (for {PYTHON_BIN}) is required.\n'
|
||||
f'To install it, try: "{PYTHON_BIN}'
|
||||
f' -m pip install {pipname}"\n'
|
||||
f'Alternately, "tools/pcommand install_pip_reqs"'
|
||||
f' will update all pip requirements.')
|
||||
if minver is not None:
|
||||
vnums = pipvers[pipname]
|
||||
assert len(vnums) == len(minver)
|
||||
if vnums < minver:
|
||||
raise CleanError(
|
||||
f'{pipname} ver. {_vstr(minver)} or newer'
|
||||
f' is required; found {_vstr(vnums)}.\n'
|
||||
f'To upgrade it, try: "{PYTHON_BIN}'
|
||||
f' -m pip install --upgrade {pipname}".\n'
|
||||
'Alternately, "tools/pcommand install_pip_reqs"'
|
||||
' will update all pip requirements.')
|
||||
else:
|
||||
if pipname is None:
|
||||
pipname = modname
|
||||
if minver is not None:
|
||||
results = subprocess.run(
|
||||
f'{PYTHON_BIN} -m {modname} --version',
|
||||
shell=True,
|
||||
check=False,
|
||||
capture_output=True)
|
||||
else:
|
||||
results = subprocess.run(f'{PYTHON_BIN} -c "import {modname}"',
|
||||
shell=True,
|
||||
check=False,
|
||||
capture_output=True)
|
||||
if results.returncode != 0:
|
||||
raise CleanError(
|
||||
f'{pipname} (for {PYTHON_BIN}) is required.\n'
|
||||
f'To install it, try: "{PYTHON_BIN}'
|
||||
f' -m pip install {pipname}"\n'
|
||||
f'Alternately, "tools/pcommand install_pip_reqs"'
|
||||
f' will update all pip requirements.')
|
||||
if minver is not None:
|
||||
# Note: some modules such as pytest print
|
||||
# their version to stderr, so grab both.
|
||||
verlines = (results.stdout +
|
||||
results.stderr).decode().splitlines()
|
||||
if verlines[0].startswith('Cpplint fork'):
|
||||
verlines = verlines[1:]
|
||||
ver_line = verlines[0]
|
||||
assert modname in ver_line
|
||||
vnums = [int(x) for x in ver_line.split()[-1].split('.')]
|
||||
assert len(vnums) == len(minver)
|
||||
if vnums < minver:
|
||||
raise CleanError(
|
||||
f'{pipname} ver. {_vstr(minver)} or newer'
|
||||
f' is required; found {_vstr(vnums)}.\n'
|
||||
f'To upgrade it, try: "{PYTHON_BIN}'
|
||||
f' -m pip install --upgrade {pipname}".\n'
|
||||
'Alternately, "tools/pcommand install_pip_reqs"'
|
||||
' will update all pip requirements.')
|
||||
|
||||
print(f'{Clr.BLD}Environment ok.{Clr.RST}', flush=True)
|
||||
|
||||
|
||||
@ -77,7 +77,7 @@ class Updater:
|
||||
if not os.path.isdir('config') or not os.path.isdir('tools'):
|
||||
raise Exception('This must be run from a project root.')
|
||||
|
||||
# NOTE: Do py-enums before updating asset deps since it is an asset.
|
||||
# NOTE: Do py-enums before updating asset deps since it *is* an asset.
|
||||
self._update_python_enums_module()
|
||||
self._update_resources_makefile()
|
||||
self._update_generated_code_makefile()
|
||||
@ -101,7 +101,10 @@ class Updater:
|
||||
# by the above stuff.
|
||||
self._apply_line_changes()
|
||||
self._apply_file_changes()
|
||||
self._update_compile_commands_file()
|
||||
|
||||
# This keeps our compile-commands list up to date with any
|
||||
# source files we just added or removed.
|
||||
self._update_prereqs()
|
||||
|
||||
# We only check/update these in core; not spinoff projects.
|
||||
# That is because they create hashes based on source files
|
||||
@ -179,11 +182,11 @@ class Updater:
|
||||
f' docs markdown.{Clr.RST}')
|
||||
sys.exit(255)
|
||||
|
||||
def _update_compile_commands_file(self) -> None:
|
||||
def _update_prereqs(self) -> None:
|
||||
|
||||
# This will update our prereqs which may include compile-commands
|
||||
# files (.cache/irony/compile_commands.json, etc)
|
||||
subprocess.run(['make', 'prereqs'], check=True)
|
||||
subprocess.run(['make', '-j8', 'prereqs'], check=True)
|
||||
|
||||
def _apply_file_changes(self) -> None:
|
||||
# Now write out any project files that have changed
|
||||
@ -687,7 +690,3 @@ class Updater:
|
||||
print(f'{Clr.RED}Error checking/updating'
|
||||
f' python enums module.{Clr.RST}')
|
||||
sys.exit(255)
|
||||
|
||||
|
||||
# if __name__ == '__main__':
|
||||
# App().run()
|
||||
|
||||
@ -125,7 +125,7 @@ def _windows_enable_color() -> bool:
|
||||
mode = mask = ENABLE_VIRTUAL_TERMINAL_PROCESSING
|
||||
try:
|
||||
return set_conout_mode(mode, mask)
|
||||
except WindowsError as exc:
|
||||
except WindowsError as exc: # type: ignore
|
||||
if exc.winerror == ERROR_INVALID_PARAMETER:
|
||||
raise NotImplementedError from exc
|
||||
raise
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user