From 0352bf2deec3d12e3be503696301be6db7009041 Mon Sep 17 00:00:00 2001 From: spacemeowx2 Date: Thu, 17 Jan 2019 19:07:51 +0800 Subject: [PATCH] support build by VS --- CMakeLists.txt | 8 +++++--- cmake/FindPCAP.cmake | 1 + src/CMakeLists.txt | 9 +++++++-- src/helper.c | 2 ++ src/helper.h | 5 ++++- src/proxy_socks5.cpp | 4 ++-- 6 files changed, 21 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9d1e976..50aaea7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,9 +4,11 @@ set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake") -set(CMAKE_C_FLAGS_DEBUG - "-g3 -ggdb -g" -) +if (${CMAKE_CXX_COMPILER_ID} STREQUAL GNU) + set(CMAKE_C_FLAGS_DEBUG + "-g3 -ggdb -g" + ) +endif() include(TestBigEndian) test_big_endian(BIG_ENDIAN) diff --git a/cmake/FindPCAP.cmake b/cmake/FindPCAP.cmake index 0548d4c..6ee93b8 100755 --- a/cmake/FindPCAP.cmake +++ b/cmake/FindPCAP.cmake @@ -28,6 +28,7 @@ if (WIN32) URL "https://www.winpcap.org/install/bin/WpdPack_4_1_2.zip" URL_MD5 "bae2236af062b0900ad1416b2c4878b9" CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_DIR "" INSTALL_COMMAND "" + BUILD_BYPRODUCTS /Lib/x64/wpcap.lib /Lib/wpcap.lib # LOG_DOWNLOAD ON ) ExternalProject_Get_Property(winpcap SOURCE_DIR) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 71452e2..59f5a6e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -28,10 +28,15 @@ add_executable(lan-play ${src}) target_compile_options( lan-play - PRIVATE "-Wall" - PRIVATE "-Wno-unused-function" PRIVATE "-DLANPLAY_VERSION=\"${LANPLAY_VERSION}\"" ) +if (${CMAKE_CXX_COMPILER_ID} STREQUAL GNU) + target_compile_options( + lan-play + PRIVATE "-Wall" + PRIVATE "-Wno-unused-function" + ) +endif() set_target_properties(lan-play PROPERTIES CXX_STANDARD 17) diff --git a/src/helper.c b/src/helper.c index 63ad577..5b51cec 100644 --- a/src/helper.c +++ b/src/helper.c @@ -304,7 +304,9 @@ int parse_addr(const char *str, struct sockaddr_in *addr) } #if defined(_WIN32) +#ifndef _MSC_VER static void win32_init_winsocket() __attribute__((constructor)); +#endif static void win32_init_winsocket() { int result; diff --git a/src/helper.h b/src/helper.h index 28eada0..953969d 100644 --- a/src/helper.h +++ b/src/helper.h @@ -4,12 +4,15 @@ #if defined(_WIN32) #include #include +#ifndef _MSC_VER +#include +#endif #else #include #include +#include #endif #include -#include #include // #define HTONS(a) ( (((a) & 0xff) << 8) | (((a) >> 8) & 0xff) ) #define LMIN(a, b) ((a) < (b) ? (a) : (b)) diff --git a/src/proxy_socks5.cpp b/src/proxy_socks5.cpp index e979c60..5a17d88 100644 --- a/src/proxy_socks5.cpp +++ b/src/proxy_socks5.cpp @@ -280,10 +280,10 @@ class Socks5ProxyUdp { }); protocol.onUDPReady([this](struct sockaddr addr) { this->isReady = true; - udp->recv(); + this->udp->recv(); this->visit(); if (waitingData) { - udp->send(cfg.server, std::move(waitingData), waitingLength); + this->udp->send(cfg.server, std::move(waitingData), waitingLength); } }); struct sockaddr addr = {0};