BuildMakeSettings.cmake 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. SET(RVCFRAMEWORK_SOURCES_DIR ${PROJECT_SOURCE_DIR}/Framework)
  2. SET(RVC_FRAMEWORK_INCLUDE_DIR ${RVCFRAMEWORK_SOURCES_DIR}/Common)
  3. SET(RVC_TOOLKIT_INCLUDE_DIR ${RVCFRAMEWORK_SOURCES_DIR}/libtoolkit)
  4. SET(RVC_WINPR_SOURCE_INCLUDE_DIR ${RVCFRAMEWORK_SOURCES_DIR}/winpr/include)
  5. SET(RVC_WINPR_BINARY_INCLUDE_DIR ${PROJECT_BINARY_DIR}/Framework/winpr/include)
  6. SET(RVC_WINPR_INCLUDE_DIR ${RVC_WINPR_SOURCE_INCLUDE_DIR} ${RVC_WINPR_BINARY_INCLUDE_DIR})
  7. SET(RVC_COMMON_INCLUDE_DIR ${RVC_FRAMEWORK_INCLUDE_DIR})
  8. SET(RVC_FRAMEWORK_INCLUDES_DIR ${RVC_COMMON_INCLUDE_DIR}
  9. ${RVC_TOOLKIT_INCLUDE_DIR} ${RVC_WINPR_INCLUDE_DIR})
  10. SET(ThirdPartyLib "${PROJECT_SOURCE_DIR}/ThirdParty/Release")
  11. SET(ThirdPartyHeadRoot "${PROJECT_SOURCE_DIR}/ThirdParty/Include")
  12. SET(DevHeadPath "${PROJECT_SOURCE_DIR}/DevAdapter/include")
  13. set(MODULE_BASE_DIR "${PROJECT_SOURCE_DIR}/Module")
  14. SET(ModuleCommonHeadPath "${MODULE_BASE_DIR}/include")
  15. SET(MODULE_MICRO_SERVICES_INCLUDE_DIR "${ModuleCommonHeadPath}/microservices")
  16. set(OTHER_LIB_BASE_DIR "${PROJECT_SOURCE_DIR}/Other")
  17. set(DEVADAPTER_BASE_DIR "${PROJECT_SOURCE_DIR}/DevAdapter")
  18. if(MSVC)
  19. set(OTHER_LIB_PLATFORM_BASE_DIR "${OTHER_LIB_BASE_DIR}/win")
  20. else()
  21. set(OTHER_LIB_PLATFORM_BASE_DIR "${OTHER_LIB_BASE_DIR}/unix")
  22. endif(MSVC)
  23. set(Tool_BASE_DIR "${PROJECT_SOURCE_DIR}/Tool")
  24. macro(rvc_set_library_output_dir _dir)
  25. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${_dir})
  26. set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${_dir})
  27. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${_dir})
  28. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${_dir})
  29. set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${_dir})
  30. set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${_dir})
  31. endmacro(rvc_set_library_output_dir)
  32. macro(rvc_target_add_definitions _target _def)
  33. get_target_property(EXISTED_PROPERTIES ${_target} COMPILE_DEFINITIONS)
  34. message(STATUS "EXISTED_PROPERTIES: ${EXISTED_PROPERTIES}")
  35. string(LENGTH ${EXISTED_PROPERTIES} var)
  36. if(${var})
  37. set_target_properties(${MODULE_NAME} PROPERTIES COMPILE_DEFINITIONS "${EXISTED_PROPERTIES};${_def}")
  38. else()
  39. set_target_properties(${MODULE_NAME} PROPERTIES COMPILE_DEFINITIONS "${_def}")
  40. endif()
  41. endmacro(rvc_target_add_definitions)
  42. macro(rvc_add_all_cmake_subdirectory)
  43. file(GLOB all_valid_subdirs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*/CMakeLists.txt")
  44. foreach(dir ${all_valid_subdirs})
  45. if(${dir} MATCHES "^([^/]*)/+CMakeLists.txt")
  46. string(REGEX REPLACE "^([^/]*)/+CMakeLists.txt" "\\1" dir_trimmed ${dir})
  47. message(STATUS "Adding other component ${dir_trimmed}")
  48. add_subdirectory(${dir_trimmed})
  49. endif()
  50. endforeach(dir)
  51. endmacro(rvc_add_all_cmake_subdirectory)
  52. macro(rvc_record_build_number)
  53. if(WITH_CI_NUMBER)
  54. set(CURRENT_BUILD_TIMES 1)
  55. math(EXPR DAYS "100 * ${BUILD_MONTH} + ${BUILD_DAY}" OUTPUT_FORMAT DECIMAL)
  56. if(EXISTS "${PROJECT_BINARY_DIR}/BuildNumber.txt")
  57. file(STRINGS "${PROJECT_BINARY_DIR}/BuildNumber.txt" BUILD_STORE_NUMBER)
  58. message(STATUS "string: ${BUILD_STORE_NUMBER}")
  59. if(BUILD_STORE_NUMBER)
  60. set(VERSION_REGEX "^([0-9]+)-([0-9]+)")
  61. string(REGEX REPLACE "${VERSION_REGEX}" "\\1" LAST_BUILD_DAYS "${BUILD_STORE_NUMBER}")
  62. string(REGEX REPLACE "${VERSION_REGEX}" "\\2" LAST_BUILD_TIMES "${BUILD_STORE_NUMBER}")
  63. message(STATUS "splited number: ${LAST_BUILD_DAYS}-${LAST_BUILD_TIMES}")
  64. set(CURRENT_BUILD_DAYS "${DAYS}")
  65. string(COMPARE EQUAL ${LAST_BUILD_DAYS} ${CURRENT_BUILD_DAYS} THE_SAME_DAY)
  66. if(THE_SAME_DAY)
  67. math(EXPR INCRE_DAYS "${LAST_BUILD_TIMES} + 1" OUTPUT_FORMAT DECIMAL)
  68. set(CURRENT_BUILD_TIMES ${INCRE_DAYS})
  69. endif(THE_SAME_DAY)
  70. endif(BUILD_STORE_NUMBER)
  71. endif()
  72. set(BUILD_NUMBER ${DAYS})
  73. file(WRITE "${PROJECT_BINARY_DIR}/BuildNumber.txt" "${DAYS}-${CURRENT_BUILD_TIMES}")
  74. endif(WITH_CI_NUMBER)
  75. endmacro(rvc_record_build_number)