CMakeLists.txt 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. cmake_minimum_required(VERSION 2.8)
  2. project(servant)
  3. if(_USE_OPENTRACKING)
  4. include_directories(${util_SOURCE_DIR}/include ${OPENTRACKING_INC})
  5. else()
  6. include_directories(${util_SOURCE_DIR}/include)
  7. endif()
  8. # link_libraries(pthread)
  9. #调用tars2cpp, 生成tars对应的文件
  10. macro(complice_tars OUT_DEPENDS_LIST HEADER TARS_DIR)
  11. set(DEPENDS_LIST)
  12. if (NOT ${TARS_DIR} STREQUAL "")
  13. FILE(GLOB SRC_LIST "${TARS_DIR}/*.tars")
  14. else ()
  15. FILE(GLOB SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/*.tars")
  16. endif ()
  17. set(CLEAN_LIST)
  18. #设置tars生成后, cpp文件因为h文件的include路径
  19. set(INCLUDE)
  20. if (NOT ${HEADER} STREQUAL "")
  21. set(INCLUDE "--header=${HEADER}")
  22. endif ()
  23. foreach (FILE ${SRC_LIST})
  24. get_filename_component(NAME_WE ${FILE} NAME_WE)
  25. # 生成tars文件
  26. set(TARS_IN ${FILE})
  27. set(TARS_H ${NAME_WE}.h)
  28. add_custom_command(
  29. OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/${TARS_H}
  30. WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
  31. DEPENDS tars2cpp
  32. COMMAND ${TARS2CPP} --with-tars ${INCLUDE} ${TARS_IN}
  33. COMMENT "${TARS2CPP} --with-tars ${INCLUDE} ${TARS_IN}")
  34. list(APPEND DEPENDS_LIST ${CMAKE_CURRENT_SOURCE_DIR}/${TARS_H})
  35. #设置需要清除的文件
  36. get_filename_component(PATH ${FILE} PATH)
  37. list(APPEND CLEAN_LIST ${PATH}/${NAME_WE}.h)
  38. if (EXISTS ${PATH}/${NAME_WE}.cpp)
  39. list(APPEND CLEAN_LIST ${PATH}/${NAME_WE}.cpp)
  40. endif (EXISTS ${PATH}/${NAME_WE}.cpp)
  41. endforeach (FILE)
  42. set(OUT_DEPENDS_LIST ${DEPENDS_LIST})
  43. set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${CLEAN_LIST}")
  44. endmacro()
  45. add_subdirectory(protocol/servant)
  46. add_subdirectory(tup)
  47. add_subdirectory(libservant)
  48. install(DIRECTORY servant DESTINATION include)
  49. install(DIRECTORY tup DESTINATION include)
  50. install(DIRECTORY jmem DESTINATION include)
  51. install(DIRECTORY promise DESTINATION include)
  52. install(DIRECTORY script DESTINATION .)
  53. install(DIRECTORY makefile DESTINATION .)