Spec-Zone.ru › CMake 3.9

FindBISON

Поиск исполняемого файла bison и предоставление макроса для генерации пользовательских правил сборки.

Модуль определяет следующие переменные:

BISON_EXECUTABLE
путь к программе bison
BISON_VERSION
версия bison
BISON_FOUND
истина, если программа найдена

Минимальная требуемая версия bison может быть указана с использованием стандартного синтаксиса CMake, например: find_package(BISON 2.1.3)

Если bison найден, модуль определяет макрос:

BISON_TARGET(<Name> <YaccInput> <CodeOutput>
             [COMPILE_FLAGS <flags>]
             [DEFINES_FILE <file>]
             [VERBOSE [<file>]]
             [REPORT_FILE <file>]
             )

который создаст пользовательское правило для генерации парсера. <YaccInput> — путь к файлу yacc. <CodeOutput> — имя исходного файла, сгенерированного bison. Также будет сгенерирован заголовочный файл, содержащий список токенов.

Доступны следующие опции:

COMPILE_FLAGS <flags>
Укажите флаги, которые нужно добавить в командную строку bison
DEFINES_FILE <file>
Укажите нестандартный заголовочный файл <file>, который нужно сгенерировать bison
VERBOSE [<file>]
Попросите bison записать отчетный файл грамматики и парсера. Если указано <file>, это указывает путь, куда скопировать отчетный файл. [<file>] оставлено для обратной совместимости этого модуля. Используйте VERBOSE REPORT_FILE <file>
REPORT_FILE <file>
Укажите нестандартный отчетный файл <file>, если он генерируется.

Макрос определяет следующие переменные:

BISON_<Name>_DEFINED
истина, если макрос выполнен успешно
BISON_<Name>_INPUT
Входной исходный файл, псевдоним для <YaccInput>
BISON_<Name>_OUTPUT_SOURCE
Исходный файл, сгенерированный bison
BISON_<Name>_OUTPUT_HEADER
Заголовочный файл, сгенерированный bison
BISON_<Name>_OUTPUTS
Все файлы, сгенерированные bison, включая исходный, заголовочный и отчет
BISON_<Name>_COMPILE_FLAGS
Опции, используемые в командной строке bison

Пример использования:

find_package(BISON)
BISON_TARGET(MyParser parser.y ${CMAKE_CURRENT_BINARY_DIR}/parser.cpp
             DEFINES_FILE ${CMAKE_CURRENT_BINARY_DIR}/parser.h)
add_executable(Foo main.cpp ${BISON_MyParser_OUTPUTS})

© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.9/module/FindBISON.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API