| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #设置实体名称 ${MODULE_NAME},和实体前缀定义 ${MODULE_PREFIX}
- macro(define_moudle _module_name)
- set(MODULE_NAME "mod_${_module_name}")
- string(TOUPPER "MOD_${MODULE_NAME}" MODULE_PREFIX)
- endmacro(define_moudle)
- #macro(add_module _module_prefix _module_name)
- #endmacro(add_module)
- #对于 Windows 设置实体的版本信息
- #定义共享库输出
- macro(add_module_libraries _module_prefix _module_name)
- if(WIN32)
- set (RC_VERSION_MAJOR ${RVC_VERSION_MAJOR})
- set (RC_VERSION_MINOR ${RVC_VERSION_MINOR})
- set (RC_VERSION_BUILD ${RVC_VERSION_REVISION})
- set (RC_VERSION_PATCH 0)
- set(RC_VERSION_DESCRIPTION "${CMAKE_SHARED_LIBRARY_PREFIX}${_module_name}${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)
- add_library(${_module_name} SHARED ${${_module_prefix}_SRCS})
- # 设置工程输出路径
- if(SIMULATE_DEV_AND_TEST_TEMP)
- set_target_properties(${_module_name}
- PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/run/version/1.2.3.4/mod")
- endif(SIMULATE_DEV_AND_TEST_TEMP)
- endmacro(add_module_libraries)
- # 设置实体的安装拷贝路径
- # 对于 Windows 设置实体项目工程在解决方案的节点
- macro(deploy_module _module_prefix _module_name)
- install(TARGETS ${_module_name}
- RUNTIME DESTINATION "${RVC_MODULE_PATH}"
- ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
- LIBRARY DESTINATION "${RVC_LIBRARY_PATH}"
- COMPONENT modules)
- set_property(TARGET ${_module_name} PROPERTY FOLDER "module/")
- endmacro(deploy_module)
- #set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} freerdp-client)
- #set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} winpr freerdp)
- #set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} msimg32)
- #target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
- set(MODULE_BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
- # 遍历实体
- file(GLOB module_dirs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/*")
- set(module_list "")
- foreach(module_dir ${module_dirs})
- if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${module_dir})
- list(APPEND module_list ${module_dir})
- endif()
- endforeach()
- foreach(module ${module_list})
- message(STATUS "add module ${module}...")
- add_subdirectory(${module})
- endforeach()
|