@@ -17,14 +17,38 @@ FIND_PROGRAM(CTYPESGEN_FOUND ctypesgen.py)
17
17
FIND_PACKAGE (BISON 3)
18
18
FIND_PACKAGE (FLEX)
19
19
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} )
21
39
ENDIF ()
22
40
23
41
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" )
25
43
IF (BISON_FOUND)
26
- ADD_FLEX_BISON_DEPENDENCY(GraphQLScanner graphqlparser )
44
+ ADD_FLEX_BISON_DEPENDENCY(GraphQLScanner graphqlparser_bison )
27
45
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} )
28
52
ENDIF ()
29
53
30
54
FILE (MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /c)
@@ -41,15 +65,13 @@ ADD_LIBRARY(graphqlparser SHARED
41
65
${CMAKE_CURRENT_BINARY_DIR} /c/GraphQLAstForEachConcreteType.h
42
66
${CMAKE_CURRENT_BINARY_DIR} /JsonVisitor.h.inc
43
67
${CMAKE_CURRENT_BINARY_DIR} /JsonVisitor.cpp.inc
68
+ ${BISON_graphqlparser_bison_OUTPUTS}
69
+ ${FLEX_GraphQLScanner_OUTPUTS}
44
70
c/GraphQLAstNode.cpp
45
71
c/GraphQLAstToJSON.cpp
46
72
c/GraphQLAstVisitor.h
47
73
c/GraphQLAstVisitor.cpp
48
74
c/GraphQLParser.cpp
49
- parser.tab.cpp
50
- parser.tab.hpp
51
- lexer.cpp
52
- lexer.h
53
75
GraphQLParser.cpp)
54
76
55
77
# Enable this and remove CMAKE_CXX_FLAGS fiddle above when we are able
@@ -97,12 +119,7 @@ INSTALL(FILES
97
119
${CMAKE_CURRENT_BINARY_DIR} /AstVisitor.h
98
120
GraphQLParser.h
99
121
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}
106
123
DESTINATION include /graphqlparser)
107
124
INSTALL (TARGETS graphqlparser
108
125
LIBRARY DESTINATION lib)
0 commit comments