Fixed DLL compilation on Windows for CMake.
authorJoakim Soderberg <joakim.soderberg@gmail.com>
Wed, 13 Feb 2013 01:29:26 +0000 (09:29 +0800)
committerAndy Green <andy.green@linaro.org>
Wed, 13 Feb 2013 01:29:26 +0000 (09:29 +0800)
commitf272cb0624d15b110e4f4a3617d133e3f0d174e2
tree94d565ba01bdf968199dee6f059f509260430d29
parent08483536d2c4b6b0b27d5710d1f84dcc9bb08371
Fixed DLL compilation on Windows for CMake.

- Define LWS_DLL and LWS_INTERNAL when websockets_shared is compiled.

- The websocket_shared target compiles to websocket.lib / websocket.dll
  (websocket.lib contains the exported functions for websocket.dll, and is
  the file that is linked to when a program wants to use the dll)

- The websocket target compiles to websocket_static.lib on windows.

- Replaced any "extern" with "LWS_EXTERN" on libwebsockets.h for proper
  DLL function exports.

- Created a LIB_LIST with all the libwebsocket dependencies, instead of
  multiple calls to target_link_libraries, only one call is made for both
  the static and shared library version. This makes it easy to add other
  variants if wanted in the future.

- Added ZLIB as a dependency for the libs, so that the build order will be
  correct at all times.

- Added a dependency for the websockets lib to the test apps, so it is
  built before them.

- Fixed the test-server-extpoll app to include the emulated_poll, and link
  to winsock on Windows.

- Removed the global export of libwebsocket_internal_extensions, and added
  a function libwebsocket_get_internal_extensions() that returns it
  instead. Using the global would not work with the DLL export on Windows.
CMakeLists.txt
lib/extension.c
lib/libwebsockets.h
lib/private-libwebsockets.h
test-server/test-client.c
test-server/test-fraggle.c
test-server/test-ping.c
test-server/test-server.c