cmake_minimum_required (VERSION 2.8) add_executable (tmp-coco Coco.cpp Action.cpp Action.h ArrayList.cpp ArrayList.h BitArray.cpp BitArray.h CharClass.cpp CharClass.h CharSet.cpp CharSet.h Comment.cpp Comment.h DFA.cpp DFA.h Generator.cpp Generator.h Graph.h HashTable.cpp HashTable.h Melted.cpp Melted.h Node.cpp Node.h ParserGen.cpp ParserGen.h Position.cpp Position.h Sets.h SortedList.cpp SortedList.h State.cpp State.h StringBuilder.cpp StringBuilder.h Symbol.cpp Symbol.h Tab.cpp Tab.h Target.cpp Target.h ${CMAKE_CURRENT_SOURCE_DIR}/Scanner.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Scanner.h ${CMAKE_CURRENT_SOURCE_DIR}/Parser.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Parser.h ) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/Parser.cpp OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/Parser.h OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/Scanner.cpp OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/Scanner.h COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tmp-coco ${CMAKE_CURRENT_SOURCE_DIR}/Coco.atg -namespace Coco -frames ${CMAKE_CURRENT_SOURCE_DIR} -o ${CMAKE_CURRENT_BINARY_DIR} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/Scanner.frame DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/Parser.frame DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/Copyright.frame DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/Coco.atg DEPENDS tmp-coco ) include_directories ( "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}" ) add_executable (Coco Coco.cpp Action.cpp Action.h ArrayList.cpp ArrayList.h BitArray.cpp BitArray.h CharClass.cpp CharClass.h CharSet.cpp CharSet.h Comment.cpp Comment.h DFA.cpp DFA.h Generator.cpp Generator.h Graph.h HashTable.cpp HashTable.h Melted.cpp Melted.h Node.cpp Node.h ParserGen.cpp ParserGen.h Position.cpp Position.h Sets.h SortedList.cpp SortedList.h State.cpp State.h StringBuilder.cpp StringBuilder.h Symbol.cpp Symbol.h Tab.cpp Tab.h Target.cpp Target.h ${CMAKE_CURRENT_BINARY_DIR}/Parser.cpp ${CMAKE_CURRENT_BINARY_DIR}/Parser.h ${CMAKE_CURRENT_BINARY_DIR}/Scanner.cpp ${CMAKE_CURRENT_BINARY_DIR}/Scanner.h ) add_dependencies (Coco tmp-coco) if (WIN32) set (COCO_BIN_DIR "Coco/") set (COCO_DATA_DIR "Coco/frames/") else () set (COCO_BIN_DIR "bin/") set (COCO_DATA_DIR "share/Coco/") endif () install (PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/Coco DESTINATION ${COCO_BIN_DIR}) install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/Scanner.frame DESTINATION ${COCO_DATA_DIR}) install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/Parser.frame DESTINATION ${COCO_DATA_DIR}) install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/Copyright.frame DESTINATION ${COCO_DATA_DIR} RENAME Coco-Copyright.frame)