Skip to content

vcpkg seriously borks #30

@marceline-cramer

Description

@marceline-cramer

Is there any reason to keep it? Seriously, there has to be a good reason.

Pros of vcpkg:

  • easy continuous integration dependency setup
  • one-click dependency setup... on Linux only

Cons of vcpkg:

  • astronomical setup times (has to download, configure, and compile dozens of dependencies, including, god forbid, LLVM)
  • massive footprints on disk (one gigabyte for the build directory in the prototype engine, plus hidden binary caching)
  • doesn't even work on Windows (requires manual linking, and Windows CI breaks)
  • complex build system implementation (nobody knows how anything works except Tim and me)

This fucking sucks!

How about instead, we do CMake dependency wrangling through simple find_package calls... nothing too fancy, dependencies can be handled per-operating system as appropriate, and users of those operating systems are made responsible for setting up their own development environment, instead of having the build system actively making all of that harder.

Linux package repositories, even the most minimal ones like Debian, have all the basic dependencies (SDL, OpenXR, Vulkan, libuv, etc.), and anything else that isn't in the package repos we can drop in either in-tree as source (FLECS, Tracy), in-tree as compiled binaries (Wasmtime), or as a submodule as a last resort. Dependencies on Windows can be managed with the already existing package managers like Chocolatey. There is absolutely zero need for any extra complexity.

We can always modify/upgrade this later, if the need makes itself apparent. Anything past that is unnecessary complexity and stress.

Thoughts?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions