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) 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}) # 设置工程输出路径 # set_target_properties(${_module_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${RVC_MODULE_LIBRARY_PATH}") endmacro(add_module_libraries) 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}) 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()