macro(define_module _module_name) set(MODULE_NAME "mod_${_module_name}") set(ENTITY_NAME "${_module_name}") string(TOUPPER "${MODULE_NAME}" MODULE_PREFIX) endmacro(define_module) set(REPLACE_HTTPCLIENT_WITH_CPPRESTSDK TRUE) #local target set(RVCCOMM_LIB RVCComm) set(SPBASE_LIB spbase) set(TOOLKIT_LIB libtoolkit) set(WINPR_LIB winpr) set(MODULE_BASE_LIBS ${SPBASE_LIB} ${TOOLKIT_LIB}) set(MODULE_BASE_ALL_LIBS ${SPBASE_LIB} ${TOOLKIT_LIB} ${RVCCOMM_LIB}) if(NOT MSVC) list(APPEND MODULE_BASE_LIBS ${WINPR_LIB}) endif(NOT MSVC) set(BUILD_MOUDLE_TEST OFF) if(BUILD_TESTING) set(BUILD_MOUDLE_TEST ON) endif(BUILD_TESTING) macro(add_module_libraries _module_prefix _module_name _module_version) string(STRIP ${_module_version} RAW_VERSION_STRING) set(VERSION_REGEX "^.?([0-9]+)\\.([0-9]+)\\.([0-9]+)-?(.*)") string(REGEX REPLACE "${VERSION_REGEX}" "\\1" MOD_VERSION_MAJOR "${RAW_VERSION_STRING}") string(REGEX REPLACE "${VERSION_REGEX}" "\\2" MOD_VERSION_MINOR "${RAW_VERSION_STRING}") string(REGEX REPLACE "${VERSION_REGEX}" "\\3" MOD_VERSION_REVISION "${RAW_VERSION_STRING}") string(REGEX REPLACE "${VERSION_REGEX}" "\\4" MOD_VERSION_SUFFIX "${RAW_VERSION_STRING}") set(MOD_VERSION "${MOD_VERSION_MAJOR}.${MOD_VERSION_MINOR}.${MOD_VERSION_REVISION}") set(MOD_API_VERSION "${MOD_VERSION_MAJOR}") if (MOD_VERSION_SUFFIX) set(MOD_VERSION_FULL "${MOD_VERSION}-${MOD_VERSION_SUFFIX}") else() set(MOD_VERSION_FULL "${MOD_VERSION}") endif() message(STATUS "${_module_name} version: ${MOD_VERSION_FULL}") add_definitions(-DRVC_VERSION_STR="${RVC_VERSION}") if(WIN32) set (RC_VERSION_MAJOR ${RVC_VERSION_MAJOR}) set (RC_VERSION_MINOR ${MOD_VERSION_MAJOR}) set (RC_VERSION_BUILD ${MOD_VERSION_MINOR}) set (RC_VERSION_PATCH ${MOD_VERSION_REVISION}) set(RC_VERSION_DESCRIPTION "${CMAKE_SHARED_LIBRARY_PREFIX}${_module_name}_${MOD_VERSION_FULL}${CMAKE_SHARED_LIBRARY_SUFFIX}") configure_file( ${CMAKE_SOURCE_DIR}/Version.rc.in ${CMAKE_CURRENT_BINARY_DIR}/version.rc @ONLY) set(${_module_prefix}_SRCS ${${_module_prefix}_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/version.rc) endif(WIN32) set(${_module_name}_TEST_SRCS) if(BUILD_MOUDLE_TEST) file(GLOB ${_module_name}_TEST_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "test/*.cpp") message(STATUS "add test files: ${${_module_name}_TEST_SRCS}") endif(BUILD_MOUDLE_TEST) add_library(${_module_name} SHARED ${${_module_prefix}_SRCS} ${${_module_name}_TEST_SRCS}) target_compile_definitions(${_module_name} PUBLIC "${_module_prefix}_EXPORTS") target_include_directories(${_module_name} PRIVATE ${ModuleCommonHeadPath} ${THIRD_PARTY_BASE_DIR}/Include/CJson ${OTHER_LIB_BASE_DIR}/libpublicFun) if(BUILD_MOUDLE_TEST) target_compile_definitions(${_module_name} PRIVATE "WITH_BUILD_MODULE_TEST") target_include_directories(${_module_name} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) endif(BUILD_MOUDLE_TEST) if(REPLACE_HTTPCLIENT_WITH_CPPRESTSDK) target_compile_definitions(${_module_name} PRIVATE "WITH_CPPRESTSDK") target_include_directories(${_module_name} PRIVATE ${CONAN_INCLUDE_DIRS_JSONCPP} ${OTHER_LIB_BASE_DIR}/libRestfulFunc) target_link_directories(${MODULE_NAME} PRIVATE ${CONAN_LIB_DIRS_JSONCPP} ) target_link_libraries(${_module_name} RestfulFunc ${CONAN_PKG_LIBS_JSONCPP}) endif(REPLACE_HTTPCLIENT_WITH_CPPRESTSDK) configure_file("${MODULE_BASE_DIR}/include/modVer.h.in" "${CMAKE_CURRENT_BINARY_DIR}/modVer.h") target_include_directories(${_module_name} PRIVATE ${CMAKE_CURRENT_BINARY_DIR} ${RVC_FRAMEWORK_INCLUDES_DIR} ) endmacro(add_module_libraries) macro(deploy_module _module_prefix _module_name) if(MSVC) install(TARGETS ${_module_name} RUNTIME DESTINATION "${RVC_MODULE_PATH}" ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}" EXCLUDE_FROM_ALL LIBRARY DESTINATION "${RVC_LIBRARY_PATH}" COMPONENT modules) else(MSVC) install(TARGETS ${_module_name} RUNTIME DESTINATION "${RVC_MODULE_PATH}" ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}" LIBRARY DESTINATION "${RVC_MODULE_PATH}" COMPONENT modules) endif(MSVC) if (WITH_PDB_SAVE AND MSVC AND BUILD_SHARED_LIBS) install(FILES ${RVC_PDB_BINARY_DIR}/${_module_name}.pdb DESTINATION ${RVC_PDBSAVE_PATH} COMPONENT symbols) endif() set_property(TARGET ${_module_name} PROPERTY FOLDER "module/") endmacro(deploy_module) if(BUILD_TESTING) #add_subdirectory(include/test) endif() if(BUILD_MOUDLE_TEST) message(STATUS "build module test case") endif(BUILD_MOUDLE_TEST) #TODO: move to DependencyConanFiles.cmake if(MSVC) set(MODULE_CONAN_DEP_LIBS ${CONAN_BIN_DIRS_MISC}) set(MODULE_PLAFORM_SUBDIR win) else(MSVC) set(MODULE_PLAFORM_SUBDIR unix) endif(MSVC) # rvc_add_all_cmake_subdirectory() if(MSVC) add_subdirectory(mod_CardReadAdapter) add_subdirectory(mod_CardIssuerStand) add_subdirectory(mod_pinpad) add_subdirectory(mod_IDCertificate) add_subdirectory(mod_CustMngrAuth) add_subdirectory(mod_FingerPrint) add_subdirectory(mod_customeraware) add_subdirectory(mod_localmediaplay) #zhaohu add_subdirectory(mod_interactivecontrol) #zhaohu add_subdirectory(mod_assistantchannel) add_subdirectory(mod_UpgradeMgr) add_subdirectory(mod_upload) add_subdirectory(mod_healthmanager) add_subdirectory(mod_accessauth) #will be offline in future cly said add_subdirectory(mod_guiconsole) #add_subdirectory(mod_CenterSetting) add_subdirectory(mod_tokenmgr) add_subdirectory(mod_evtconverter) #zhaohu #add_subdirectory(mod_interactivelog) add_subdirectory(mod_chromium) add_subdirectory(mod_ScannerSet) add_subdirectory(mod_HSPScanner) add_subdirectory(mod_ContactlessCard) add_subdirectory(mod_gpio) #zhaohu add_subdirectory(mod_facetracking) #zhaohu add_subdirectory(mod_initiativetransfer) #zhaohu add_subdirectory(mod_interactioncontext) add_subdirectory(mod_agentip) #zhaohu add_subdirectory(mod_counterconnector) add_subdirectory(mod_countercontext) #zhaohu add_subdirectory(mod_mediacontroller) #zhaohu add_subdirectory(mod_recorder) add_subdirectory(mod_snapshot) #zhaohu add_subdirectory(mod_screenshot) add_subdirectory(mod_heartbeat) add_subdirectory(mod_alarm) #feiqi add_subdirectory(mod_RomoteController) add_subdirectory(mod_ResourceWatcher) #zhaohu add_subdirectory(mod_livenessdetection) add_subdirectory(mod_vtmloader) #below should be compiled succesufully. #unknown add_subdirectory(mod_SalesRecorder) #zhaohu add_subdirectory(mod_sipphone) #pad remove add_subdirectory(mod_cardissuerstore) else() add_subdirectory(mod_CardReadAdapter) add_subdirectory(mod_CardIssuerStand) add_subdirectory(mod_pinpad) add_subdirectory(mod_IDCertificate) add_subdirectory(mod_CustMngrAuth) add_subdirectory(mod_FingerPrint) add_subdirectory(mod_customeraware) add_subdirectory(mod_localmediaplay) add_subdirectory(mod_interactivecontrol) add_subdirectory(mod_assistantchannel) add_subdirectory(mod_UpgradeMgr) add_subdirectory(mod_upload) add_subdirectory(mod_healthmanager) add_subdirectory(mod_accessauth) add_subdirectory(mod_guiconsole) #add_subdirectory(mod_CenterSetting) add_subdirectory(mod_tokenmgr) add_subdirectory(mod_evtconverter) #add_subdirectory(mod_interactivelog) add_subdirectory(mod_chromium) add_subdirectory(mod_ScannerSet) add_subdirectory(mod_HSPScanner) add_subdirectory(mod_ContactlessCard) add_subdirectory(mod_gpio) add_subdirectory(mod_facetracking) add_subdirectory(mod_initiativetransfer) add_subdirectory(mod_interactioncontext) add_subdirectory(mod_agentip) add_subdirectory(mod_counterconnector) add_subdirectory(mod_countercontext) add_subdirectory(mod_mediacontroller) add_subdirectory(mod_recorder) add_subdirectory(mod_snapshot) add_subdirectory(mod_screenshot) add_subdirectory(mod_heartbeat) add_subdirectory(mod_alarm) add_subdirectory(mod_RomoteController) add_subdirectory(mod_ResourceWatcher) add_subdirectory(mod_livenessdetection) add_subdirectory(mod_vtmloader) #below should be compiled succesufully. add_subdirectory(mod_SalesRecorder) add_subdirectory(mod_sipphone) endif(MSVC) message(STATUS "MODULE_CONAN_DEP_LIBS:${MODULE_CONAN_DEP_LIBS}") set(RVC_CONAN_DEP_LIBS ${RVC_CONAN_DEP_LIBS} ${MODULE_CONAN_DEP_LIBS} PARENT_SCOPE)