buildrootschalter/package/libwebsockets/libwebsockets-0002-cmake-di...

108 lines
3.2 KiB
Diff

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