При работе над проектом CMake я обычно либо использую pkg-config
, чтобы найти библиотеки, или загружаю зависимости в определенное место в моей системе и жестко кодирую эти пути.Это хорошо работает при использовании одной машины, но затрудняет переключение между несколькими машинами или даже взаимозаменяемую разработку в Linux и Windows.
Кажется, что плохое решение просто ожидать, что библиотеки будут в определенной,жестко запрограммированное местоположение (то есть C:\VulkanSDK\Some-Specific-Version-Number
и C:\GLFW\
, как у меня в Windows), которое варьируется в зависимости от хост-системы, поскольку это добавляет дополнительные этапы настройки всякий раз, когда кто-то клонирует проект для разработки на другом компьютере.Также кажется плохой идеей явное включение исходных библиотек и сборок в моего репозитория или использование подмодулей git (поскольку некоторые библиотеки не содержат сборки с git.)
Что такоелучший способ управлять библиотечными зависимостями, как этот кроссплатформенный?