@RR_Zz

Как добавить файл конфигурации к библиотеке?

Пишу библиотеку на Си у неё есть файл конфигурации conf.h.
Хочу чтобы пользователь мог переопределять настройки этого файла у себя в проекте с помощью user_conf.h
Проблема в том что, я не могу понять как сделать так чтобы библиотека видела файл конфигурации пользователя.
Пытался с помощью CMake пропихнуть user_conf.h в папку lib/inc, не получилось.

Переопределяться будут define, большего не надо, и опции компиляции -D тоже хотелось бы избежать, параметров достаточно много.

./conf.h

#ifndef CONF_H_
#define CONF_H_

#include "user_conf.h"

#ifndef PARAM1
#define PARAM1 1
#endif

#ifndef PARAM2
#define PARAM2 2
#endif

#endif
  • Вопрос задан
  • 88 просмотров
Решения вопроса 1
@res2001
Developer, ex-admin
Обычно подобные вещи делаются не так.
Для этого в cmake предусмотрена функция configure_file
Смысл в том, что вы создаете шаблонный файл, содержащий ссылки на переменные cmake. configure_file обрабатывает этот шаблон, заменяет все ссылки значениями переменных и создает из них новый файл. Этот новый файл вы и используете в проекте. Т.е. реального файла (в вашем случае conf.h) в проекте не существует, он появляется только во время компиляции.
Изменять значения переменных cmake пользователь может через параметры командной строки cmake с помощью ключа -D, например: cmake ... -DMY_VAL="New value".
Подобную переменную внутри cmakelists.txt обычно декларируют через option, там же можно указать и описание переменной и значение по умолчанию.
Примеры использования можете найти в любом более менее крупном проекте cmake на github.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы