Генерация файлов проекта IDE

Вот сценарий:

Один создает красивую библиотеку / модуль программного обеспечения на C / ++.

Теперь хочется, чтобы новые пользователи могли легко использовать эту библиотеку / модуль.

Поэтому нужно предоставить файлы проекта IDE, в которых все параметры включения, флаги компилятора и параметры компоновщика установлены правильно.

Кто-то хочет предоставить файлы проекта для множества разных IDE на разных платформах, таких как: Linux (32 бит & 64 бит), Windows (32 бит) & 64 бит), Mac (32 бит & 64 бит), CodeBlocks, Eclipse CDT, KDevelop3, CodeLite, Microsoft Visual Studio и т. Д.

(Предположим, что все пути к включаемым файлам и библиотекам, а также все флаги компилятора известны. Например, через статические пути загружаемого SDK)

Таким образом, пользователь, который хочет использовать эту библиотеку, должен:

  • Установить библиотеку / модуль
  • Выберите правильный файл проекта (в зависимости от операционной системы пользователя и IDE)
  • Начать кодирование
  • (все включают настройки, флаги компилятора & настройки компоновщика уже правильно установлены в файле проекта)
  • (пользователю не нужно вручную устанавливать параметры включения, флаги компилятора & настройки компоновщика)

Как можно легко создать такие файлы проекта из известных настроек, флагов компилятора и настроек компоновщика.

Я уже посмотрел на CMake (который очень близок к конечной цели), но он создает дополнительную папку CMake для файлов проекта IDE, а также не копирует возможный исходный код в каталог сборки.
(возможно, можно ли заставить CMake генерировать файлы проекта без папки CMake и с копированием исходных файлов в папку сборки?)

1

Решение

(все включают настройки, флаги компилятора & Настройки компоновщика уже
правильно установлено в файле проекта)

(пользователю не нужно вручную
настроить параметры включения, флаги компилятора & настройки компоновщика)

Это возможно, только если ваш проект не имеет зависимостей. В противном случае вы не сможете узнать, где находятся библиотеки и заголовки deps на компьютере пользователя.

CMake был создан именно для этого — поиска зависимостей и создания файлов проекта.

но он создает дополнительную папку CMake в файл проекта IDE

Если вы говорите о бинарной директории, то она может быть расположена где угодно, не обязательно в директории проекта.

а также не копирует возможный пример источника в каталог сборки.

Это возможно с configure_file функция, или запустив ${CMAKE_PROGRAM} -E copy,

3

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

Других решений пока нет …