Switch SVN to Git submodules using Git-LFS #117946

Merged
Sergey Sharybin merged 3 commits from Sergey/blender:lib_git_lfs into blender-v4.1-release 2024-02-22 13:51:08 +01:00

3 Commits

Author SHA1 Message Date
Sergey Sharybin a406dba1b9 Add configuration for submodules 2024-02-22 13:44:52 +01:00
Sergey Sharybin 4798b75af6 Add submodules for libraries 2024-02-22 13:42:14 +01:00
Sergey Sharybin 35e3387bef Switch SVN to Git submodules using Git-LFS
This change makes it so build system and update utilities for Blender builds
are using pre-compiled libraries and other resources attached as Git modules
instead of using checkout of SVN repositories in the parent folder.

The directory layout:
```
  * release/datafiles/
    * assets/        -> blender-assets.git
      * publish/
      * ...
      * README.txt
  * lib/
    * darwin_x64/    -> lib-darwin_x64.git
    * darwin_arm64/  -> lib-darwin_arm64.git
    * linux_x64/     -> lib-linux_x64.git
    * windows_x64/   -> lib-windows_x64.git
  * tests/
    * data/          -> blender-test-data.git
```

The changes about configuring the actual Git sub-modules are not included
into this patch, as those require repository to actually exist before it
can be used.

The assets submodule is enabled by default, and the rest of them are
disabled. This means that if someone runs `git submodule update --init`
they will not get heavy libraries. The platform-specific and tests
related submodules are enabled when using `make update` or `make test`.

All the submodules are tracked: this means that when new commits are
done to the submodule, the blender.git repository is to be updated to
point them to the new hash. This causes some extra manual work, but it
allows to more easily update Blender and its dependencies to known good
state when performing operations like bisect.

Ref #108978
2024-02-22 13:38:51 +01:00