Explorar o código

Z991239-635 #comment config: 将框架库从全局配置改成 Target 的方式调用

gifur %!s(int64=5) %!d(string=hai) anos
pai
achega
de4618438c

+ 1 - 1
.gitignore

@@ -194,4 +194,4 @@ install_manifest.txt
 compile_commands.json
 CTestTestfile.cmake
 _deps
-
+CMakeSettings.json

+ 13 - 1
CMakeLists.txt

@@ -142,7 +142,7 @@ endif(CONAN_EXPORTED)
 
 include(conan)
 conan_cmake_run(REQUIRES RvcFramework/1.0.2-dev1@LR04.02_FrameworkLib/testing
-BASIC_SETUP # CMAKE_TARGETS
+BASIC_SETUP CMAKE_TARGETS
 BUILD missing)
 
 set(RVC_CONAN_DEP_LIBS ${CONAN_BIN_DIRS})
@@ -320,6 +320,18 @@ if(WIN32)
 	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc")
 endif(WIN32)
 
+if(MSVC)
+  # Force to always compile with W4
+  if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
+    string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+  else()
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
+  endif()
+elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
+  # Update if necessary
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-long-long -pedantic")
+endif()
+
 # Include files
 check_include_files(fcntl.h HAVE_FCNTL_H)
 check_include_files(unistd.h HAVE_UNISTD_H)

+ 2 - 54
ChangeLog

@@ -2,58 +2,6 @@
 
 
 
-## V1.0.2-dev1
+## V0.0.1-dev1
 
-支持实体测试案例数量,测试通过率的统计打印
-
-* 2020年7月11日 进一步优化测试框架
-  * 添加 --benchmark 启动参数,以分离出普通测试和基准(压力)测试模式
-  * 将 OnExam 的默认返回改为 Error_NotImpl 以让实体必须实现测试类
-  * IAsynWaitSp 添加 ErrorCodeEnum AsyncGetAnswer(DWORD& dwUserError) 接口
-  * **!!important!!** 修改框架内部逻辑,支持TEST附带参数返回(通过 UserCode)以统计测试案例数量和失败案例数量
-  * **risk**: mod_blackSheep 类库无法在 Linux 下加载,在加载时候堵住了,怀疑时敏感词???
-* 2020-07-09:框架支持单元测试,实体类测试 状态机类测试 普通类测试,方法测试
-  * Debug 模式下激活测试框架相关的宏,定义在 SpTest.h 中
-  * 每个实体工程下添加 test 文件夹,里面存放测试单元测试的 .cpp 类型的实现文件
-  * CMake: 添加 **BUILD_MOUDLE_TEST** 变量,用于判断是否需要将测试案例加入编译
-  * **!!!Important**: SpBase.h 将 实体类中的`CSmartPointer<IEntityFunction> GetFunction()`虚构化,让 测试类能接管该接口
-  * **!!!Important**:  SpHelper.h  SpReqAnsContext 构造函数添加 const 常量标识
-* 2020-07-07:  SpTest: 优化测试框架宏定义,终于能定义出一个比较好用的宏
-
-* 2020-07-03:SpBase: 连接分行服务双活机制中用到Windows依赖的共享内存段,已在Linux下模拟实现,待验证
-                          WinPR: ini 文件解析有问题,修复缺陷
-
-* 2020-05-26: 添加以测试模式启动的`spexplorertest.vbs`脚本
-
-* 2020-05-24: Entity: 添加多个压力测试实体(mod_highVoltage**),通过 TestDeamon 实体注册启动(廖桂发)
-
-* 2020-05-24: SpBase: 修复在多个实体共用一个系统变量时,ShellVal回写只写一个实体,导致后面重启后其他实体无权限操作的缺陷(廖桂发)
-
-* 2020-05-23: LibToolkit,SpBase: 添加自定义的malloc/free等C内存分配函数,以跟踪内存申请的情况(廖桂发)
-                       添加一些spshell退出时清理内存的代码(廖桂发)
-
-* 2020-05-23: SpShell: spshell启动支持 --kill 选项参数,以强制杀死框架相关的进程(廖桂发)
-
-* 2020-05-19: SpBase: 添加实体测试接口 OnExam,主要改动在 SpTest 中(廖桂发)
-
-* 2020-05-15: CMake: 针对每个实体,添加版本说明(廖桂发)
-
-  以后每个实体的改动都需要添加ChangeLog,并且有必要的情况下更具语义版本控制规则修改实体的版本号(廖桂发)
-
-* 2020-05-15: 在现有的系统变量机制上封装终端系统状态,添加接口(廖桂发)
-
-  * `ErrorCodeEnum SpEntityPrivilege::RefreshFrameworkState(FrameworkStateEnum eState)`
-  * `struct ITerminalStateChangedListener` ,
-  * `SpEntity::RegistTerminalStateChangeEvent(ITerminalStateChangedListener* pListener)`
-  * `SpEntity::UnregistTerminalStateChangeEvent()`
-
-* 2020-05-13: SpShell 添加带参启动(廖桂发)
-  --entity {entityName}               -- 启动指定的实体
-  --guardian                                -- 以后台监控形式运行程序
-  --test                                        -- 以测试模式运行程序
-  --debug                                   -- 以Debug的模式运行程序
-  --ipc <pipe,tcp>                     -- pipe: 实体间以管道的方式通信;tcp: 实体间以socket的方式通信
-
-* 2020-04-23: SpHelper.h 新增 `IFFAILRET`,`REQUIRE`,`REQUIRE_FALSE` 宏用于测试案例编写 (廖桂发)
-
-* 2020-04-22: Spbase.h 新增 `SpStrError` 接口用于将 ErrorCodeEnum 转成 字符串描述(廖桂发)
+* 2020-08-19: 将对框架的引用从全局引用的方式改成Target的方式调用

+ 49 - 0
DevAdapter/CMakeLists.txt

@@ -1,7 +1,56 @@
+SET(RVC_INTEGRATE_BUILD FALSE)
 IF(RVC_VERSION)
     SET(RVC_INTEGRATE_BUILD TRUE)
 ENDIF(RVC_VERSION)
 
+
+if(RVC_INTEGRATE_BUILD)    
+    set(DEVADAPTER_INCLUDES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include)
+    include_directories(${RVC_COMMON_INCLUDE_DIR})
+else()
+    set(DEVADAPTER_INCLUDES_DIR ${DevHeadPath})
+endif(RVC_INTEGRATE_BUILD)
+
+
+macro(rvc_dev_define_module _module_name)
+	set(MODULE_NAME "${_module_name}")
+	string(TOUPPER "${MODULE_NAME}" MODULE_PREFIX)
+endmacro(rvc_dev_define_module)
+
+macro(rvc_dev_config_library _module_name _module_prefix)
+    
+    set(${_module_prefix}_CHARACTERISTIC "${${_module_prefix}_VENDOR}.${${_module_prefix}_VERSION}.${${_module_prefix}_BATCH}")
+    set(MODULE_FULL_NAME "${_module_name}_${${_module_prefix}_VENDOR}_${${_module_prefix}_VERSION}_${${_module_prefix}_BATCH}")
+
+    add_library(${MODULE_FULL_NAME} ${${_module_prefix}_SRCS})
+
+    set_target_properties(${MODULE_FULL_NAME} PROPERTIES COMPILE_DEFINITIONS "DEVICEBASE_EXPORTS")
+    set_target_properties(${MODULE_FULL_NAME} PROPERTIES 
+        OUTPUT_NAME "${_module_name}.${${_module_prefix}_CHARACTERISTIC}")
+
+    if(SIMULATE_DEV_AND_TEST_TEMP)
+    set_target_properties(${MODULE_FULL_NAME} 
+    PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/run/version/1.2.3.4/dep")
+    endif(SIMULATE_DEV_AND_TEST_TEMP)
+
+endmacro(rvc_dev_config_library)
+
+macro(rvc_dev_target_install _target)
+if(MSVC)
+	install(TARGETS ${_target} 
+    RUNTIME DESTINATION "${RVC_VENDOR_PATH}" COMPONENT devadapters
+    ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}" COMPONENT develops EXCLUDE_FROM_ALL
+    LIBRARY DESTINATION "${RVC_VENDOR_PATH}" COMPONENT devadapters
+    )
+else()
+install(TARGETS ${_target} 
+    RUNTIME DESTINATION "${RVC_VENDOR_PATH}"
+    ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
+    LIBRARY DESTINATION "${RVC_VENDOR_PATH}"
+    COMPONENT libraries)
+endif(MSVC)
+endmacro(rvc_dev_target_install)
+
 add_subdirectory(test)
 
 

+ 1 - 25
DevAdapter/test/CMakeLists.txt

@@ -4,31 +4,7 @@ project(cmbsz C CXX)
 
 set(CMAKE_COLOR_MAKEFILE ON)
 
-IF(RVC_VERSION)
-    SET(RVC_INTEGRATE_BUILD TRUE)
-ENDIF(RVC_VERSION)
-
-include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../include")
-
-macro(rvc_dev_target_install _target)
-
-if(MSVC)
-	install(TARGETS ${_target} 
-    RUNTIME DESTINATION "${RVC_VENDOR_PATH}" COMPONENT devadapters
-    ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}" COMPONENT develops EXCLUDE_FROM_ALL
-    LIBRARY DESTINATION "${RVC_VENDOR_PATH}" COMPONENT devadapters
-    )
-else()
-install(TARGETS ${_target} 
-    RUNTIME DESTINATION "${RVC_VENDOR_PATH}"
-    ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
-    LIBRARY DESTINATION "${RVC_VENDOR_PATH}"
-    COMPONENT libraries)
-endif(MSVC)
-
-endmacro(rvc_dev_target_install)
+include_directories(${DEVADAPTER_INCLUDES_DIR})
 
 add_subdirectory(pinpad)
 add_subdirectory(cardswiper)
-
-

+ 2 - 19
DevAdapter/test/cardswiper/CMakeLists.txt

@@ -1,29 +1,12 @@
-set(MODULE_NAME "CardSwiper")
-set(MOUDLE_PREFIX "CARDSWIPER")
+rvc_dev_define_module("CardSwiper")
 
 set(${MODULE_PREFIX}_VENDOR "cmbsz")
 set(${MODULE_PREFIX}_VERSION "1")
 set(${MODULE_PREFIX}_BATCH "1")
 
-set(${MODULE_PREFIX}_CHARACTERISTIC "${${MODULE_PREFIX}_VENDOR}.${${MODULE_PREFIX}_VERSION}.${${MODULE_PREFIX}_BATCH}")
-set(MODULE_FULL_NAME "${MODULE_NAME}_${${MODULE_PREFIX}_VENDOR}_${${MODULE_PREFIX}_VERSION}_${${MODULE_PREFIX}_BATCH}")
-
-
 set(${MODULE_PREFIX}_SRCS SHARED
         cardswiper_impl.cpp
         )
 
-
-add_library(${MODULE_FULL_NAME} ${${MODULE_PREFIX}_SRCS})
-
-set_target_properties(${MODULE_FULL_NAME} PROPERTIES COMPILE_DEFINITIONS "DEVICEBASE_EXPORTS")
-
-set_target_properties(${MODULE_FULL_NAME} PROPERTIES 
-    OUTPUT_NAME "${MODULE_NAME}.${${MODULE_PREFIX}_CHARACTERISTIC}")
-
-if(SIMULATE_DEV_AND_TEST_TEMP)
-    set_target_properties(${MODULE_FULL_NAME} 
-    PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/run/version/1.2.3.4/dep")
-endif(SIMULATE_DEV_AND_TEST_TEMP)
-
+rvc_dev_config_library(${MODULE_NAME} ${MODULE_PREFIX})
 rvc_dev_target_install(${MODULE_FULL_NAME})

+ 3 - 24
DevAdapter/test/pinpad/CMakeLists.txt

@@ -1,33 +1,12 @@
-
-
-set(MODULE_NAME "PinPad")
-set(MOUDLE_PREFIX "PINPAD")
+rvc_dev_define_module("PinPad")
 
 set(${MODULE_PREFIX}_VENDOR "cmbsz")
 set(${MODULE_PREFIX}_VERSION "1")
 set(${MODULE_PREFIX}_BATCH "1")
 
-set(${MODULE_PREFIX}_CHARACTERISTIC "${${MODULE_PREFIX}_VENDOR}.${${MODULE_PREFIX}_VERSION}.${${MODULE_PREFIX}_BATCH}")
-set(MODULE_FULL_NAME "${MODULE_NAME}_${${MODULE_PREFIX}_VENDOR}_${${MODULE_PREFIX}_VERSION}_${${MODULE_PREFIX}_BATCH}")
-
-
 set(${MODULE_PREFIX}_SRCS SHARED
-        pinpad_impl.cpp
-        
+        pinpad_impl.cpp   
         )
 
-
-add_library(${MODULE_FULL_NAME} ${${MODULE_PREFIX}_SRCS})
-
-set_target_properties(${MODULE_FULL_NAME} PROPERTIES COMPILE_DEFINITIONS "DEVICEBASE_EXPORTS")
-
-set_target_properties(${MODULE_FULL_NAME} 
-    PROPERTIES OUTPUT_NAME "${MODULE_NAME}.${${MODULE_PREFIX}_CHARACTERISTIC}")
-
-
-if(SIMULATE_DEV_AND_TEST_TEMP)
-    set_target_properties(${MODULE_FULL_NAME} 
-    PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/run/version/1.2.3.4/dep")
-endif(SIMULATE_DEV_AND_TEST_TEMP)
-
+rvc_dev_config_library(${MODULE_NAME} ${MODULE_PREFIX})
 rvc_dev_target_install(${MODULE_FULL_NAME})

+ 2 - 9
Module/mod_CenterSetting/CMakeLists.txt

@@ -12,17 +12,10 @@ add_module_libraries(${MODULE_PREFIX} ${MODULE_NAME} ${MOD_VERSION_STRING})
 
 target_include_directories(${MODULE_NAME} PRIVATE
 	${RVC_TOOLKIT_INCLUDE_DIR}
-	#${OPENSSL_INCLUDE_DIR}
 )
 
 # 添加实体需要依赖的其他共享库(包括系统库)
-set(EXTEND_LIBS)
-if(MSVC)
-	list(APPEND EXTEND_LIBS ${CONAN_LIBS_OPENSSL})
-else()
-	#list(APPEND EXTEND_LIBS ssl)
-endif(MSVC)
-set(${MODULE_PREFIX}_LIBS ${EXTEND_LIBS} ${MODULE_BASE_LIBS} ${RVCCOMM_LIB})
-target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
+set(${MODULE_PREFIX}_LIBS ${MODULE_BASE_LIBS} ${RVCCOMM_LIB})
+target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS} CONAN_PKG::OpenSSL)
 
 deploy_module(${MODULE_PREFIX} ${MODULE_NAME})

+ 4 - 7
Module/mod_cardswiper/CMakeLists.txt

@@ -24,7 +24,6 @@ set(MOD_VERSION_STRING "1.0.0-dev1")
 add_module_libraries(${MODULE_PREFIX} ${MODULE_NAME} ${MOD_VERSION_STRING})
 
 target_include_directories(${MODULE_NAME} PRIVATE
-	# $(FrameworkHeadRoot)\Common 已经在顶层添加
 	${DevHeadPath}
 	${ModuleCommonHeadPath}
 	${CONAN_INCLUDE_DIRS_OPENSSL}
@@ -36,16 +35,14 @@ get_target_property(EXISTED_PROPERTIES ${MODULE_NAME} COMPILE_DEFINITIONS)
 set_target_properties(${MODULE_NAME} PROPERTIES COMPILE_DEFINITIONS "${EXISTED_PROPERTIES};_CRT_RAND_S")
 
 # 添加实体需要依赖的其他共享库(包括系统库)
-if(MSVC)
-	set(${MODULE_PREFIX}_LIBS  ${CONAN_LIBS_OPENSSL})
-else()
-	set(${MODULE_PREFIX}_LIBS  ssl)
-endif(MSVC)
 set(${MODULE_PREFIX}_SYSLIBS)
 if(MSVC)
 	list(APPEND ${MODULE_PREFIX}_SYSLIBS Ws2_32 Bthprops)
 endif(MSVC)
-target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_SYSLIBS} ${MODULE_BASE_LIBS} ${${MODULE_PREFIX}_LIBS})
+target_link_libraries(${MODULE_NAME} 
+	${${MODULE_PREFIX}_SYSLIBS} 
+	${MODULE_BASE_LIBS} 
+	${${MODULE_PREFIX}_LIBS} CONAN_PKG::OpenSSL)
 
 deploy_module(${MODULE_PREFIX} ${MODULE_NAME})
 

+ 0 - 0
Module/mod_rpc/CMakeLists.txt.useless → Module/mod_rpc/CMakeLists.txt


+ 2 - 2
addin/cmake/BuildMakeSettings.cmake

@@ -1,5 +1,5 @@
-SET(RVC_COMMON_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/Common)
-SET(RVC_TOOLKIT_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/libtoolkit)
+SET(RVC_COMMON_INCLUDE_DIR ${CONAN_RVCFRAMEWORK_ROOT}/include/Common)
+SET(RVC_TOOLKIT_INCLUDE_DIR ${CONAN_RVCFRAMEWORK_ROOT}/include/libtoolkit)
 
 # <ThirdPartyLib>$(MSBuildProjectDirectory)\..\..\ThirdParty\Release</ThirdPartyLib>
 SET(ThirdPartyLib "${PROJECT_SOURCE_DIR}/ThirdParty/Release")

+ 17 - 2
module/CMakeLists.txt

@@ -16,13 +16,22 @@ else()
     set(TOOLKIT_LIB libtoolkit)
 endif(RVC_DEBUG_MODE)
 
+set(WINPR_LIB winpr2)
+
 set(MODULE_BASE_LIBS ${SPBASE_LIB} ${TOOLKIT_LIB})
 set(MODULE_BASE_ALL_LIBS ${MODULE_BASE_LIBS} ${RVCCOMM_LIB}) 
 if(NOT MSVC)
-   # list(APPEND MODULE_BASE_LIBS winpr)
+    list(APPEND MODULE_BASE_LIBS ${WINPR_LIB})
 endif(NOT MSVC)
 set(MODULE_BASE_INCLUDES ${ModuleCommonHeadPath} ${RVC_TOOLKIT_INCLUDE_DIR})
 
+SET(RVC_COMMON_INCLUDE_DIR ${CONAN_RVCFRAMEWORK_ROOT}/include/Common PARENT_SCOPE)
+SET(RVC_TOOLKIT_INCLUDE_DIR ${CONAN_RVCFRAMEWORK_ROOT}/include/libtoolkit PARENT_SCOPE)
+SET(RVC_WINPR_INCLUDE_DIR ${CONAN_RVCFRAMEWORK_ROOT}/include)
+
+SET(RVC_FRAMEWORK_LIBRARIES_DIR ${CONAN_LIB_DIRS_RVCFRAMEWORK})
+SET(RVC_FRAMEWORK_INCLUDES_DIR ${RVC_COMMON_INCLUDE_DIR} 
+    ${RVC_TOOLKIT_INCLUDE_DIR} ${RVC_WINPR_INCLUDE_DIR})
 set(BUILD_MOUDLE_TEST OFF)
 if(BUILD_TESTING)
     set(BUILD_MOUDLE_TEST ON)
@@ -82,7 +91,12 @@ macro(add_module_libraries _module_prefix _module_name _module_version)
 	    target_include_directories(${_module_name} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
     endif(BUILD_MOUDLE_TEST)
     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})
+    target_include_directories(${_module_name} PRIVATE 
+        ${CMAKE_CURRENT_BINARY_DIR}
+        ${RVC_FRAMEWORK_INCLUDES_DIR}
+        )
+    target_link_directories(${_module_name} PRIVATE
+            ${RVC_FRAMEWORK_LIBRARIES_DIR})
 
     # 设置工程输出路径
     if(SIMULATE_DEV_AND_TEST_TEMP)
@@ -126,6 +140,7 @@ set(MODULE_CONAN_DEP_LIBS)
  add_subdirectory(mod_pinpad)
  add_subdirectory(mod_cardswiper)
  add_subdirectory(mod_CenterSetting)
+ add_subdirectory(mod_BootManager)
 
 # 遍历实体
 # file(GLOB all_valid_subdirs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*/CMakeLists.txt")