CMakeLists.txt 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. set(MODULE_NAME "RVCComm")
  2. set(MODULE_PREFIX "RVCCOMM")
  3. if(MSVC)
  4. # add_definitions(-DRVCCOMM_EXPORTS)
  5. endif(MSVC)
  6. message(STATUS "PROJECT_SOURCE_DIR: ${PROJECT_SOURCE_DIR}")
  7. include_directories(${PROJECT_SOURCE_DIR}/third_party/openssl-1.1.1d/include/openssl)
  8. include_directories(.)
  9. file(GLOB ${MODULE_PREFIX}_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cpp" "*.h" "*.c")
  10. # remove the no use file at all platform so far
  11. list(REMOVE_ITEM ${MODULE_PREFIX}_SRCS
  12. ClientBase.h
  13. ClientBase.cpp
  14. ServerComm.h
  15. ServerComm.cpp
  16. )
  17. if (NOT WIN32)
  18. list(REMOVE_ITEM ${MODULE_PREFIX}_SRCS
  19. XZip.h
  20. XZip.cpp
  21. XUnzip.h
  22. XUnzip.cpp
  23. )
  24. endif()
  25. if (WIN32)
  26. set (RC_VERSION_MAJOR ${RVC_VERSION_MAJOR})
  27. set (RC_VERSION_MINOR ${RVC_VERSION_MINOR})
  28. set (RC_VERSION_BUILD ${RVC_VERSION_REVISION})
  29. configure_file(
  30. ${CMAKE_SOURCE_DIR}/Version.rc.in
  31. ${CMAKE_CURRENT_BINARY_DIR}/version.rc
  32. @ONLY)
  33. set ( ${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
  34. endif()
  35. add_library(${MODULE_NAME} SHARED ${${MODULE_PREFIX}_SRCS})
  36. target_link_libraries(${MODULE_NAME} ssl winpr)
  37. target_compile_definitions(${MODULE_NAME} PRIVATE "-DRVCCOMM_EXPORTS=1")
  38. if (BUILD_TESTING)
  39. add_library(${MODULE_NAME}_a STATIC ${${MODULE_PREFIX}_SRCS})
  40. target_link_libraries(${MODULE_NAME}_a ssl winpr)
  41. target_compile_definitions(${MODULE_NAME}_a PRIVATE "-DRVCCOMM_LINKED_AS_STATIC_LIBRARY")
  42. add_subdirectory(test)
  43. endif()
  44. install(TARGETS ${MODULE_NAME}
  45. RUNTIME DESTINATION "${RVC_RUNTIME_PATH}"
  46. ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
  47. LIBRARY DESTINATION "${RVC_LIBRARY_PATH}"
  48. COMPONENT libraries)
  49. if (WITH_DEBUG_SYMBOLS AND MSVC AND BUILD_SHARED_LIBS)
  50. install(FILES ${CMAKE_PDB_BINARY_DIR}/${MODULE_NAME}.pdb DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT symbols)
  51. endif()