Skip to content

Commit 1044eb8

Browse files
author
homann
committed
Re-added fix for generating <include_file>.h
git-svn-id: http://svn.osgeo.org/qgis/branches/Release-0_8_0@6688 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent b77b381 commit 1044eb8

File tree

1 file changed

+49
-36
lines changed

1 file changed

+49
-36
lines changed

cmake/Bison.cmake

+49-36
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
# use bison for .yy files
2-
3-
# search for bison
4-
MACRO(FIND_BISON)
5-
IF(NOT BISON_EXECUTABLE)
6-
FIND_PROGRAM(BISON_EXECUTABLE bison)
7-
IF (NOT BISON_EXECUTABLE)
1+
# use bison for .yy files
2+
3+
# search for bison
4+
MACRO(FIND_BISON)
5+
IF(NOT BISON_EXECUTABLE)
6+
FIND_PROGRAM(BISON_EXECUTABLE bison)
7+
IF (NOT BISON_EXECUTABLE)
88

9-
MESSAGE(FATAL_ERROR "Bison not found - aborting")
9+
MESSAGE(FATAL_ERROR "Bison not found - aborting")
1010

1111
ELSE (NOT BISON_EXECUTABLE)
1212

@@ -20,35 +20,48 @@ MACRO(FIND_BISON)
2020
MESSAGE (FATAL_ERROR "Bison version is too old (${BISON_VERSION_MAJOR}.${BISON_VERSION_MINOR}). Use 2.0 or higher.")
2121
ENDIF (BISON_VERSION_MAJOR LESS 2)
2222

23-
ENDIF (NOT BISON_EXECUTABLE)
24-
ENDIF(NOT BISON_EXECUTABLE)
25-
26-
ENDMACRO(FIND_BISON)
27-
28-
MACRO(ADD_BISON_FILES _sources )
29-
FIND_BISON()
30-
31-
FOREACH (_current_FILE ${ARGN})
32-
GET_FILENAME_COMPONENT(_in ${_current_FILE} ABSOLUTE)
33-
GET_FILENAME_COMPONENT(_basename ${_current_FILE} NAME_WE)
34-
35-
SET(_out ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.cpp)
36-
37-
23+
ENDIF (NOT BISON_EXECUTABLE)
24+
ENDIF(NOT BISON_EXECUTABLE)
25+
26+
ENDMACRO(FIND_BISON)
27+
28+
MACRO(ADD_BISON_FILES _sources )
29+
FIND_BISON()
30+
31+
FOREACH (_current_FILE ${ARGN})
32+
GET_FILENAME_COMPONENT(_in ${_current_FILE} ABSOLUTE)
33+
GET_FILENAME_COMPONENT(_basename ${_current_FILE} NAME_WE)
34+
35+
SET(_out ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.cpp)
36+
SET(_out_h ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h)
37+
SET(_out_hpp ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.hpp)
38+
3839
# bison options:
3940
# -t add debugging facilities
4041
# -d produce additional header file (used in parser.l)
4142
# -v produce additional *.output file with parser states
42-
43-
ADD_CUSTOM_COMMAND(
44-
OUTPUT ${_out}
45-
COMMAND ${BISON_EXECUTABLE}
46-
ARGS
47-
-o${_out} -d -v -t
48-
${_in}
49-
DEPENDS ${_in}
50-
)
51-
52-
SET(${_sources} ${${_sources}} ${_out} )
53-
ENDFOREACH (_current_FILE)
54-
ENDMACRO(ADD_BISON_FILES)
43+
44+
ADD_CUSTOM_COMMAND(
45+
OUTPUT ${_out}
46+
COMMAND ${BISON_EXECUTABLE}
47+
ARGS
48+
-o${_out} -d -v -t
49+
${_in}
50+
DEPENDS ${_in}
51+
)
52+
53+
# Hack to change output file name to <include_file>.h
54+
# instead of <include_file>.hpp
55+
# (Instead of changing source code)
56+
57+
ADD_CUSTOM_COMMAND(
58+
OUTPUT ${_out_h}
59+
COMMAND ${CMAKE_COMMAND}
60+
ARGS
61+
-E copy ${_out_hpp} ${_out_h}
62+
DEPENDS ${_out}
63+
)
64+
65+
SET(${_sources} ${${_sources}} ${_out} ${_out_h} )
66+
ENDFOREACH (_current_FILE)
67+
ENDMACRO(ADD_BISON_FILES)

0 commit comments

Comments
 (0)