2017-02-20 5 views
1

Мне нравится использовать конфигурационный файл, который устанавливает несколько кешированных переменных. Цель состоит в том, чтобы повторно использовать его для всех проектов, запущенных на машине, или для выбора различных версий библиотеки для тестирования или специального назначения.Как загрузить пользовательскую конфигурацию для проекта CMake

я могу добиться этого с CMake файл, как это:

set(path_to_lib_one path/to/lib/one) 
set(option1 dont_want_to_bother_setting_this_option) 
set(option2 that_option_have_to_be_set_again) 

И позвони include(myConfigfile).

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

ответ

1

Используйте параметр начального кеша, предлагаемый CMake. Вы храните свои параметры в нужном формате (set with CACHE`) и называют

cmake -C <cacheFile> <pathToSourceDir> 

Самодостаточный пример

CMakeLists.txt выглядит

и вы хотите предварительно установить три переменные. cacheFile.txt выглядит

set(path_to_lib_one path/to/lib/one CACHE FILEPATH "some path") 
set(option1 "dont_want_to_bother_setting_this_option" CACHE STRING "some option 1") 
set(option2 42 CACHE INT "and an integer") 

и ваш звонок CMake (из каталога build ниже исходного каталога)

cmake -C cacheFile.txt .. 

Выход

loading initial cache file ../cacheFile.txt 
[..] 
path/to/lib/one/dont_want_to_bother_setting_this_option/42 

Документация: https://cmake.org/cmake/help/latest/manual/cmake.1.html#options

Загрузить ex ternal cache files

Кроме того, CMake предлагает способ чтения в файле кеша, который был создан другим проектом. Команда load_cache. Вы можете использовать его, чтобы просто загрузить переменные из внешнего кеша или скопировать их в кеш текущего проекта.

Документация: https://cmake.org/cmake/help/latest/command/load_cache.html

+0

Из вашего документа указывалось:> Данный файл должен быть сценарий CMake, содержащий команды SET, которые используют опцию CACHE, а не кэш-формат файла. – jvtrudel

+0

Weird error ... Ошибка CMake: исходный каталог «D: /1-build-dev/qt-python-cmake/CMakeCache2.txt» - это файл, а не каталог. – jvtrudel

+0

Даже если я использую '' '' SET (...) '' '' ... – jvtrudel

Смежные вопросы