CMakeLists.txt 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
  1. # 非招行开发人员不允许改动本文件!!
  2. set(RVC_INTEGRATE_BUILD TRUE)
  3. set(RVC_INTEGRATE_BUILDV2 TRUE)
  4. set(DEVADAPTER_USING_CONAN TRUE)
  5. if(WITH_LOCAL_DEVLIB)
  6. set(DEVADAPTER_USING_CONAN FALSE)
  7. endif(WITH_LOCAL_DEVLIB)
  8. if(MSVC AND (CMAKE_SYSTEM_PROCESSOR MATCHES "i386|i686|x86|AMD64") )
  9. set(DIFF_PLATFORM_SUB_DIR "msvc_x86")
  10. elseif((NOT MSVC) AND (CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64"))
  11. set(DIFF_PLATFORM_SUB_DIR "gcc_aarch64")
  12. elseif((NOT MSVC) AND (CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64"))
  13. set(DIFF_PLATFORM_SUB_DIR "gcc_x64")
  14. endif()
  15. message(STATUS "lib rely on directory: ${DIFF_PLATFORM_SUB_DIR}")
  16. include_directories(${RVC_COMMON_INCLUDE_DIR})
  17. macro(rvc_traverse_sub_cmake_dirs)
  18. file(GLOB all_valid_subdirs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*/CMakeLists.txt")
  19. foreach(dir ${all_valid_subdirs})
  20. if(${dir} MATCHES "^([^/]*)/+CMakeLists.txt")
  21. string(REGEX REPLACE "^([^/]*)/+CMakeLists.txt" "\\1" dir_trimmed ${dir})
  22. message(STATUS "add module ${dir_trimmed}")
  23. add_subdirectory(${dir_trimmed})
  24. endif()
  25. endforeach(dir)
  26. endmacro(rvc_traverse_sub_cmake_dirs)
  27. macro(rvc_define_dependen_dirs)
  28. set(VENDOR_CURRENT_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
  29. # include vendor static libraries and comm header files in conan way.
  30. if(DEVADAPTER_USING_CONAN)
  31. STRING( REGEX REPLACE ".*/(.*)" "\\1" CURRENT_VENDOR_FOLDER ${CMAKE_CURRENT_SOURCE_DIR} )
  32. message(STATUS "vendor name : ${CURRENT_VENDOR_FOLDER}")
  33. string(TOUPPER ${CURRENT_VENDOR_FOLDER} CURRENT_VENDOR_FOLDER)
  34. #if defined conan dependency package for specified vendor
  35. if(${CURRENT_VENDOR_FOLDER}_CONAN_LIB_NAME)
  36. conan_cmake_run(REQUIRES ${${CURRENT_VENDOR_FOLDER}_CONAN_LIB_NAME}
  37. BASIC_SETUP CMAKE_TARGETS)
  38. # 如果使用Conan,则替换为Conan的路径引用
  39. set(VENDOR_CURRENT_SOURCE_DIR ${CONAN_${CURRENT_VENDOR_FOLDER}_ROOT})
  40. endif()
  41. endif(DEVADAPTER_USING_CONAN)
  42. # 放置有源码的适配器依赖库工程文件
  43. set(VENDOR_CURRENT_DEPS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/deps")
  44. set(VENDOR_CURRENT_INCLUDE_DIR "${VENDOR_CURRENT_SOURCE_DIR}/include")
  45. set(VENDOR_CURRENT_ASSET_DIR "${VENDOR_CURRENT_SOURCE_DIR}/assets")
  46. set(VENDOR_CURRENT_LIB_DIR "${VENDOR_CURRENT_SOURCE_DIR}/lib/${DIFF_PLATFORM_SUB_DIR}")
  47. set(VENDOR_CURRENT_BIN_DIR "${VENDOR_CURRENT_SOURCE_DIR}/bin/${DIFF_PLATFORM_SUB_DIR}")
  48. endmacro(rvc_define_dependen_dirs)
  49. macro(rvc_aggerate_vendor_libs _vendor_name)
  50. # include vendor all devadapter libraries in conan way.
  51. if(DEVADAPTER_USING_CONAN)
  52. message(STATUS "vendor name v2 : ${_vendor_name}")
  53. string(TOUPPER ${_vendor_name} CURRENT_VENDOR)
  54. #if defined conan dependency package for specified vendor
  55. if(${CURRENT_VENDOR}_CONAN_ALL_LIB_NAME)
  56. conan_cmake_run(REQUIRES ${${CURRENT_VENDOR}_CONAN_ALL_LIB_NAME}
  57. BASIC_SETUP CMAKE_TARGETS)
  58. set(VENDOR_CURRENT_ALL_LIB_ROOT_DIR ${CONAN_${CURRENT_VENDOR}_ROOT})
  59. set(VENDOR_ALL_DEPS_DIR "${VENDOR_CURRENT_ALL_LIB_ROOT_DIR}/dep")
  60. set(RVC_VENDOR_DEP_LIB_DIRS ${RVC_VENDOR_DEP_LIB_DIRS} ${VENDOR_ALL_DEPS_DIR})
  61. endif()
  62. endif(DEVADAPTER_USING_CONAN)
  63. endmacro(rvc_aggerate_vendor_libs)
  64. macro(rvc_dev_define_module _module_name)
  65. set(MODULE_NAME "${_module_name}")
  66. string(TOUPPER "${MODULE_NAME}" MODULE_PREFIX)
  67. endmacro(rvc_dev_define_module)
  68. # 工程配置文件
  69. macro(rvc_dev_config_library _module_name _module_prefix)
  70. set(${_module_prefix}_CHARACTERISTIC "${${_module_prefix}_VENDOR}.${${_module_prefix}_VERSION}.${${_module_prefix}_BATCH}")
  71. set(MODULE_FULL_NAME "${_module_name}_${${_module_prefix}_VENDOR}_${${_module_prefix}_VERSION}_${${_module_prefix}_BATCH}")
  72. if (MSVC)
  73. set (RC_VERSION_MAJOR ${${_module_prefix}_VERSION})
  74. set (RC_VERSION_MINOR ${${_module_prefix}_BATCH})
  75. set (RC_VERSION_BUILD ${MSVC_TOOLSET_VERSION})
  76. set (RC_VERSION_PATCH ${MSVC_VERSION})
  77. configure_file(
  78. ${CMAKE_SOURCE_DIR}/version.rc.in
  79. ${CMAKE_CURRENT_BINARY_DIR}/version.rc
  80. @ONLY)
  81. set ( ${_module_prefix}_SRCS ${${_module_prefix}_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
  82. endif(MSVC)
  83. add_library(${MODULE_FULL_NAME} ${${_module_prefix}_SRCS})
  84. set_target_properties(${MODULE_FULL_NAME} PROPERTIES COMPILE_DEFINITIONS "DEVICEBASE_EXPORTS")
  85. set_target_properties(${MODULE_FULL_NAME} PROPERTIES
  86. OUTPUT_NAME "${_module_name}.${${_module_prefix}_CHARACTERISTIC}")
  87. target_include_directories(${MODULE_FULL_NAME} PRIVATE ${DEVADAPTER_CURRENT_INCLUDES_DIR} ${VENDOR_CURRENT_INCLUDE_DIR})
  88. target_link_directories(${MODULE_FULL_NAME} PRIVATE ${DEVADAPTER_CURRENT_LIB_DIR} ${VENDOR_CURRENT_LIB_DIR})
  89. if(MSVC)
  90. set_property(TARGET ${MODULE_FULL_NAME} PROPERTY FOLDER "devadapter/${CURRENT_VENDOR}/")
  91. endif(MSVC)
  92. endmacro(rvc_dev_config_library)
  93. # 该宏仅在招行的编译生成环境下才会应用
  94. macro(rvc_dev_target_install _target)
  95. if(RVC_INTEGRATE_BUILD)
  96. if(MSVC)
  97. install(TARGETS ${_target}
  98. RUNTIME DESTINATION "${RVC_VENDOR_PATH}" COMPONENT devadapters
  99. ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}" COMPONENT develops EXCLUDE_FROM_ALL
  100. LIBRARY DESTINATION "${RVC_VENDOR_PATH}" COMPONENT devadapters
  101. )
  102. else()
  103. install(TARGETS ${_target}
  104. RUNTIME DESTINATION "${RVC_VENDOR_PATH}"
  105. ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
  106. LIBRARY DESTINATION "${RVC_VENDOR_PATH}"
  107. COMPONENT libraries)
  108. endif(MSVC)
  109. elseif(RVC_VENDOR_CONFIGV2)
  110. install(TARGETS ${_target}
  111. RUNTIME DESTINATION "${RVC_VENDOR_PATH}"
  112. ARCHIVE DESTINATION "${RVC_VENDOR_PATH}"
  113. LIBRARY DESTINATION "${RVC_VENDOR_PATH}")
  114. endif(RVC_INTEGRATE_BUILD)
  115. endmacro(rvc_dev_target_install)
  116. # 用于收录厂商文件夹目录下 lib 下的 .so 库 或者 bin 下的 .dll 库 以及 资源文件
  117. macro(rvc_aggereate_runtime_file)
  118. if(RVC_INTEGRATE_BUILD)
  119. set(RVC_VENDOR_DEP_LIB_DIRS ${RVC_VENDOR_DEP_LIB_DIRS} ${RVC_VENDOR_LIB_DIRS}
  120. ${VENDOR_CURRENT_BIN_DIR} ${VENDOR_CURRENT_ASSET_DIR} PARENT_SCOPE)
  121. if(NOT MSVC)
  122. set(RVC_VENDOR_DEP_LIB_DIRS ${RVC_VENDOR_DEP_LIB_DIRS} ${VENDOR_CURRENT_LIB_DIR} ${VENDOR_CURRENT_ASSET_DIR} PARENT_SCOPE)
  123. endif(NOT MSVC)
  124. elseif(RVC_VENDOR_CONFIGV2)
  125. set(RVC_VENDOR_DEP_LIB_DIRS ${RVC_VENDOR_DEP_LIB_DIRS} ${RVC_VENDOR_LIB_DIRS}
  126. ${VENDOR_CURRENT_BIN_DIR} ${VENDOR_CURRENT_ASSET_DIR} PARENT_SCOPE)
  127. if(NOT MSVC)
  128. set(RVC_VENDOR_DEP_LIB_DIRS ${RVC_VENDOR_DEP_LIB_DIRS} ${VENDOR_CURRENT_LIB_DIR} ${VENDOR_CURRENT_ASSET_DIR} PARENT_SCOPE)
  129. endif(NOT MSVC)
  130. endif(RVC_INTEGRATE_BUILD)
  131. endmacro(rvc_aggereate_runtime_file)
  132. set(DEVADAPTER_CURRENT_INCLUDES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include)
  133. set(DEVADAPTER_CURRENT_ASSET_DIR "${CMAKE_CURRENT_SOURCE_DIR}/assets")
  134. set(DEVADAPTER_CURRENT_LIB_DIR "${CMAKE_CURRENT_SOURCE_DIR}/lib/${DIFF_PLATFORM_SUB_DIR}")
  135. set(DEVADAPTER_CURRENT_BIN_DIR "${CMAKE_CURRENT_SOURCE_DIR}/bin/${DIFF_PLATFORM_SUB_DIR}")
  136. # 用于收录每一个厂商目录下 bin/*.dll 和 lib/*.so 文件,先收集当前目录下统一的库文件以及资源文件
  137. set(RVC_VENDOR_DEP_LIB_DIRS ${DEVADAPTER_CURRENT_BIN_DIR} ${DEVADAPTER_CURRENT_ASSET_DIR})
  138. if(NOT MSVC)
  139. set(RVC_VENDOR_DEP_LIB_DIRS ${RVC_VENDOR_DEP_LIB_DIRS} ${DEVADAPTER_CURRENT_LIB_DIR})
  140. endif(NOT MSVC)
  141. set(VENDOR_LOG_LIBRARY_NAME "cmblog4vendor")
  142. # 使用工程源码编译
  143. set(VENDOR_LOG_LIB_NAME log4vendor)
  144. add_subdirectory(liblog4vendor)
  145. message(STATUS "vendor log library: ${VENDOR_LOG_LIB_NAME}")
  146. # 通过conan的方式管理厂商库
  147. if(DEVADAPTER_USING_CONAN)
  148. if(MSVC) #Windows 厂商适配器
  149. if(RVC_INTEGRATE_BUILDV2 AND NOT ONLY_PURE_ADAPTER_RELY)
  150. #厂商适配器兼容WIN的提交,需要将以前的ZIP链接转化为Conan依赖包,处理完之后这里填写内容进行拉取:Demo
  151. #set(CMB_CONAN_ALL_LIB_NAME cmb/2024.0315.20@LR04.02_VendorLib/msvc)
  152. #长城读卡接口优化
  153. set(GWI_CONAN_ALL_LIB_NAME gwi/2024.0722.6@LR04.02_VendorLib/msvc)
  154. set(KEBA_CONAN_ALL_LIB_NAME keba/2024.0326.23@LR04.02_VendorLib/msvc)
  155. #【阅知】关于适配器解耦完成测试事宜
  156. set(CW_CONAN_ALL_LIB_NAME cw/2024.1125.57@LR04.02_VendorLib/msvc)
  157. #rvc_aggerate_vendor_libs(cmb)
  158. rvc_aggerate_vendor_libs(gwi)
  159. rvc_aggerate_vendor_libs(keba)
  160. rvc_aggerate_vendor_libs(cw)
  161. endif(RVC_INTEGRATE_BUILDV2 AND NOT ONLY_PURE_ADAPTER_RELY)
  162. else() #UOS厂商适配器
  163. if(RVC_INTEGRATE_BUILDV2 AND NOT ONLY_PURE_ADAPTER_RELY)
  164. #邮件 试运行设备的密码键盘与读卡器的提示灯物理地址与测试样机的物理地址不一致
  165. set(KEBA_CONAN_ALL_LIB_NAME keba/2024.0814.32@LR04.02_VendorLib/stable)
  166. #【阅知】关于适配器解耦完成测试事宜
  167. set(CW_CONAN_ALL_LIB_NAME cw/2024.1220.47@LR04.02_VendorLib/stable)
  168. #【阅知】关于适配器解耦完成测试事宜
  169. set(SZZT_CONAN_ALL_LIB_NAME szzt/2024.1209.40@LR04.02_VendorLib/stable)
  170. #长城信创单屏设备root.ini配置需要更新为(根据行方规范,将信创单屏设备版本号修改为2.x)
  171. set(GWI_CONAN_ALL_LIB_NAME gwi/2024.0723.20@LR04.02_VendorLib/stable)
  172. #Fw: 回复:回复: Fw: 回复:回复: Fw: 南天-缺陷案例解决方案及适配器整合
  173. set(NANTIAN_CONAN_ALL_LIB_NAME nantian/2024.0802.2@LR04.02_VendorLib/stable)
  174. #Fw: 单屏VTM最新版本链接
  175. set(GRG_CONAN_ALL_LIB_NAME grg/2024.0913.45@LR04.02_VendorLib/stable)
  176. #根据开发规范适配器与依赖库简称由【CBPM】变更为【cbpm】案例自测完成
  177. set(CBPM_CONAN_ALL_LIB_NAME cbpm/2024.1101.10@LR04.02_VendorLib/stable)
  178. rvc_aggerate_vendor_libs(keba)
  179. rvc_aggerate_vendor_libs(cw)
  180. rvc_aggerate_vendor_libs(szzt)
  181. rvc_aggerate_vendor_libs(gwi)
  182. rvc_aggerate_vendor_libs(nantian)
  183. rvc_aggerate_vendor_libs(grg)
  184. rvc_aggerate_vendor_libs(cbpm)
  185. endif(RVC_INTEGRATE_BUILDV2 AND NOT ONLY_PURE_ADAPTER_RELY)
  186. endif(MSVC)
  187. if(MSVC)
  188. #CardLibDB_CMB.db3
  189. if(NOT ONLY_PURE_ADAPTER_RELY)
  190. conan_cmake_run(REQUIRES VendorDLL/2024.11.1401@LR04.02_VendorLib/testing
  191. BASIC_SETUP CMAKE_TARGETS)
  192. endif(NOT ONLY_PURE_ADAPTER_RELY)
  193. set(SELF_CONAN_LIB_NAME self/2024.1217.01@LR04.02_VendorLib/testing)
  194. add_subdirectory(self)
  195. endif(MSVC)
  196. endif(DEVADAPTER_USING_CONAN)
  197. if(NOT ONLY_PURE_ADAPTER_RELY)
  198. file(GLOB all_valid_subdirs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*/CMakeLists.txt")
  199. endif(NOT ONLY_PURE_ADAPTER_RELY)
  200. foreach(dir ${all_valid_subdirs})
  201. if(${dir} MATCHES "^([^/]*)/+CMakeLists.txt")
  202. string(REGEX REPLACE "^([^/]*)/+CMakeLists.txt" "\\1" dir_trimmed ${dir})
  203. # remove 'self' sub directory bcz it would be added seperately
  204. if(DEVOPS_ON)
  205. #硬件模拟器在生产流水线不参与编译
  206. #liblog4vendor 单独上面提前编译
  207. #simulator 编译纯适配器时无法编译,因为依赖框架RVCComm库
  208. if(DEVOPS_ON_CMAKE_PRD)
  209. string(FIND "liblog4vendor|self|cmbsz|simulator" ${dir_trimmed} found)
  210. else()
  211. if(ONLY_BUILD_DEVADAPTER)
  212. string(FIND "liblog4vendor|self|cmbsz|simulator" ${dir_trimmed} found)
  213. else()
  214. string(FIND "liblog4vendor|self|cmbsz" ${dir_trimmed} found)
  215. endif(ONLY_BUILD_DEVADAPTER)
  216. endif(DEVOPS_ON_CMAKE_PRD)
  217. else()
  218. if(ONLY_BUILD_DEVADAPTER)
  219. string(FIND "liblog4vendor|self|simulator" ${dir_trimmed} found)
  220. else()
  221. string(FIND "liblog4vendor|self" ${dir_trimmed} found)
  222. endif(ONLY_BUILD_DEVADAPTER)
  223. endif(DEVOPS_ON)
  224. message(STATUS "found: ${found}")
  225. if((NOT RVC_INTEGRATE_BUILD) OR (${found} EQUAL -1))
  226. message(STATUS "Adding vendor component ${dir_trimmed}")
  227. add_subdirectory(${dir_trimmed})
  228. endif((NOT RVC_INTEGRATE_BUILD) OR (${found} EQUAL -1))
  229. endif()
  230. endforeach(dir)
  231. if(RVC_INTEGRATE_BUILD)
  232. #安装VS2010下的厂商文件,先安装,防止旧的覆盖新的内容
  233. if(CONAN_RES_DIRS_VENDORDLL)
  234. file(GLOB RVC_DEP_BIN_FILES "${CONAN_RES_DIRS_VENDORDLL}/*")
  235. install(FILES ${RVC_DEP_BIN_FILES} DESTINATION "${RVC_VENDOR_PATH}" COMPONENT devadapters)
  236. endif(CONAN_RES_DIRS_VENDORDLL)
  237. list(REMOVE_DUPLICATES RVC_VENDOR_DEP_LIB_DIRS)
  238. message(STATUS "dep_dirs:${RVC_VENDOR_DEP_LIB_DIRS}")
  239. foreach(dep_dir ${RVC_VENDOR_DEP_LIB_DIRS})
  240. message(STATUS "dep_dir: ${dep_dir}")
  241. file(GLOB RVC_DEP_BIN_FILES "${dep_dir}/*")
  242. list(REMOVE_DUPLICATES RVC_DEP_BIN_FILES)
  243. message(STATUS "before file: ${RVC_DEP_BIN_FILES}")
  244. list(FILTER RVC_DEP_BIN_FILES EXCLUDE REGEX ".*\\.a$")
  245. list(FILTER RVC_DEP_BIN_FILES EXCLUDE REGEX ".*\\liblog4cplus.so$")
  246. list(FILTER RVC_DEP_BIN_FILES EXCLUDE REGEX ".*\\libcmblog4vendor.so$")
  247. message(STATUS "after file: ${RVC_DEP_BIN_FILES}")
  248. foreach(bin_file ${RVC_DEP_BIN_FILES})
  249. if(IS_DIRECTORY ${bin_file})
  250. string(REGEX MATCH ".*/grg$" GRG_LIB_DIR_NAME "${bin_file}")
  251. string(LENGTH "${GRG_LIB_DIR_NAME}" GRG_LIB_DIR_NAME_length)
  252. if(NOT ${GRG_LIB_DIR_NAME_length})
  253. install(DIRECTORY "${bin_file}" DESTINATION "${RVC_VENDOR_PATH}" COMPONENT devadapters)
  254. else()
  255. message(STATUS "skip install dir: ${bin_file}")
  256. endif(NOT ${GRG_LIB_DIR_NAME_length})
  257. else()
  258. install(PROGRAMS ${bin_file} DESTINATION "${RVC_VENDOR_PATH}" COMPONENT devadapters)
  259. endif()
  260. endforeach()
  261. endforeach()
  262. elseif(RVC_VENDOR_CONFIGV2)
  263. # 此列表中的文件已在终端应用中包含,所以要移除,TODO: Windows 需要兼容
  264. set(USELESS_DEVADAPTER_FILE_NAMES
  265. liblog4cplus.so
  266. libcmblog4vendor.so
  267. )
  268. list(REMOVE_DUPLICATES RVC_VENDOR_DEP_LIB_DIRS)
  269. foreach(dep_dir ${RVC_VENDOR_DEP_LIB_DIRS})
  270. message(STATUS "dep_dir: ${dep_dir}")
  271. file(GLOB RVC_DEP_BIN_FILES "${dep_dir}/*")
  272. list(REMOVE_DUPLICATES RVC_DEP_BIN_FILES)
  273. message(STATUS "before file: ${RVC_DEP_BIN_FILES}")
  274. foreach(filter_elem ${USELESS_DEVADAPTER_FILE_NAMES})
  275. set(filter_args ".*\\${filter_elem}$")
  276. list(FILTER RVC_DEP_BIN_FILES EXCLUDE REGEX ${filter_args})
  277. endforeach()
  278. list(FILTER RVC_DEP_BIN_FILES EXCLUDE REGEX ".*\\.a$")
  279. message(STATUS "after file: ${RVC_DEP_BIN_FILES}")
  280. foreach(bin_file ${RVC_DEP_BIN_FILES})
  281. if(IS_DIRECTORY ${bin_file})
  282. install(DIRECTORY "${bin_file}" DESTINATION "${RVC_VENDOR_PATH}")
  283. else()
  284. install(PROGRAMS ${bin_file} DESTINATION "${RVC_VENDOR_PATH}")
  285. endif()
  286. endforeach()
  287. endforeach()
  288. endif(RVC_INTEGRATE_BUILD)
  289. if((NOT RVC_INTEGRATE_BUILD) AND RVC_VENDOR_CONFIGV2)
  290. if(NOT CPACK_GENERATOR)
  291. set(CPACK_GENERATOR "ZIP")
  292. message(STATUS "set zip package file type for matching head bank publish")
  293. endif()
  294. set(CPACK_PACKAGE_FILE_NAME "${DEVADAPTER_VENDOR}_${DEVADAPTER_PROJECT_NAME}_${DEVADAPTER_VERSION}")
  295. set(CPACK_PACKAGE_NAME "${DEVADAPTER_VENDOR}-${DEVADAPTER_PROJECT_NAME}")
  296. set(CPACK_PACKAGE_VENDOR "${DEVADAPTER_VENDOR}")
  297. set(CPACK_PACKAGE_VERSION ${DEVADAPTER_VERSION})
  298. set(CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE TRUE)
  299. include(CPack)
  300. endif((NOT RVC_INTEGRATE_BUILD) AND RVC_VENDOR_CONFIGV2)