sotn-decomp/tools
Jonathan Hohle 8287841ccd
Python virtualenv Support (#1620)
Ubuntu/Debian and Python recommend using virtual environments for
project-specific Python dependencies and as of Ubuntu 24 this is lightly
enforced when installing packages via pip. This is due to pip and the
system package manager installing files to the same location which may
cause either's internal state to no longer reflect what is actually
installed.

This updates the project to use a Python `virtualenv` for project
dependencies and updates internal scripts to support both global and
virtualenvs, but favors virtualenvs for new workspaces.

All tools that hardcode `/usr/bin/python3` now use `env(1)` to find the
first `python3` in the path. For those with a virtualenv configured,
this will be the Python managed there. For everyone else, this should be
the system Python or whatever other scheme they may have used previously
(assuming `python3` already existed in their `PATH`).

The `Makefile` has been updated to prepend `.venv/bin` to the `PATH` and
use `python3` from there if it exists and has been configured. It also
has a new `python-dependencies` target which will configure the venv and
install all python dependnecies there.

The `Dockerfile` has been updated to create an external `.venv` outside
of the project directory. Python's `virtualenv`s are not relocatable and
may hardcode paths which are mounted differently in the container and
host. To deal with differences in paths between the container (which
mounts the host's project directory to `/sotn`) host which may be at an
arbitarary directory the `VENV_PATH` environment variable is used to
override paths in the `Makefile`.

GitHub workflows have been updated to use `.venv`.
2024-09-17 23:19:20 -07:00
..
asm-differ@f5fc9026f0 Add mwccgap (#1131) 2024-05-18 11:41:00 +01:00
dups Add MAR to dups, Remove Path Prefix (#1621) 2024-09-17 00:08:52 +01:00
function_finder Python virtualenv Support (#1620) 2024-09-17 23:19:20 -07:00
gfxsotn Add tool to export stage graphics into a PNG 2022-11-20 14:04:21 +00:00
lints/sotn-lint sotn-lint support for drawFlags, and flags (#1593) 2024-09-10 21:55:37 +01:00
m2c@4ee07ea6b0 Update m2c 2024-05-19 12:55:28 +01:00
maspsx@7b7652969f Decompile ST0 func_801BD8F0 (#1563) 2024-08-22 18:19:49 +01:00
mwccgap@41429ee969 Update mwccgap (static functions) (#1311) 2024-06-12 09:35:35 -07:00
saturn-splitter@8d549a8042 Split saturn libs, add function (#385) 2023-07-21 22:39:37 +01:00
sotn_str Python virtualenv Support (#1620) 2024-09-17 23:19:20 -07:00
sotn-assets Weapon assets and statically linked (#1470) 2024-08-09 00:57:26 +01:00
sotn-debugmodule Change debug button to L2 (#1390) 2024-07-08 08:17:53 +01:00
sotn-disk Support Single BIN CUE Files (#1127) 2024-05-14 19:59:56 +01:00
splat_ext Python virtualenv Support (#1620) 2024-09-17 23:19:20 -07:00
split_jpt_yaml Format code 2023-07-25 17:38:30 +00:00
vab-ex Sound effect extraction WIP (#398) 2023-07-31 12:12:07 -07:00
analyze_calls.py Python virtualenv Support (#1620) 2024-09-17 23:19:20 -07:00
bin2c.py Python virtualenv Support (#1620) 2024-09-17 23:19:20 -07:00
decompile.py Python virtualenv Support (#1620) 2024-09-17 23:19:20 -07:00
dirt_patcher.py Python virtualenv Support (#1620) 2024-09-17 23:19:20 -07:00
display_texture.py Simplify CLUT fetching system for texture viewer (#1575) 2024-08-25 18:49:28 -04:00
gfxstage.py Python virtualenv Support (#1620) 2024-09-17 23:19:20 -07:00
lint-license.py Add AGPL license (#1565) 2024-09-06 16:14:55 -04:00
m2ctx.py Format code 2023-09-19 22:25:08 +00:00
make-config.py MAR assets + CutsceneRun (#1619) 2024-09-17 00:18:27 +01:00
permuter_settings.toml mostly renamings, one func (#33) 2023-01-02 08:57:53 +00:00
png2bin.py Python virtualenv Support (#1620) 2024-09-17 23:19:20 -07:00
png2s.py Python virtualenv Support (#1620) 2024-09-17 23:19:20 -07:00
progress.py Track progress for boss/mar 2024-09-15 23:27:01 +01:00
requirements-debian.txt Python virtualenv Support (#1620) 2024-09-17 23:19:20 -07:00
requirements-python.txt Downgrade splat 0.24.7 to 0.24.6 2024-07-29 00:01:16 +01:00
richter_symbols.py Format code 2023-07-25 17:38:30 +00:00
spritesheet.py Python virtualenv Support (#1620) 2024-09-17 23:19:20 -07:00
symbols_test.py Extract and document all functions from main.exe (#736) 2023-11-06 14:53:27 -08:00
symbols.py Add tool to generate splat configs (#1603) 2024-09-15 21:16:58 +01:00
tools.mk Match Functions with Same Name in dups (#1449) 2024-07-28 11:48:41 -04:00