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)