Привет,
Я хочу использовать файлы .h
и .c.
созданные веб-сервисом в моем проекте, но я не хочу хранить каждый ~ 10k строчный файл в моем репо.
Есть ли способ включить это и "собрать" через CMAKE и создать необходимые файлы (аналогично GLFW)?
Спасибо за ваш проект
Да, это возможно. Создайте подкаталог в своем проекте и добавьте в него CMakeLists.txt
вместе с файлами:
cmake_minimum_required(VERSION 3.0)
project(Glad)
add_library(glad include/glad/glad.h src/glad.c)
target_include_directories(glad PUBLIC include/)
Затем в ваш основной файл CMakeLists.txt
поместите:
add_subdirectory(glad/)
target_link_libraries(<your target> PRIVATE glad)
Или что-то типа того. Есть несколько способов добиться этого.
@Shimmen, спасибо за объяснение!
Вы также можете просмотреть выпуск https://github.com/Dav1dde/glad/issues/174, где несколько замечательных людей добавили дополнительные способы сделать это.
Лично я бы включил сгенерированные файлы, хотя символы должны быть отсортированы, поэтому, если вы обновите сгенерированные файлы в какой-то момент, вы получите минимальные различия, а также это означает, что у вас нет зависимости от внешних ресурсов и Python.
Я просто понял, что совсем не дал ответа на исходный вопрос! Лично мне нравится хранить радостные вещи вне моего исходного каталога и на этапе сборки моего основного исполняемого файла, так что мой пример делает именно это.
Я предполагаю, что на это есть ответ, если нет, пожалуйста, не стесняйтесь открывать снова.
Я понимаю, что обычно помещать сгенерированные файлы в каталог include, но есть ли способ создать это при сборке CMake?
Я не думаю, что использование Python - это такая уж большая проблема, это обычное дело. По крайней мере, приятно иметь возможность.
@DerekCresswell да, вы можете запустить генератор в сборке, в корне этого репозитория есть CMakeLists.txt
который должен позволить вам это сделать (iirc через add_subdirectory
).
Я также работал над glad2, у которого есть новый CMakeLists.txt
с примером здесь .
Самый полезный комментарий
Да, это возможно. Создайте подкаталог в своем проекте и добавьте в него
CMakeLists.txt
вместе с файлами:Затем в ваш основной файл
CMakeLists.txt
поместите:Или что-то типа того. Есть несколько способов добиться этого.