Я создавал кроссплатформенные приложения с использованием C ++ и CMake. К сожалению, многие библиотеки не включают описания проектов CMake. Например, поддерживаемые Google проекты часто используют GYP.
Вот некоторые из подходов, которые я использовал для решения этой проблемы:
Поиск или запись описаний CMakeLists.txt для библиотек является проблемой обслуживания. Как библиотека обновляется, так и мое описание CMake тоже. Также файлы проекта, созданные авторами библиотеки, с большей вероятностью будут правильными.
Как конкретно я должен интегрировать проекты GYP в мое программное обеспечение на основе CMake? Является ли дублирование описания проекта в CMake лучшим подходом или есть какая-то особенность CMake, которую мне не хватает?
Каковы некоторые из общих подходов к решению этого класса проблем в CMake? А как насчет библиотек, которые включают набор файлов проекта для различных платформ / IDE? Предоставляет ли CMake способ интегрировать эти проекты в мой?
Используйте модуль ExternalProject
http://www.cmake.org/cmake/help/v3.0/module/ExternalProject.html
Не уверен, что вывод пригоден для ваших целей, но Gyp может генерировать проекты Cmake gyp -f cmake mygypfile.gyp
, Ваш CMakeLists.txt
будет в out/[Configuration]
(конфигурация может быть Debug, Release и т. д.)