Skip to content

Commit 6d1547a

Browse files
authored
Merge pull request graphql#73 from graphql/dont-clobber-flex-files
Don't clobber generated parser files on build
2 parents 3b64cd5 + 93afeda commit 6d1547a

File tree

8 files changed

+30
-13
lines changed

8 files changed

+30
-13
lines changed

CMakeLists.txt

Lines changed: 30 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,38 @@ FIND_PROGRAM(CTYPESGEN_FOUND ctypesgen.py)
1717
FIND_PACKAGE(BISON 3)
1818
FIND_PACKAGE(FLEX)
1919
IF (BISON_FOUND)
20-
BISON_TARGET(graphqlparser parser.ypp ${CMAKE_CURRENT_SOURCE_DIR}/parser.tab.cpp)
20+
BISON_TARGET(graphqlparser_bison parser.ypp ${CMAKE_CURRENT_BINARY_DIR}/parser.tab.cpp)
21+
SET(BISON_LOCATION_HEADER ${CMAKE_CURRENT_BINARY_DIR}/location.hh)
22+
ELSE()
23+
SET(BISON_graphqlparser_bison_OUTPUT_SOURCE ${CMAKE_CURRENT_BINARY_DIR}/parser.tab.cpp)
24+
SET(BISON_graphqlparser_bison_OUTPUT_HEADER ${CMAKE_CURRENT_BINARY_DIR}/parser.tab.hpp)
25+
SET(BISON_graphqlparser_bison_OUTPUTS
26+
${BISON_graphqlparser_bison_OUTPUT_SOURCE}
27+
${BISON_graphqlparser_bison_OUTPUT_HEADER}
28+
${CMAKE_CURRENT_BINARY_DIR}/location.hh
29+
${CMAKE_CURRENT_BINARY_DIR}/position.hh
30+
${CMAKE_CURRENT_BINARY_DIR}/stack.hh)
31+
SET(BISON_LOCATION_HEADER ${CMAKE_CURRENT_BINARY_DIR}/location.hh)
32+
FILE(COPY
33+
${CMAKE_CURRENT_SOURCE_DIR}/parsergen/parser.tab.cpp
34+
${CMAKE_CURRENT_SOURCE_DIR}/parsergen/parser.tab.hpp
35+
${CMAKE_CURRENT_SOURCE_DIR}/parsergen/location.hh
36+
${CMAKE_CURRENT_SOURCE_DIR}/parsergen/position.hh
37+
${CMAKE_CURRENT_SOURCE_DIR}/parsergen/stack.hh
38+
${CMAKE_CURRENT_BINARY_DIR})
2139
ENDIF()
2240

2341
IF(FLEX_FOUND)
24-
FLEX_TARGET(GraphQLScanner lexer.lpp ${CMAKE_CURRENT_SOURCE_DIR}/lexer.cpp COMPILE_FLAGS "--header-file=lexer.h")
42+
FLEX_TARGET(GraphQLScanner lexer.lpp ${CMAKE_CURRENT_BINARY_DIR}/lexer.cpp COMPILE_FLAGS "--header-file=${CMAKE_CURRENT_BINARY_DIR}/lexer.h")
2543
IF (BISON_FOUND)
26-
ADD_FLEX_BISON_DEPENDENCY(GraphQLScanner graphqlparser)
44+
ADD_FLEX_BISON_DEPENDENCY(GraphQLScanner graphqlparser_bison)
2745
ENDIF()
46+
ELSE()
47+
SET(FLEX_GraphQLScanner_OUTPUTS ${CMAKE_CURRENT_BINARY_DIR}/lexer.cpp)
48+
FILE(COPY
49+
${CMAKE_CURRENT_SOURCE_DIR}/parsergen/lexer.cpp
50+
${CMAKE_CURRENT_SOURCE_DIR}/parsergen/lexer.h
51+
${CMAKE_CURRENT_BINARY_DIR})
2852
ENDIF()
2953

3054
FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/c)
@@ -41,15 +65,13 @@ ADD_LIBRARY(graphqlparser SHARED
4165
${CMAKE_CURRENT_BINARY_DIR}/c/GraphQLAstForEachConcreteType.h
4266
${CMAKE_CURRENT_BINARY_DIR}/JsonVisitor.h.inc
4367
${CMAKE_CURRENT_BINARY_DIR}/JsonVisitor.cpp.inc
68+
${BISON_graphqlparser_bison_OUTPUTS}
69+
${FLEX_GraphQLScanner_OUTPUTS}
4470
c/GraphQLAstNode.cpp
4571
c/GraphQLAstToJSON.cpp
4672
c/GraphQLAstVisitor.h
4773
c/GraphQLAstVisitor.cpp
4874
c/GraphQLParser.cpp
49-
parser.tab.cpp
50-
parser.tab.hpp
51-
lexer.cpp
52-
lexer.h
5375
GraphQLParser.cpp)
5476

5577
# Enable this and remove CMAKE_CXX_FLAGS fiddle above when we are able
@@ -97,12 +119,7 @@ INSTALL(FILES
97119
${CMAKE_CURRENT_BINARY_DIR}/AstVisitor.h
98120
GraphQLParser.h
99121
JsonVisitor.h
100-
lexer.h
101-
location.hh
102-
parser.tab.hpp
103-
position.hh
104-
stack.hh
105-
syntaxdefs.h
122+
${BISON_LOCATION_HEADER}
106123
DESTINATION include/graphqlparser)
107124
INSTALL(TARGETS graphqlparser
108125
LIBRARY DESTINATION lib)
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)