1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- cmake_minimum_required(VERSION 3.2)
- project(servant)
- # if(TARS_OPENTRACKING)
- # include_directories(${util_SOURCE_DIR}/include ${OPENTRACKING_INC})
- # else()
- include_directories(${util_SOURCE_DIR}/include)
- # endif()
- #调用tars2cpp, 生成tars对应的文件
- macro(complice_tars OUT_DEPENDS_LIST HEADER INCLUDE)
- set(DEPENDS_LIST)
- FILE(GLOB SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/*.tars")
- set(CLEAN_LIST)
- #设置tars生成后, cpp文件因为h文件的include路径
- set(HEADER_STRING)
- if (NOT "${HEADER}" STREQUAL "")
- set(HEADER_STRING "--header=${HEADER}")
- endif ()
- #设置tars文件搜索路径
- set(INCLUDE_STRING "")
- set(HEADER_STRING)
- if (NOT "${INCLUDE}" STREQUAL "")
- set(INCLUDE_STRING "--include=${INCLUDE}")
- endif ()
- foreach (FILE ${SRC_LIST})
- get_filename_component(NAME_WE ${FILE} NAME_WE)
- # 生成tars文件
- set(TARS_IN ${FILE})
- set(TARS_H ${NAME_WE}.h)
- add_custom_command(
- OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/${TARS_H}
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
- DEPENDS tars2cpp ${FILE}
- COMMAND ${TARS2CPP} --with-tars --without-trace ${HEADER_STRING} ${INCLUDE_STRING} ${TARS_IN}
- COMMENT "${TARS2CPP} --with-tars --without-trace ${HEADER_STRING} ${INCLUDE_STRING} ${TARS_IN}")
- list(APPEND DEPENDS_LIST ${CMAKE_CURRENT_SOURCE_DIR}/${TARS_H})
- #设置需要清除的文件
- get_filename_component(PATH ${FILE} PATH)
- list(APPEND CLEAN_LIST ${PATH}/${NAME_WE}.h)
- if (EXISTS ${PATH}/${NAME_WE}.cpp)
- list(APPEND CLEAN_LIST ${PATH}/${NAME_WE}.cpp)
- endif (EXISTS ${PATH}/${NAME_WE}.cpp)
- endforeach (FILE)
- set(OUT_DEPENDS_LIST ${DEPENDS_LIST})
- set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${CLEAN_LIST}")
- endmacro()
- add_subdirectory(protocol/servant)
- add_subdirectory(protocol/framework)
- add_subdirectory(tup)
- add_subdirectory(libservant)
- install(DIRECTORY servant DESTINATION include)
- install(DIRECTORY promise DESTINATION include)
- install(DIRECTORY tup DESTINATION include)
- install(DIRECTORY jmem DESTINATION include)
- install(DIRECTORY script DESTINATION .
- PATTERN "*.sh"
- PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_READ WORLD_EXECUTE)
- install(DIRECTORY makefile DESTINATION .)
|