1 ADD_LIBRARY(ast-generator-utils generator-data.cc generator-lib.cc)
3 ADD_EXECUTABLE(ast-generator-visitor generator-visitor.cc)
4 TARGET_LINK_LIBRARIES(ast-generator-visitor ozulis-core ast-generator-utils)
6 OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/visitor.hh
7 COMMAND ast-generator-visitor
8 ARGS ${CMAKE_CURRENT_SOURCE_DIR}
9 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ast-generator-visitor)
11 MACRO(AST_GENERATOR NAME)
12 ADD_EXECUTABLE(ast-generator-${NAME} generator-${NAME}.cc)
13 TARGET_LINK_LIBRARIES(ast-generator-${NAME} ozulis-core ast-generator-utils)
15 OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/${NAME}.hh
16 ${CMAKE_CURRENT_SOURCE_DIR}/${NAME}.cc
17 COMMAND ast-generator-${NAME}
18 ARGS ${CMAKE_CURRENT_SOURCE_DIR}
19 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ast-generator-${NAME})
20 ENDMACRO(AST_GENERATOR)
23 AST_GENERATOR(default-visitor)
24 AST_GENERATOR(browse-visitor)
25 AST_GENERATOR(ascii-visitor)
27 ADD_LIBRARY(ozulis-ast SHARED
30 ascii-visitor.cc ascii-visitor.hh
31 browse-visitor.cc browse-visitor.hh
32 cast-tables.cc cast-tables.hh
33 clone.cc clone.hh clone.hxx
34 default-visitor.cc default-visitor.hh
35 llvm-generator-visitor.cc llvm-generator-visitor.hh
36 node-factory.cc node-factory.hh
37 type-checker-visitor.cc type-checker-visitor.hh type-checker-visitor.hxx
38 simplify-visitor.cc simplify-visitor.hh
39 sizeof-visitor.cc sizeof-visitor.hh sizeof-visitor.hxx
40 scope.cc scope.hh scope.hxx
41 scope-builder-visitor.cc scope-builder-visitor.hh
43 SET_TARGET_PROPERTIES(ozulis-ast PROPERTIES VERSION 1.0.0 SOVERSION 1)
44 INSTALL(TARGETS ozulis-ast DESTINATION lib)