Организация файловой структуры проекта и сторонние библиотеки C++

При создании небольшого проекта чуть серьёзнее, чем hello world, с использованием одной или нескольких сторонних библиотек и системой сборки CMake, я столкнулся с необходимостью в совете и рекомендации от профессионала, как лучше всего организовать размещение файлов? Приведу примеры из других языков, чтобы стало немного понятнее, что я имею ввиду:

  1. В Python, для работы с библиотеками нужно просто создать виртуальное окружение и с помощью pip установить библиотеку, а интерпретатор всё найдёт самостоятельно, а морочиться с размещением файлов исходного кода - необязательно, python сам всё найдёт в своём виртуальном окружении.
  2. В Java немного сложнее и больше возможностей - нужно выбрать систему сборки проектов(Maven,Gradle) и указать зависимости.
  3. В Rust есть cargo add и Cargo.toml

Я пробовал сделать всё через vcpkg, но функционал ограничен для unix систем, а так-же настройка, перенос на другие ОС, на другие IDE(с VS 20XX на VSCode) - создаёт очень много проблем на пустом месте. Смотрел на github, как делают другие и как я понял, они просто создают отдельную папку и туда закидывают все скачанные библиотеки. Насколько это адекватная тема ? Будут ли дальнейшие проблемы с размещением проекта на github, gitlab, файлообменнике из-за большого веса ?

UPD1: Как насчёт использования Docker ?


Ответы (0 шт):