Browse Source

libwebsockets build config updated

Arnis Lielturks 5 years ago
parent
commit
0021c6c338

+ 0 - 1
CMakeLists.txt

@@ -29,7 +29,6 @@ project (Urho3D)
 # Set CMake modules search path
 # Set CMake modules search path
 set (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)
 set (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)
 
 
-set (URHO3D_WEBSOCKETS TRUE)
 #set (URHO3D_PCH FALSE)
 #set (URHO3D_PCH FALSE)
 
 
 # Include UrhoCommon.cmake module after setting project name
 # Include UrhoCommon.cmake module after setting project name

+ 1 - 0
Source/CMakeLists.txt

@@ -19,6 +19,7 @@
 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 # THE SOFTWARE.
 # THE SOFTWARE.
 #
 #
+set (URHO3D_WEBSOCKETS TRUE)
 
 
 # Check existence of various header files and their functions required by some of the third-party libraries and Urho3D library
 # Check existence of various header files and their functions required by some of the third-party libraries and Urho3D library
 # Set the CMake variables in this scope but only add the compiler defines in the respective library's scope
 # Set the CMake variables in this scope but only add the compiler defines in the respective library's scope

+ 50 - 23
Source/ThirdParty/libwebsockets/CMakeLists.txt

@@ -114,7 +114,7 @@ option(LWS_CTEST_INTERNET_AVAILABLE "CTest will performs tests that need the Int
 #
 #
 # TLS library options... all except mbedTLS are basically OpenSSL variants.
 # TLS library options... all except mbedTLS are basically OpenSSL variants.
 #
 #
-option(LWS_WITH_SSL "Include SSL support (defaults to OpenSSL or similar, mbedTLS if LWS_WITH_MBEDTLS is set)" ON)
+option(LWS_WITH_SSL "Include SSL support (defaults to OpenSSL or similar, mbedTLS if LWS_WITH_MBEDTLS is set)" OFF)
 option(LWS_WITH_MBEDTLS "Use mbedTLS (>=2.0) replacement for OpenSSL. When setting this, you also may need to specify LWS_MBEDTLS_LIBRARIES and LWS_MBEDTLS_INCLUDE_DIRS" OFF)
 option(LWS_WITH_MBEDTLS "Use mbedTLS (>=2.0) replacement for OpenSSL. When setting this, you also may need to specify LWS_MBEDTLS_LIBRARIES and LWS_MBEDTLS_INCLUDE_DIRS" OFF)
 option(LWS_WITH_BORINGSSL "Use BoringSSL replacement for OpenSSL" OFF)
 option(LWS_WITH_BORINGSSL "Use BoringSSL replacement for OpenSSL" OFF)
 option(LWS_WITH_CYASSL "Use CyaSSL replacement for OpenSSL. When setting this, you also need to specify LWS_CYASSL_LIBRARIES and LWS_CYASSL_INCLUDE_DIRS" OFF)
 option(LWS_WITH_CYASSL "Use CyaSSL replacement for OpenSSL. When setting this, you also need to specify LWS_CYASSL_LIBRARIES and LWS_CYASSL_INCLUDE_DIRS" OFF)
@@ -244,11 +244,35 @@ set(LWS_LIBRARY_VERSION_MAJOR 4)
 set(LWS_LIBRARY_VERSION_MINOR 1)
 set(LWS_LIBRARY_VERSION_MINOR 1)
 set(LWS_LIBRARY_VERSION_PATCH 3)
 set(LWS_LIBRARY_VERSION_PATCH 3)
 
 
+CHECK_FUNCTION_EXISTS(fork LWS_HAVE_FORK)
+CHECK_FUNCTION_EXISTS(getenv LWS_HAVE_GETENV)
+CHECK_FUNCTION_EXISTS(malloc LWS_HAVE_MALLOC)
+CHECK_FUNCTION_EXISTS(memset LWS_HAVE_MEMSET)
+CHECK_FUNCTION_EXISTS(realloc LWS_HAVE_REALLOC)
+CHECK_FUNCTION_EXISTS(socket LWS_HAVE_SOCKET)
+CHECK_FUNCTION_EXISTS(strerror LWS_HAVE_STRERROR)
+CHECK_FUNCTION_EXISTS(vfork LWS_HAVE_VFORK)
+CHECK_FUNCTION_EXISTS(execvpe LWS_HAVE_EXECVPE)
+CHECK_FUNCTION_EXISTS(getifaddrs LWS_HAVE_GETIFADDRS)
+CHECK_FUNCTION_EXISTS(snprintf LWS_HAVE_SNPRINTF)
+CHECK_FUNCTION_EXISTS(_snprintf LWS_HAVE__SNPRINTF)
+CHECK_FUNCTION_EXISTS(_vsnprintf LWS_HAVE__VSNPRINTF)
+CHECK_FUNCTION_EXISTS(getloadavg LWS_HAVE_GETLOADAVG)
+CHECK_FUNCTION_EXISTS(atoll LWS_HAVE_ATOLL)
+CHECK_FUNCTION_EXISTS(_atoi64 LWS_HAVE__ATOI64)
+CHECK_FUNCTION_EXISTS(_stat32i64 LWS_HAVE__STAT32I64)
+CHECK_FUNCTION_EXISTS(clock_gettime LWS_HAVE_CLOCK_GETTIME)
+
 # Modfied for Urho3D to allow building libwebsockets with SSL support
 # Modfied for Urho3D to allow building libwebsockets with SSL support
 if (URHO3D_SSL)
 if (URHO3D_SSL)
     message(STATUS "Adding SSL support for libwebsockets")
     message(STATUS "Adding SSL support for libwebsockets")
-    set(LWS_OPENSSL_SUPPORT 1)
-    set(LWS_WITH_SSL 1)
+    set(LWS_OPENSSL_SUPPORT ON)
+    set(LWS_WITH_SSL ON)
+    set(LWS_WITH_TLS ON)
+else ()
+    set(LWS_OPENSSL_SUPPORT OFF)
+    set(LWS_WITH_SSL OFF)
+    set(LWS_WITH_TLS OFF)
 endif ()
 endif ()
 
 
 include(CMakeLists-implied-options.txt)
 include(CMakeLists-implied-options.txt)
@@ -299,34 +323,37 @@ macro(add_subdir_include_dirs arg1)
 endmacro()
 endmacro()
 ########
 ########
 
 
+include(cmake/LwsCheckRequirements.cmake)
+require_pthreads(requirements)
 # Define source files
 # Define source files
 add_subdirectory(lib)
 add_subdirectory(lib)
+
 #define_source_files (RECURSE GLOB_CPP_PATTERNS lib/*.c GLOB_H_PATTERNS src/*.h)
 #define_source_files (RECURSE GLOB_CPP_PATTERNS lib/*.c GLOB_H_PATTERNS src/*.h)
 
 
 # Generate libwebsockets configuration file with defined macros
 # Generate libwebsockets configuration file with defined macros
 configure_file(
 configure_file(
-        cmake/lws_config.h.in
-        "${PROJECT_BINARY_DIR}/Source/ThirdParty/libwebsockets/include/lws_config.h")
+        ${CMAKE_CURRENT_SOURCE_DIR}/cmake/lws_config.h.in
+        "${CMAKE_CURRENT_SOURCE_DIR}/include/lws_config.h")
 
 
 configure_file(
 configure_file(
-        cmake/lws_config_private.h.in
-        "${PROJECT_BINARY_DIR}/Source/ThirdParty/libwebsockets/include/lws_config_private.h")
-
-add_custom_command(
-        OUTPUT ${PROJECT_BINARY_DIR}/include/lws_config.h
-        ${PROJECT_BINARY_DIR}/include/libwebsockets
-        ${PROJECT_BINARY_DIR}/include/libwebsockets.h
-        COMMENT "Creating build include dir"
-        COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/include/libwebsockets.h
-        ${CMAKE_CURRENT_BINARY_DIR}/include/libwebsockets.h
-        COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/include/libwebsockets/
-        ${CMAKE_CURRENT_BINARY_DIR}/include/libwebsockets
-        COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/lws_config.h
-        ${CMAKE_CURRENT_BINARY_DIR}/include/lws_config.h
-        MAIN_DEPENDENCY ${PROJECT_BINARY_DIR}/lws_config.h
-)
-
-list (APPEND INCLUDE_DIRS ${PROJECT_BINARY_DIR}/Source/ThirdParty/libwebsockets/include)
+        ${CMAKE_CURRENT_SOURCE_DIR}/cmake/lws_config_private.h.in
+        "${CMAKE_CURRENT_SOURCE_DIR}/include/lws_config_private.h")
+
+#add_custom_command(
+#        OUTPUT include/lws_config.h
+#        ${CMAKE_SOURCE_DIR}/include/libwebsockets
+#        ${CMAKE_SOURCE_DIR}/include/libwebsockets.h
+#        COMMENT "Creating build include dir"
+#        COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/include/libwebsockets.h
+#        ${CMAKE_CURRENT_BINARY_DIR}/include/libwebsockets.h
+#        COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/include/libwebsockets/
+#        ${CMAKE_CURRENT_BINARY_DIR}/include/libwebsockets
+#        COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/lws_config.h
+#        ${CMAKE_CURRENT_BINARY_DIR}/include/lws_config.h
+#        MAIN_DEPENDENCY ${PROJECT_BINARY_DIR}/lws_config.h
+#)
+
+list (APPEND INCLUDE_DIRS include)
 
 
 message (STATUS SOURCEFILES "${SOURCE_FILESs} - ${INCLUDE_DIRS}")
 message (STATUS SOURCEFILES "${SOURCE_FILESs} - ${INCLUDE_DIRS}")
 # Setup target
 # Setup target

+ 0 - 1
Source/ThirdParty/libwebsockets/cmake/lws_config.h.in

@@ -179,7 +179,6 @@
 #cmakedefine LWS_WITH_STATS
 #cmakedefine LWS_WITH_STATS
 #cmakedefine LWS_WITH_STRUCT_SQLITE3
 #cmakedefine LWS_WITH_STRUCT_SQLITE3
 #cmakedefine LWS_WITH_STRUCT_JSON
 #cmakedefine LWS_WITH_STRUCT_JSON
-#cmakedefine LWS_WITH_SUL_DEBUGGING
 #cmakedefine LWS_WITH_SQLITE3
 #cmakedefine LWS_WITH_SQLITE3
 #cmakedefine LWS_WITH_SYS_NTPCLIENT
 #cmakedefine LWS_WITH_SYS_NTPCLIENT
 #cmakedefine LWS_WITH_SYS_DHCP_CLIENT
 #cmakedefine LWS_WITH_SYS_DHCP_CLIENT

+ 2 - 0
Source/ThirdParty/libwebsockets/include/.gitignore

@@ -0,0 +1,2 @@
+lws_config.h
+lws_config_private.h

+ 3 - 3
Source/ThirdParty/libwebsockets/lib/CMakeLists.txt

@@ -223,9 +223,9 @@ endif()
 
 
 if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR COMPILER_IS_CLANG)
 if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR COMPILER_IS_CLANG)
 	foreach(lib ${LWS_LIBRARIES})
 	foreach(lib ${LWS_LIBRARIES})
-		set_target_properties(${lib}
-			PROPERTIES
-			SOVERSION ${SOVERSION})
+#		set_target_properties(${lib}
+#			PROPERTIES
+#			SOVERSION ${SOVERSION})
 	endforeach()
 	endforeach()
 endif()
 endif()
 
 

+ 1 - 1
Source/ThirdParty/libwebsockets/lib/tls/CMakeLists.txt

@@ -348,7 +348,7 @@ endif()
 
 
 if (LWS_WITH_SSL AND NOT LWS_WITH_WOLFSSL)
 if (LWS_WITH_SSL AND NOT LWS_WITH_WOLFSSL)
 	message("Searching for OpenSSL executable and dlls")
 	message("Searching for OpenSSL executable and dlls")
-	find_package(OpenSSLbins)
+	find_package(OpenSSL)
 	if (DEFINED OPENSSL_EXECUTABLE)
 	if (DEFINED OPENSSL_EXECUTABLE)
 		message("OpenSSL executable: ${OPENSSL_EXECUTABLE}")
 		message("OpenSSL executable: ${OPENSSL_EXECUTABLE}")
 		
 		

+ 2 - 1
Source/Urho3D/CMakeLists.txt

@@ -356,8 +356,9 @@ if (URHO3D_PHYSICS)
     list (APPEND INCLUDE_DIRS ${THIRD_PARTY_INCLUDE_DIR}/Bullet)
     list (APPEND INCLUDE_DIRS ${THIRD_PARTY_INCLUDE_DIR}/Bullet)
 endif ()
 endif ()
 if (URHO3D_WEBSOCKETS)
 if (URHO3D_WEBSOCKETS)
-    list (APPEND INCLUDE_DIRS ${CMAKE_BINARY_DIR}/Source/ThirdParty/libwebsockets/include)
+    list (APPEND INCLUDE_DIRS ${THIRD_PARTY_INCLUDE_DIR}/libwebsockets)
     add_definitions (-DURHO3D_WEBSOCKETS)
     add_definitions (-DURHO3D_WEBSOCKETS)
+    message (STATUS "Adding websockets support")
 else ()
 else ()
 endif ()
 endif ()
 if (URHO3D_NAVIGATION)
 if (URHO3D_NAVIGATION)