Как интегрировать проект CMake с библиотеками на основе GYP

Я строил кросс-платформенные приложения, используя C++ и CMake. К сожалению, многие библиотеки не включают описания проектов CMake. Например, поддерживаемые Google проекты часто используют GYP.

вот некоторые из подходов, которые я принял для этой проблемы:

  1. найти описание проекта CMake для библиотеки в интернете
  2. написать описание проекта с помощью CMake

поиск или запись CMakeLists.txt описания для библиотек является проблемой обслуживания. Поскольку библиотека обновляется, также должно быть мое описание CMake. Также файлы проекта, созданные авторами библиотеки, с большей вероятностью будут правильными.

Как конкретно я должен интегрировать проекты GYP в мое программное обеспечение на основе CMake? Является ли дублирование описания проекта в CMake лучшим подходом, или есть какая-то особенность CMake, которой мне не хватает?

какие-то общие подходы к имея дело с этим классом проблем в CMake? Как насчет библиотек, которые включают набор файлов проекта для различных платформ / IDEs? Предоставляет ли CMake способ интегрировать эти проекты в мои?

2 ответов


используйте модуль ExternalProject

http://www.cmake.org/cmake/help/v3.0/module/ExternalProject.html


не уверен, что выход можно использовать для ваших целей, но gyp может генерировать проекты Cmake gyp -f cmake mygypfile.gyp. Ваш CMakeLists.txt будет out/[Configuration] (конфигурация может быть отладкой, отпуском, etc)