2 ms·
It is not, just take a look at the third party directory of chromium, where it tracks all its third party dependencies https://github.com/chromium/chromium/tre
by orbifold 8y ago
It is not, just take a look at the third party directory of chromium, where it tracks all its third party dependencies
https://github.com/chromium/chromium/tree/master/third_party https://github.com/chromium/chromium/tree/master/third_party
the main point of their build system gn (similar to bazel) is to have explicit and distribution independent control of all dependencies (typically tied to specific versions).
LLVM basically has no system dependencies as well, instead it implements a lot of platform abstractions within the repository (https://github.com/llvm-mirror/llvm/tree/master/lib/Support https://github.com/llvm-mirror/llvm/tree/master/lib/Support), the remaining dependencies are mostly build dependencies such as python 2.7 and cmake.
Same story for Cryengine (https://github.com/CRYTEK/CRYENGINE/tree/release/Code/Libs https://github.com/CRYTEK/CRYENGINE/tree/release/Code/Libs) and Unreal Engine (https://github.com/EpicGames/UnrealEngine/tree/release/Engine/Source/ThirdParty https://github.com/EpicGames/UnrealEngine/tree/release/Engin...).
Linux distributions simply duplicate a lot of work because they are based on a flawed and outdated distribution model, outdated because the main argument for shared libraries disappears with > 1 TB commodity hard drives. The approach taken by the projects above is also the only way to do cross platform development, simply because both Windows, macOS and Consoles don't have the concept of an operating system package manager. (If you are using homebrew for development on mac, you will run into a lot of trouble sooner or later).