123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- set(MODULE_NAME "RVCComm")
- set(MODULE_PREFIX "RVCCOMM")
- include_directories(${CONAN_INCLUDE_DIRS_OPENSSL})
- include_directories(${CONAN_INCLUDE_DIRS_OPENSSL}/openssl)
- include_directories(${CMAKE_CURRENT_SOURCE_DIR})
- file(GLOB ${MODULE_PREFIX}_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cpp" "*.h" "*.c")
- # remove the no use file at all platform so far
- list(REMOVE_ITEM ${MODULE_PREFIX}_SRCS
- ClientBase.h
- ClientBase.cpp
- ServerComm.h
- ServerComm.cpp
- )
- set(RVCCOMM_VERSION_STRING "1.0.1-dev1")
- rvc_set_win_dll_ver(${MODULE_PREFIX} ${RVCCOMM_VERSION_STRING})
- add_library(${MODULE_NAME} SHARED ${${MODULE_PREFIX}_SRCS})
- message(STATUS "CONAN_INCLUDE_DIRS_CURL: ${CONAN_INCLUDE_DIRS_CURL}")
- target_include_directories(${MODULE_NAME} PRIVATE
- ${CONAN_INCLUDE_DIRS_LIBKYSM}
- ${CONAN_INCLUDE_DIRS_CURL}
- ${CONAN_INCLUDE_DIRS_JSONCPP}
- ${RVC_TOOLKIT_INCLUDE_DIR}
- )
- target_link_directories(${MODULE_NAME} PRIVATE
- ${CONAN_LIB_DIRS_LIBKYSM}
- ${CONAN_LIB_DIRS_LIBSSH2}
- ${CONAN_LIB_DIRS_CURL}
- ${CONAN_LIB_DIRS_JSONCPP}
- )
- target_link_libraries(${MODULE_NAME}
- ${PRIVATE_KEYWORD} ${KYSM_LIBRARY_NAME}
- ${PRIVATE_KEYWORD} winpr
- ${PRIVATE_KEYWORD} libtoolkit
- ${PRIVATE_KEYWORD} ${OPENSSL_SSL_LIBRARY}
- ${PRIVATE_KEYWORD} ${OPENSSL_CRYPTO_LIBRARY}
- ${PRIVATE_KEYWORD} ${CONAN_LIBS_LIBSSH2}
- ${PRIVATE_KEYWORD} ${CONAN_LIBS_CURL}
- ${PRIVATE_KEYWORD} ${CONAN_LIBS_JSONCPP}
- )
- target_compile_definitions(${MODULE_NAME} PRIVATE "-DRVCCOMM_EXPORTS=1")
- set_target_properties(${MODULE_NAME} PROPERTIES DEBUG_POSTFIX "D")
- if (BUILD_TESTING)
- add_library(${MODULE_NAME}_a STATIC ${${MODULE_PREFIX}_SRCS})
- target_include_directories(${MODULE_NAME}_a PRIVATE
- ${CONAN_INCLUDE_DIRS_LIBKYSM}
- ${CONAN_INCLUDE_DIRS_CURL}
- ${CONAN_INCLUDE_DIRS_JSONCPP}
- ${RVC_TOOLKIT_INCLUDE_DIR}
- )
- message(STATUS "openssl library: ${OPENSSL_SSL_LIBRARY}")
- target_link_directories(${MODULE_NAME}_a PRIVATE
- ${CONAN_LIB_DIRS_LIBKYSM}
- ${CONAN_LIB_DIRS_LIBSSH2}
- ${CONAN_LIB_DIRS_CURL}
- ${CONAN_LIB_DIRS_JSONCPP}
- )
- target_link_libraries(${MODULE_NAME}_a PUBLIC winpr ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY})
- target_link_libraries(${MODULE_NAME}_a PUBLIC ${KYSM_LIBRARY_NAME})
- target_link_libraries(${MODULE_NAME}_a PRIVATE
- ${CONAN_LIBS_LIBSSH2}
- ${CONAN_LIBS_CURL}
- ${CONAN_LIBS_JSONCPP}
- )
- target_compile_definitions(${MODULE_NAME}_a PRIVATE "-DRVCCOMM_LINKED_AS_STATIC_LIBRARY")
- set(ADD_LIB_DIRS ${CONAN_LIB_DIRS_LIBKYSM} ${CONAN_LIB_DIRS_LIBSSH2}
- ${CONAN_LIB_DIRS_CURL}
- ${CONAN_LIB_DIRS_JSONCPP})
- add_subdirectory(test)
- endif()
- if(MSVC)
- install(TARGETS ${MODULE_NAME}
- RUNTIME DESTINATION "${RVC_RUNTIME_PATH}" COMPONENT libraries
- ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}" COMPONENT develops EXCLUDE_FROM_ALL
- LIBRARY DESTINATION "${RVC_LIBRARY_PATH}" COMPONENT libraries
- )
- else()
- install(TARGETS ${MODULE_NAME}
- RUNTIME DESTINATION "${RVC_RUNTIME_PATH}"
- ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
- LIBRARY DESTINATION "${RVC_RUNTIME_PATH}"
- COMPONENT libraries)
- endif(MSVC)
- if (WITH_PDB_SAVE AND MSVC AND BUILD_SHARED_LIBS)
- install(FILES ${RVC_PDB_BINARY_DIR}/${MODULE_NAME}.pdb DESTINATION ${RVC_PDBSAVE_PATH} COMPONENT symbols)
- endif()
- if(MSVC)
- set(RVC_CONAN_DEP_LIBS ${RVC_CONAN_DEP_LIBS}
- ${CONAN_BIN_DIRS_LIBKYSM}
- ${CONAN_BIN_DIRS_LIBSSH2}
- ${CONAN_BIN_DIRS_CURL}
- ${CONAN_BIN_DIRS_JSONCPP}
- ${CONAN_BIN_DIRS_ZLIB}
- PARENT_SCOPE)
- else()
- set(RVC_CONAN_DEP_LIBS ${RVC_CONAN_DEP_LIBS}
- ${CONAN_LIB_DIRS_LIBKYSM}
- ${CONAN_LIB_DIRS_LIBSSH2}
- ${CONAN_LIB_DIRS_CURL}
- ${CONAN_LIB_DIRS_JSONCPP}
- ${CONAN_LIB_DIRS_ZLIB}
- PARENT_SCOPE)
- endif(MSVC)
|