• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1project(lws-minimal-ws-server-threads-foreign-libuv-smp C)
2cmake_minimum_required(VERSION 2.8.12)
3find_package(libwebsockets CONFIG REQUIRED)
4list(APPEND CMAKE_MODULE_PATH ${LWS_CMAKE_DIR})
5include(CheckIncludeFile)
6include(CheckCSourceCompiles)
7include(LwsCheckRequirements)
8
9set(SAMP lws-minimal-ws-server-threads-foreign-smp)
10set(SRCS minimal-ws-server.c)
11
12set(requirements 1)
13require_pthreads(requirements)
14require_lws_config(LWS_ROLE_WS 1 requirements)
15require_lws_config(LWS_WITH_SERVER 1 requirements)
16require_lws_config(LWS_WITH_TLS 1 requirements)
17require_lws_config(LWS_WITH_LIBUV 1 requirements)
18
19CHECK_C_SOURCE_COMPILES("#include <libwebsockets.h>\nint main(void) {\n#if defined(LWS_WITH_LIBUV)\n return 0;\n#else\n fail;\n#endif\n return 0;\n}\n" LWS_WITH_LIBUV)
20
21if (NOT LWS_WITH_LIBUV)
22	set(requirements 0)
23endif()
24
25
26if (requirements)
27	add_executable(${SAMP} ${SRCS})
28
29	find_path(LIBUV_INCLUDE_DIRS NAMES uv.h)
30	find_library(LIBUV_LIBRARIES NAMES uv)
31	message("libuv include dir: ${LIBUV_INCLUDE_DIRS}")
32	message("libuv libraries: ${LIBUV_LIBRARIES}")
33	include_directories("${LIBUV_INCLUDE_DIRS}")
34	set(extralibs ${extralibs} ${LIBUV_LIBRARIES})
35
36	message("Extra libs: ${extralibs}")
37
38		if (websockets_shared)
39			target_link_libraries(${SAMP} websockets_shared ${extralibs} ${PTHREAD_LIB} ${LIBWEBSOCKETS_DEP_LIBS})
40			add_dependencies(${SAMP} websockets_shared)
41		else()
42			target_link_libraries(${SAMP} websockets ${extralibs} ${PTHREAD_LIB} ${LIBWEBSOCKETS_DEP_LIBS})
43		endif()
44endif()
45