@@ -5,9 +5,24 @@ MACRO(FIND_BISON)
5
5
IF (NOT BISON_EXECUTABLE )
6
6
FIND_PROGRAM (BISON_EXECUTABLE bison )
7
7
IF (NOT BISON_EXECUTABLE )
8
- MESSAGE (FATAL_ERROR "Bison not found - aborting" )
9
- ENDIF (NOT BISON_EXECUTABLE )
8
+
9
+ MESSAGE (FATAL_ERROR "Bison not found - aborting" )
10
+
11
+ ELSE (NOT BISON_EXECUTABLE )
12
+
13
+ EXEC_PROGRAM (${BISON_EXECUTABLE} ARGS --version OUTPUT_VARIABLE BISON_VERSION_STR )
14
+ # get first line in case it's multiline
15
+ STRING (REGEX REPLACE "([^\n ]+).*" "\\ 1" FIRST_LINE "${BISON_VERSION_STR} " )
16
+ # get version information
17
+ STRING (REGEX REPLACE ".* ([0-9]+)\\ .([0-9]+)" "\\ 1" BISON_VERSION_MAJOR "${FIRST_LINE} " )
18
+ STRING (REGEX REPLACE ".* ([0-9]+)\\ .([0-9]+)" "\\ 2" BISON_VERSION_MINOR "${FIRST_LINE} " )
19
+ IF (BISON_VERSION_MAJOR LESS 2 )
20
+ MESSAGE (FATAL_ERROR "Bison version is too old (${BISON_VERSION_MAJOR} .${BISON_VERSION_MINOR} ). Use 2.0 or higher." )
21
+ ENDIF (BISON_VERSION_MAJOR LESS 2 )
22
+
23
+ ENDIF (NOT BISON_EXECUTABLE )
10
24
ENDIF (NOT BISON_EXECUTABLE )
25
+
11
26
ENDMACRO (FIND_BISON )
12
27
13
28
MACRO (ADD_BISON_FILES _sources )
@@ -18,15 +33,13 @@ MACRO(ADD_BISON_FILES _sources )
18
33
GET_FILENAME_COMPONENT (_basename ${_current_FILE} NAME_WE )
19
34
20
35
SET (_out ${CMAKE_CURRENT_BINARY_DIR} /${_basename}.cpp )
21
- SET (_out_h ${CMAKE_CURRENT_BINARY_DIR} /${_basename}.h )
22
- SET (_out_hpp ${CMAKE_CURRENT_BINARY_DIR} /${_basename}.hpp )
23
36
24
37
25
38
# bison options:
26
39
# -t add debugging facilities
27
40
# -d produce additional header file (used in parser.l)
28
41
# -v produce additional *.output file with parser states
29
-
42
+
30
43
ADD_CUSTOM_COMMAND (
31
44
OUTPUT ${_out}
32
45
COMMAND ${BISON_EXECUTABLE}
@@ -35,15 +48,7 @@ MACRO(ADD_BISON_FILES _sources )
35
48
${_in}
36
49
DEPENDS ${_in}
37
50
)
38
- ADD_CUSTOM_COMMAND (
39
- OUTPUT ${_out_h}
40
- COMMAND mv
41
- ARGS
42
- ${_out_hpp} ${_out_h}
43
- DEPENDS ${_out}
44
- )
45
-
46
51
47
- SET (${_sources} ${${_sources}} ${_out} ${_out_h} )
52
+ SET (${_sources} ${${_sources}} ${_out} )
48
53
ENDFOREACH (_current_FILE )
49
54
ENDMACRO (ADD_BISON_FILES )
0 commit comments