| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- # 非招行开发人员不允许改动本文件!!
- if(RVC_VERSION)
- set(RVC_INTEGRATE_BUILD TRUE)
- else()
- project(DevAdapter)
- cmake_minimum_required (VERSION 3.8)
- endif(RVC_VERSION)
- if(MSVC)
- set(DIFF_PLATFORM_SUB_DIR "msvc_x86")
- else()
- set(DIFF_PLATFORM_SUB_DIR "gcc_x64")
- endif(MSVC)
- if(RVC_INTEGRATE_BUILD)
- include_directories(${RVC_COMMON_INCLUDE_DIR})
- if(SIMULATE_ON)
- rvc_set_library_output_dir("${RVC_INSTALL_PREFIX}${RVC_VENDOR_PATH}")
- endif(SIMULATE_ON)
- 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_ON)
- set_target_properties(${MODULE_FULL_NAME} PROPERTIES
- LIBRARY_OUTPUT_DIRECTORY_DEBUG "${RVC_INSTALL_PREFIX}${RVC_VENDOR_PATH}"
- LIBRARY_OUTPUT_DIRECTORY_RELEASE "${RVC_INSTALL_PREFIX}${RVC_VENDOR_PATH}"
- )
- endif(SIMULATE_ON)
- endmacro(rvc_dev_config_library)
- # 该宏仅在招行的编译生成环境下才会应用
- macro(rvc_dev_target_install _target)
- if(RVC_INTEGRATE_BUILD)
- 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)
- endif(RVC_INTEGRATE_BUILD)
- endmacro(rvc_dev_target_install)
- macro(rvc_aggereate_runtime_file)
- if(RVC_INTEGRATE_BUILD)
- set(TEMP_CURRENT_ASSET_DIR "${CMAKE_CURRENT_SOURCE_DIR}/assets")
- set(TEMP_CURRENT_LIB_DIR "${CMAKE_CURRENT_SOURCE_DIR}/lib/${DIFF_PLATFORM_SUB_DIR}")
- set(TEMP_CURRENT_BIN_DIR "${CMAKE_CURRENT_SOURCE_DIR}/bin/${DIFF_PLATFORM_SUB_DIR}")
- # 添加如下内容用于收录 lib 下的 .so 库 或者 bin 下的 .dll 库 以及 资源文件
- set(RVC_VENDOR_DEP_LIB_DIRS ${RVC_VENDOR_DEP_LIB_DIRS}
- ${TEMP_CURRENT_BIN_DIR} ${TEMP_CURRENT_ASSET_DIR} PARENT_SCOPE)
- if(NOT MSVC)
- set(RVC_VENDOR_DEP_LIB_DIRS ${RVC_VENDOR_DEP_LIB_DIRS}
- ${TEMP_CURRENT_LIB_DIR} PARENT_SCOPE)
- endif(NOT MSVC)
- endif(RVC_INTEGRATE_BUILD)
- endmacro(rvc_aggereate_runtime_file)
- set(DEVADAPTER_INCLUDES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include)
- include_directories(${DEVADAPTER_INCLUDES_DIR})
- # 用于收录每一个厂商目录下 bin/*.dll 和 lib/*.so 文件
- set(RVC_VENDOR_DEP_LIB_DIRS "")
- if(RVC_INTEGRATE_BUILD)
- add_subdirectory(self)
- endif(RVC_INTEGRATE_BUILD)
- add_subdirectory(cmbsz)
- if(RVC_INTEGRATE_BUILD)
- list(REMOVE_DUPLICATES RVC_VENDOR_DEP_LIB_DIRS)
- foreach(dep_dir ${RVC_VENDOR_DEP_LIB_DIRS})
- message(STATUS "dep_dir: ${dep_dir}")
- file(GLOB RVC_DEP_BIN_FILES "${dep_dir}/*")
- message(STATUS "before file: ${RVC_DEP_BIN_FILES}")
- list(FILTER RVC_DEP_BIN_FILES EXCLUDE REGEX ".*\.a$")
- message(STATUS "after file: ${RVC_DEP_BIN_FILES}")
- install(PROGRAMS ${RVC_DEP_BIN_FILES} DESTINATION "${RVC_VENDOR_PATH}" COMPONENT devadapters)
- endforeach()
- endif(RVC_INTEGRATE_BUILD)
|