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

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

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

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

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

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

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

14

Решение

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

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

4

Другие решения

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

5

По вопросам рекламы [email protected]