| From 045b035bd9ebbd45f40dda36b143ede869eb5f16 Mon Sep 17 00:00:00 2001 |
| From: Sagaert Johan <sagaert.johan@skynet.be> |
| Date: Fri, 31 Oct 2014 12:25:48 +0100 |
| Subject: [PATCH 2/2] cmake: disable shared library build when |
| BUILD_SHARED_LIBS is off |
| |
| Original patch from Samuel Martin, reworked by Sagaert Johan when |
| updating libwebsockets. |
| |
| Signed-off-by: Samuel Martin <s.martin49@gmail.com> |
| Signed-off-by: Sagaert Johan <sagaert.johan@skynet.be> |
| [yann.morin.1998@free.fr: further fix after the version bumped] |
| Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> |
| --- |
| CMakeLists.txt | 17 ++++++++++++----- |
| 1 file changed, 12 insertions(+), 5 deletions(-) |
| |
| diff --git a/CMakeLists.txt b/CMakeLists.txt |
| index 7978845..89853ce 100644 |
| --- a/CMakeLists.txt |
| +++ b/CMakeLists.txt |
| @@ -372,14 +372,19 @@ source_group("Sources" FILES ${SOURCES}) |
| # |
| # Create the lib. |
| # |
| +set(_libs_websockets websockets) |
| add_library(websockets STATIC |
| ${HDR_PRIVATE} |
| ${HDR_PUBLIC} |
| ${SOURCES}) |
| + |
| +if(BUILD_SHARED_LIBS) |
| +list(APPEND _libs_websockets websockets_shared) |
| add_library(websockets_shared SHARED |
| ${HDR_PRIVATE} |
| ${HDR_PUBLIC} |
| ${SOURCES}) |
| +endif() |
| |
| if (WIN32) |
| # On Windows libs have the same file ending (.lib) |
| @@ -400,15 +405,17 @@ endif(WIN32) |
| |
| # We want the shared lib to be named "libwebsockets" |
| # not "libwebsocket_shared". |
| +if(BUILD_SHARED_LIBS) |
| set_target_properties(websockets_shared |
| - PROPERTIES |
| + PROPERTIES |
| OUTPUT_NAME websockets) |
| +endif() |
| |
| # Set the so version of the lib. |
| # Equivalent to LDFLAGS=-version-info x:x:x |
| if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) |
| - foreach(lib websockets websockets_shared) |
| - set_target_properties(${lib} |
| + foreach(lib ${_libs_websockets}) |
| + set_target_properties(${lib} |
| PROPERTIES |
| SOVERSION ${SOVERSION}) |
| endforeach() |
| @@ -460,7 +467,7 @@ if (NOT LWS_WITHOUT_EXTENSIONS) |
| endif() |
| |
| # Make sure ZLib is compiled before the libs. |
| - foreach (lib websockets websockets_shared) |
| + foreach (lib ${_libs_websockets}) |
| add_dependencies(${lib} ZLIB) |
| endforeach() |
| |
| @@ -524,7 +531,7 @@ if (UNIX) |
| endif() |
| |
| # Setup the linking for all libs. |
| -foreach (lib websockets websockets_shared) |
| +foreach (lib ${_libs_websockets}) |
| target_link_libraries(${lib} ${LIB_LIST}) |
| endforeach() |
| |
| @@ -793,7 +800,7 @@ |
| set(LWS_INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files") |
| |
| # Export targets (This is used for other CMake projects to easily find the libraries and include files). |
| -export(TARGETS websockets websockets_shared |
| +export(TARGETS ${_libs_websockets} |
| FILE "${PROJECT_BINARY_DIR}/LibwebsocketsTargets.cmake") |
| export(PACKAGE libwebsockets) |
| |
| @@ -829,7 +835,7 @@ |
| ${PROJECT_BINARY_DIR}/LibwebsocketsConfigVersion.cmake |
| @ONLY) |
| |
| -set_target_properties(websockets websockets_shared |
| +set_target_properties(${_libs_websockets} |
| PROPERTIES PUBLIC_HEADER "${HDR_PUBLIC}") |
| |
| # |
| @@ -837,7 +843,7 @@ |
| # |
| |
| # Install libs and headers. |
| -install(TARGETS websockets websockets_shared |
| +install(TARGETS ${_libs_websockets} |
| EXPORT LibwebsocketsTargets |
| LIBRARY DESTINATION "${LWS_INSTALL_LIB_DIR}${LIB_SUFFIX}" COMPONENT libraries |
| ARCHIVE DESTINATION "${LWS_INSTALL_LIB_DIR}${LIB_SUFFIX}" COMPONENT libraries |