@@ -17,14 +17,38 @@ FIND_PROGRAM(CTYPESGEN_FOUND ctypesgen.py)
1717FIND_PACKAGE (BISON 3)
1818FIND_PACKAGE (FLEX)
1919IF (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} )
2139ENDIF ()
2240
2341IF (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} )
2852ENDIF ()
2953
3054FILE (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)
107124INSTALL (TARGETS graphqlparser
108125 LIBRARY DESTINATION lib)
0 commit comments