diff --git a/CMakeLists.txt b/CMakeLists.txt index f6443703..85f1d2f2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1749,6 +1749,16 @@ endif(LWS_WITH_GENERIC_SESSIONS) add_custom_command(TARGET ${TARGET_BIN} POST_BUILD COMMAND "${CMAKE_COMMAND}" -E copy "${SSLEAY_BIN}" "$" VERBATIM) + + # + # Win32: if we are using libuv, also need to copy it in the output dir + # + if (WIN32 AND LWS_WITH_LIBUV) + STRING(REPLACE ".lib" ".dll" LIBUV_BIN ${LIBUV_LIBRARIES}) + add_custom_command(TARGET ${TARGET_BIN} + POST_BUILD + COMMAND "${CMAKE_COMMAND}" -E copy "${LIBUV_BIN}" "$" VERBATIM) + endif() endforeach() endif() endif() diff --git a/README.md b/README.md index fd7bec20..9fe4d3f0 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,9 @@ libwebsockets News ---- +32- and 64-bit Windows binary builds are available via Appveyor. Visit [lws on Appveyor](https://ci.appveyor.com/project/lws-team/libwebsockets), +click on a build, the ARTIFACTS, and unzip the zip file at `C:\Program Files (x86)/libwebsockets`. + - v2.4 is out... HTTP/2 server support and mbedTLS as a TLS backend. see the changelog https://github.com/warmcat/libwebsockets/blob/v2.4-stable/changelog diff --git a/READMEs/README.build.md b/READMEs/README.build.md index 0f18342d..bfd29029 100644 --- a/READMEs/README.build.md +++ b/READMEs/README.build.md @@ -440,6 +440,15 @@ h2spec tests pass. ``` +@section windowsprebuilt Using Windows binary builds on Appveyor + +The CI builds on Appveyor now produce usable binary outputs. Visit + +[lws on Appveyor](https://ci.appveyor.com/project/lws-team/libwebsockets) + +and select one of the builds, then click on ARTIFACTS at the top right. The zip file +want to be unpacked into `C:\Program Files (x86)/libwebsockets`, after that, you should be able to run the test server, by running it from `bin/Release/libwebsockets-test-server.exe` and opening a browser on http://127.0.0.1:7681 + @section cross Cross compiling To enable cross-compiling **libwebsockets** using CMake you need to create diff --git a/appveyor.yml b/appveyor.yml index 25b10a5c..15f38399 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -19,6 +19,7 @@ environment: - LWS_METHOD: nossl CMAKE_ARGS: -DLWS_WITH_SSL=OFF + install: - appveyor DownloadFile https://libwebsockets.org:444/win-libuv.zip - mkdir c:\assets @@ -33,7 +34,10 @@ install: - mkdir c:\assets\sqlite3 - 7z x -oc:\assets\sqlite3 sqlite-dll-win32-x86-3130000.zip - SET PATH=C:\Program Files\NSIS\;C:\Program Files (x86)\NSIS\;c:\nsis;%PATH% + build: + parallel: true + verbosity: minimal build_script: - md build @@ -42,12 +46,17 @@ build_script: - cmake --build . --config Release after_build: - - 7z a lws.zip %APPVEYOR_BUILD_FOLDER%\build\lib\Release\websockets.lib %APPVEYOR_BUILD_FOLDER%\build\lib\Release\websockets.exp %APPVEYOR_BUILD_FOLDER%\build\bin\Release\websockets.dll %APPVEYOR_BUILD_FOLDER%\lib\libwebsockets.h %APPVEYOR_BUILD_FOLDER%\build\lws_config.h %APPVEYOR_BUILD_FOLDER%\build\bin\Release\*.exe + - cd %APPVEYOR_BUILD_FOLDER% + - mkdir staging + - cp -r %APPVEYOR_BUILD_FOLDER%\build\bin %APPVEYOR_BUILD_FOLDER%\build\lib staging + - if EXIST staging\bin\share mv staging\bin\share staging + - if NOT EXIST staging\share\libwebsockets-test-server mkdir staging\share\libwebsockets-test-server + - IF EXIST %APPVEYOR_BUILD_FOLDER%\build\libwebsockets-test-server.pem cp %APPVEYOR_BUILD_FOLDER%\build\libwebsockets-test-server.pem staging\share\libwebsockets-test-server + - IF EXIST %APPVEYOR_BUILD_FOLDER%\build\libwebsockets-test-server.key.pem cp %APPVEYOR_BUILD_FOLDER%\build\libwebsockets-test-server.key.pem staging\share\libwebsockets-test-server + - 7z a build\lws-%LWS_METHOD%.zip %APPVEYOR_BUILD_FOLDER%\staging\* artifacts: - - path: lws.zip - name: lws.zip - type: Zip + - path: build\lws-%LWS_METHOD%.zip matrix: fast_finish: true diff --git a/lib/context.c b/lib/context.c index 447968dc..e548601a 100644 --- a/lib/context.c +++ b/lib/context.c @@ -950,7 +950,7 @@ lws_create_context(struct lws_context_creation_info *info) #if defined(LWS_WITH_HTTP2) lwsl_info(" HTTP2 support : available\n"); #else - lwsl_info(" HTTP2 support : not configured"); + lwsl_info(" HTTP2 support : not configured\n"); #endif if (lws_plat_context_early_init()) return NULL;