From abf9544ddc7ab7bd93730abfd97fc8f3bb8d7831 Mon Sep 17 00:00:00 2001 From: Jeff Becker Date: Wed, 11 Dec 2019 16:05:40 -0500 Subject: [PATCH] make libuv on win32 work --- Makefile | 8 ++++---- cmake/win32.cmake | 18 +++++++++++++++++- llarp/ev/ev.cpp | 11 +---------- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/Makefile b/Makefile index 002faafba..11edf115d 100644 --- a/Makefile +++ b/Makefile @@ -236,17 +236,17 @@ android-gradle: android-gradle-prepare android: android-gradle cp -f $(ANDROID_DIR)/build/outputs/apk/*.apk $(REPO) -windows-debug-configure: clean +windows-debug-configure: $(LIBUV_PREFIX) mkdir -p '$(BUILD_ROOT)' - $(CONFIG_CMD_WINDOWS) -DCMAKE_TOOLCHAIN_FILE='$(REPO)/contrib/cross/mingw.cmake' -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DCMAKE_ASM_FLAGS='$(ASFLAGS)' -DCMAKE_C_FLAGS='$(CFLAGS)' -DCMAKE_CXX_FLAGS='$(CXXFLAGS)' + $(CONFIG_CMD_WINDOWS) -DCMAKE_TOOLCHAIN_FILE='$(REPO)/contrib/cross/mingw.cmake' -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DCMAKE_ASM_FLAGS='$(ASFLAGS)' -DCMAKE_C_FLAGS='$(CFLAGS)' -DCMAKE_CXX_FLAGS='$(CXXFLAGS)' -DLIBUV_ROOT=$(LIBUV_PREFIX) windows-debug: windows-debug-configure $(MAKE) -C '$(BUILD_ROOT)' cp '$(BUILD_ROOT)/daemon/lokinet.exe' '$(REPO)/lokinet.exe' -windows-release-configure: clean +windows-release-configure: $(LIBUV_PREFIX) mkdir -p '$(BUILD_ROOT)' - $(CONFIG_CMD_WINDOWS) -DCMAKE_TOOLCHAIN_FILE='$(REPO)/contrib/cross/mingw.cmake' -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DCMAKE_ASM_FLAGS='$(ASFLAGS)' -DCMAKE_C_FLAGS='$(CFLAGS)' -DCMAKE_CXX_FLAGS='$(CXXFLAGS)' + $(CONFIG_CMD_WINDOWS) -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE='$(REPO)/contrib/cross/mingw.cmake' -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DCMAKE_ASM_FLAGS='$(ASFLAGS)' -DCMAKE_C_FLAGS='$(CFLAGS)' -DCMAKE_CXX_FLAGS='$(CXXFLAGS)' -DLIBUV_ROOT=$(LIBUV_PREFIX) windows-release: windows-release-configure $(MAKE) -C '$(BUILD_ROOT)' diff --git a/cmake/win32.cmake b/cmake/win32.cmake index 05dbd7f40..0a5e06db7 100644 --- a/cmake/win32.cmake +++ b/cmake/win32.cmake @@ -32,7 +32,7 @@ if(EMBEDDED_CFG) endif() list(APPEND LIBTUNTAP_SRC ${TT_ROOT}/tuntap-windows.c) -get_filename_component(EV_SRC "llarp/ev/ev_win32.cpp" ABSOLUTE) +get_filename_component(EV_SRC "llarp/ev/ev_libuv.cpp" ABSOLUTE) add_definitions(-DWIN32_LEAN_AND_MEAN -DWIN32 -DWINVER=0x0500) set(EXE_LIBS ${STATIC_LIB} ${FS_LIB} ws2_32 iphlpapi) @@ -45,3 +45,19 @@ if (NOT STATIC_LINK_RUNTIME AND NOT MSVC) message("must ship compiler runtime libraries with this build: libwinpthread-1.dll, libgcc_s_dw2-1.dll, and libstdc++-6.dll") message("for release builds, turn on STATIC_LINK_RUNTIME in cmake options") endif() + +if (STATIC_LINK_RUNTIME OR STATIC_LINK) + set(LIBUV_USE_STATIC ON) +endif() + +if(LIBUV_ROOT) + add_subdirectory(${LIBUV_ROOT}) + set(LIBUV_INCLUDE_DIRS ${LIBUV_ROOT}/include) + set(LIBUV_LIBRARY uv_a) + add_definitions(-D_LARGEFILE_SOURCE) + add_definitions(-D_FILE_OFFSET_BITS=64) +elseif(NOT LIBUV_IN_SOURCE) + find_package(LibUV 1.28.0 REQUIRED) +endif() + +include_directories(${LIBUV_INCLUDE_DIRS}) diff --git a/llarp/ev/ev.cpp b/llarp/ev/ev.cpp index 1611646d6..2f2426d17 100644 --- a/llarp/ev/ev.cpp +++ b/llarp/ev/ev.cpp @@ -8,25 +8,16 @@ #include // We libuv now -#ifndef _WIN32 #include -#elif defined(_WIN32) || defined(_WIN64) || defined(__NT__) +#if defined(_WIN32) || defined(_WIN64) || defined(__NT__) #define SHUT_RDWR SD_BOTH #include -#else -#error No async event loop for your platform, port libuv to your operating system #endif llarp_ev_loop_ptr llarp_make_ev_loop() { -#ifndef _WIN32 llarp_ev_loop_ptr r = std::make_shared< libuv::Loop >(); -#elif defined(_WIN32) || defined(_WIN64) || defined(__NT__) - llarp_ev_loop_ptr r = std::make_shared< llarp_win32_loop >(); -#else -#error no event loop subclass -#endif r->init(); r->update_time(); return r;