Mercurial > hg > freeDiameter
annotate cmake/Modules/CMakeUserUseBison.cmake @ 1562:6219359a36a9 default tip
Merge latest changes from proposed branch
author | Sebastien Decugis <sdecugis@freediameter.net> |
---|---|
date | Mon, 21 Jun 2021 19:08:18 +0800 |
parents | ad3c46016584 |
children |
rev | line source |
---|---|
0 | 1 # - Look for GNU Bison, the parser generator |
2 # Based off a news post from Andy Cedilnik at Kitware | |
3 # Defines the following: | |
4 # BISON_EXECUTABLE - path to the bison executable | |
5 # BISON_FILE - parse a file with bison | |
6 # BISON_PREFIX_OUTPUTS - Set to true to make BISON_FILE produce prefixed | |
7 # symbols in the generated output based on filename. | |
8 # So for ${filename}.y, you'll get ${filename}parse(), etc. | |
9 # instead of yyparse(). | |
10 # BISON_GENERATE_DEFINES - Set to true to make BISON_FILE output the matching | |
11 # .h file for a .c file. You want this if you're using | |
12 # flex. | |
13 | |
14 IF(NOT DEFINED BISON_PREFIX_OUTPUTS) | |
15 SET(BISON_PREFIX_OUTPUTS FALSE) | |
16 ENDIF(NOT DEFINED BISON_PREFIX_OUTPUTS) | |
17 | |
18 IF(NOT DEFINED BISON_GENERATE_DEFINES) | |
19 SET(BISON_GENERATE_DEFINES FALSE) | |
20 ENDIF(NOT DEFINED BISON_GENERATE_DEFINES) | |
21 | |
22 IF(NOT BISON_EXECUTABLE) | |
23 MESSAGE(STATUS "Looking for bison") | |
24 FIND_PROGRAM(BISON_EXECUTABLE bison) | |
25 IF(BISON_EXECUTABLE) | |
26 MESSAGE(STATUS "Looking for bison -- ${BISON_EXECUTABLE}") | |
27 ENDIF(BISON_EXECUTABLE) | |
304
ad3c46016584
Added install directives for cmake; also allow default directory to seek for extensions and configuration files
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
0
diff
changeset
|
28 MARK_AS_ADVANCED(BISON_EXECUTABLE) |
0 | 29 ENDIF(NOT BISON_EXECUTABLE) |
30 | |
31 IF(BISON_EXECUTABLE) | |
32 MACRO(BISON_FILE FILENAME) | |
33 GET_FILENAME_COMPONENT(PATH "${FILENAME}" PATH) | |
34 IF("${PATH}" STREQUAL "") | |
35 SET(PATH_OPT "") | |
36 ELSE("${PATH}" STREQUAL "") | |
37 SET(PATH_OPT "/${PATH}") | |
38 ENDIF("${PATH}" STREQUAL "") | |
39 GET_FILENAME_COMPONENT(HEAD "${FILENAME}" NAME_WE) | |
40 IF(NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}${PATH_OPT}") | |
41 FILE(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}${PATH_OPT}") | |
42 ENDIF(NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}${PATH_OPT}") | |
43 IF(BISON_PREFIX_OUTPUTS) | |
44 SET(PREFIX "${HEAD}") | |
45 ELSE(BISON_PREFIX_OUTPUTS) | |
46 SET(PREFIX "yy") | |
47 ENDIF(BISON_PREFIX_OUTPUTS) | |
48 SET(OUTFILE "${CMAKE_CURRENT_BINARY_DIR}${PATH_OPT}/${HEAD}.tab.c") | |
49 IF(BISON_GENERATE_DEFINES) | |
50 SET(HEADER "${CMAKE_CURRENT_BINARY_DIR}${PATH_OPT}/${HEAD}.tab.h") | |
51 ADD_CUSTOM_COMMAND( | |
52 OUTPUT "${OUTFILE}" "${HEADER}" | |
53 COMMAND "${BISON_EXECUTABLE}" | |
54 ARGS "--name-prefix=${PREFIX}" | |
55 "--defines" | |
56 "--output-file=${OUTFILE}" | |
57 "${CMAKE_CURRENT_SOURCE_DIR}/${FILENAME}" | |
58 DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${FILENAME}") | |
59 SET_SOURCE_FILES_PROPERTIES("${OUTFILE}" "${HEADER}" PROPERTIES GENERATED TRUE) | |
60 SET_SOURCE_FILES_PROPERTIES("${HEADER}" PROPERTIES HEADER_FILE_ONLY TRUE) | |
61 ELSE(BISON_GENERATE_DEFINES) | |
62 ADD_CUSTOM_COMMAND( | |
63 OUTPUT "${OUTFILE}" | |
64 COMMAND "${BISON_EXECUTABLE}" | |
65 ARGS "--name-prefix=${PREFIX}" | |
66 "--output-file=${OUTFILE}" | |
67 "${CMAKE_CURRENT_SOURCE_DIR}/${FILENAME}" | |
68 DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${FILENAME}") | |
69 SET_SOURCE_FILES_PROPERTIES("${OUTFILE}" PROPERTIES GENERATED TRUE) | |
70 ENDIF(BISON_GENERATE_DEFINES) | |
71 ENDMACRO(BISON_FILE) | |
72 ENDIF(BISON_EXECUTABLE) |