SET(RVCFRAMEWORK_SOURCES_DIR ${PROJECT_SOURCE_DIR}/Framework) SET(RVC_FRAMEWORK_INCLUDE_DIR ${RVCFRAMEWORK_SOURCES_DIR}/Common) SET(RVC_TOOLKIT_INCLUDE_DIR ${RVCFRAMEWORK_SOURCES_DIR}/libtoolkit) SET(RVC_WINPR_SOURCE_INCLUDE_DIR ${RVCFRAMEWORK_SOURCES_DIR}/winpr/include) SET(RVC_WINPR_BINARY_INCLUDE_DIR ${PROJECT_BINARY_DIR}/Framework/winpr/include) SET(RVC_WINPR_INCLUDE_DIR ${RVC_WINPR_SOURCE_INCLUDE_DIR} ${RVC_WINPR_BINARY_INCLUDE_DIR}) SET(RVC_COMMON_INCLUDE_DIR ${RVC_FRAMEWORK_INCLUDE_DIR}) SET(RVC_FRAMEWORK_INCLUDES_DIR ${RVC_COMMON_INCLUDE_DIR} ${RVC_TOOLKIT_INCLUDE_DIR} ${RVC_WINPR_INCLUDE_DIR}) SET(ThirdPartyLib "${PROJECT_SOURCE_DIR}/ThirdParty/Release") SET(ThirdPartyHeadRoot "${PROJECT_SOURCE_DIR}/ThirdParty/Include") SET(DevHeadPath "${PROJECT_SOURCE_DIR}/DevAdapter/include") set(MODULE_BASE_DIR "${PROJECT_SOURCE_DIR}/Module") SET(ModuleCommonHeadPath "${MODULE_BASE_DIR}/include") SET(MODULE_MICRO_SERVICES_INCLUDE_DIR "${ModuleCommonHeadPath}/microservices") set(OTHER_LIB_BASE_DIR "${PROJECT_SOURCE_DIR}/Other") set(DEVADAPTER_BASE_DIR "${PROJECT_SOURCE_DIR}/DevAdapter") if(MSVC) set(OTHER_LIB_PLATFORM_BASE_DIR "${OTHER_LIB_BASE_DIR}/win") else() set(OTHER_LIB_PLATFORM_BASE_DIR "${OTHER_LIB_BASE_DIR}/unix") endif(MSVC) set(Tool_BASE_DIR "${PROJECT_SOURCE_DIR}/Tool") macro(rvc_set_library_output_dir _dir) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${_dir}) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${_dir}) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${_dir}) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${_dir}) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${_dir}) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${_dir}) endmacro(rvc_set_library_output_dir) macro(rvc_target_add_definitions _target _def) get_target_property(EXISTED_PROPERTIES ${_target} COMPILE_DEFINITIONS) message(STATUS "EXISTED_PROPERTIES: ${EXISTED_PROPERTIES}") string(LENGTH ${EXISTED_PROPERTIES} var) if(${var}) set_target_properties(${MODULE_NAME} PROPERTIES COMPILE_DEFINITIONS "${EXISTED_PROPERTIES};${_def}") else() set_target_properties(${MODULE_NAME} PROPERTIES COMPILE_DEFINITIONS "${_def}") endif() endmacro(rvc_target_add_definitions) macro(rvc_add_all_cmake_subdirectory) file(GLOB all_valid_subdirs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*/CMakeLists.txt") foreach(dir ${all_valid_subdirs}) if(${dir} MATCHES "^([^/]*)/+CMakeLists.txt") string(REGEX REPLACE "^([^/]*)/+CMakeLists.txt" "\\1" dir_trimmed ${dir}) message(STATUS "Adding other component ${dir_trimmed}") add_subdirectory(${dir_trimmed}) endif() endforeach(dir) endmacro(rvc_add_all_cmake_subdirectory) macro(rvc_record_build_number) if(WITH_CI_NUMBER) set(CURRENT_BUILD_TIMES 1) math(EXPR DAYS "100 * ${BUILD_MONTH} + ${BUILD_DAY}" OUTPUT_FORMAT DECIMAL) if(EXISTS "${PROJECT_BINARY_DIR}/BuildNumber.txt") file(STRINGS "${PROJECT_BINARY_DIR}/BuildNumber.txt" BUILD_STORE_NUMBER) message(STATUS "string: ${BUILD_STORE_NUMBER}") if(BUILD_STORE_NUMBER) set(VERSION_REGEX "^([0-9]+)-([0-9]+)") string(REGEX REPLACE "${VERSION_REGEX}" "\\1" LAST_BUILD_DAYS "${BUILD_STORE_NUMBER}") string(REGEX REPLACE "${VERSION_REGEX}" "\\2" LAST_BUILD_TIMES "${BUILD_STORE_NUMBER}") message(STATUS "splited number: ${LAST_BUILD_DAYS}-${LAST_BUILD_TIMES}") set(CURRENT_BUILD_DAYS "${DAYS}") string(COMPARE EQUAL ${LAST_BUILD_DAYS} ${CURRENT_BUILD_DAYS} THE_SAME_DAY) if(THE_SAME_DAY) math(EXPR INCRE_DAYS "${LAST_BUILD_TIMES} + 1" OUTPUT_FORMAT DECIMAL) set(CURRENT_BUILD_TIMES ${INCRE_DAYS}) endif(THE_SAME_DAY) endif(BUILD_STORE_NUMBER) endif() set(BUILD_NUMBER ${DAYS}) file(WRITE "${PROJECT_BINARY_DIR}/BuildNumber.txt" "${DAYS}-${CURRENT_BUILD_TIMES}") endif(WITH_CI_NUMBER) endmacro(rvc_record_build_number)