CMakeLists.txt 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #设置实体名称 ${MODULE_NAME},和实体前缀定义 ${MODULE_PREFIX}
  2. macro(define_moudle _module_name)
  3. set(MODULE_NAME "mod_${_module_name}")
  4. string(TOUPPER "MOD_${MODULE_NAME}" MODULE_PREFIX)
  5. endmacro(define_moudle)
  6. #macro(add_module _module_prefix _module_name)
  7. #endmacro(add_module)
  8. #对于 Windows 设置实体的版本信息
  9. #定义共享库输出
  10. macro(add_module_libraries _module_prefix _module_name)
  11. if(WIN32)
  12. set (RC_VERSION_MAJOR ${RVC_VERSION_MAJOR})
  13. set (RC_VERSION_MINOR ${RVC_VERSION_MINOR})
  14. set (RC_VERSION_BUILD ${RVC_VERSION_REVISION})
  15. set (RC_VERSION_PATCH 0)
  16. set(RC_VERSION_DESCRIPTION "${CMAKE_SHARED_LIBRARY_PREFIX}${_module_name}${CMAKE_SHARED_LIBRARY_SUFFIX}")
  17. configure_file(
  18. ${CMAKE_SOURCE_DIR}/Version.rc.in
  19. ${CMAKE_CURRENT_BINARY_DIR}/version.rc
  20. @ONLY)
  21. set(${_module_prefix}_SRCS ${${_module_prefix}_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
  22. endif(WIN32)
  23. add_library(${_module_name} SHARED ${${_module_prefix}_SRCS})
  24. # 设置工程输出路径
  25. if(SIMULATE_DEV_AND_TEST_TEMP)
  26. set_target_properties(${_module_name}
  27. PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/run/version/1.2.3.4/mod")
  28. endif(SIMULATE_DEV_AND_TEST_TEMP)
  29. endmacro(add_module_libraries)
  30. # 设置实体的安装拷贝路径
  31. # 对于 Windows 设置实体项目工程在解决方案的节点
  32. macro(deploy_module _module_prefix _module_name)
  33. install(TARGETS ${_module_name}
  34. RUNTIME DESTINATION "${RVC_MODULE_PATH}"
  35. ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
  36. LIBRARY DESTINATION "${RVC_LIBRARY_PATH}"
  37. COMPONENT modules)
  38. set_property(TARGET ${_module_name} PROPERTY FOLDER "module/")
  39. endmacro(deploy_module)
  40. #set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} freerdp-client)
  41. #set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} winpr freerdp)
  42. #set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} msimg32)
  43. #target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
  44. set(MODULE_BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
  45. # 遍历实体
  46. file(GLOB module_dirs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/*")
  47. set(module_list "")
  48. foreach(module_dir ${module_dirs})
  49. if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${module_dir})
  50. list(APPEND module_list ${module_dir})
  51. endif()
  52. endforeach()
  53. foreach(module ${module_list})
  54. message(STATUS "add module ${module}...")
  55. add_subdirectory(${module})
  56. endforeach()