CMakeLists.txt 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
  2. set(TARGETNAME "tarsparse")
  3. aux_source_directory(. DIR_SRCS)
  4. set(DEPENDS_SRC_LIST)
  5. set(DEPENDS_LEC_YACC_SRC_LIST)
  6. list(APPEND DEPENDS_LEC_YACC_SRC_LIST "tars.lex.cpp")
  7. list(APPEND DEPENDS_LEC_YACC_SRC_LIST "tars.tab.hpp")
  8. list(APPEND DEPENDS_LEC_YACC_SRC_LIST "tars.tab.cpp")
  9. set(DEPENDS_LEC_YACC_SRC_DIR "${PROJECT_SOURCE_DIR}/tarsGrammar/")
  10. set(CURRENT_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
  11. foreach(LEC_YACC_SRC ${DEPENDS_LEC_YACC_SRC_LIST})
  12. list(APPEND DEPENDS_SRC_LIST ${CURRENT_SRC_DIR}/${LEC_YACC_SRC})
  13. add_custom_command(
  14. OUTPUT ${CURRENT_SRC_DIR}/${LEC_YACC_SRC}
  15. WORKING_DIRECTORY ${CURRENT_SRC_DIR})
  16. # COMMAND cp ${DEPENDS_LEC_YACC_SRC_DIR}/${LEC_YACC_SRC} ${CURRENT_SRC_DIR}
  17. # COMMENT "cp ${DEPENDS_LEC_YACC_SRC_DIR}/${LEC_YACC_SRC} ${CURRENT_SRC_DIR}")
  18. endforeach()
  19. add_library(${TARGETNAME} ${DIR_SRCS} ${DEPENDS_SRC_LIST})
  20. if(UNIX)
  21. add_dependencies(${TARGETNAME} COPY-LEX-YACC)
  22. endif(UNIX)
  23. install(TARGETS tarsparse
  24. LIBRARY DESTINATION lib
  25. ARCHIVE DESTINATION lib)