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/v3.31/module/FindBISON.html