Spec-Zone.ru › CMake

FindBISON

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

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

BISON_EXECUTABLE

путь к программе bison

BISON_VERSION

версия bison

BISON_FOUND

"True", если программа найдена

Минимально необходимую версию 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. Также будет сгенерирован заголовочный файл, содержащий список токенов.

Изменено в версии 3.14: Когда CMP0088 установлено в NEW, bison выполняется в каталоге CMAKE_CURRENT_BINARY_DIR.

Параметры:

COMPILE_FLAGS <flags>

Укажите флаги, которые необходимо добавить к командной строке bison.

DEFINES_FILE <file>

Добавлен в версии 3.4.

Укажите нестандартный заголовочный файл <file> для генерации программой bison.

VERBOSE [<file>]

Попросите bison записать файл отчёта о грамматике и парсере.

Устарело начиная с версии 3.7: Если <file> указан, он определяет путь к файлу отчёта. [<file>] оставлен для обратной совместимости этого модуля. Используйте VERBOSE REPORT_FILE <file>.

REPORT_FILE <file>

Добавлен в версии 3.7.

Укажите нестандартный файл отчёта <file>, если он сгенерирован.

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

BISON_<Name>_DEFINED

True — макрос успешно выполнен

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–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/module/FindBISON.html

Spec-Zone.ru

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