Skip to content
Snippets Groups Projects
Commit af225b59 authored by Peter Wu's avatar Peter Wu
Browse files

CMake: add BUILD_SHARED_LIBS option

Prior to commit 4e955731, ngtcp2 was
built as shared library. That has changed into a static or shared
library depending on the BUILD_SHARED_LIBS option, but this option was
not documented and the comments were misleading. Rectify both issues.

Note that autotools builds both libraries by default, but the current
CMake config is only able to build one of them.
parent 7c8003d5
Branches
No related merge requests found
...@@ -313,6 +313,8 @@ message(STATUS "summary of build options: ...@@ -313,6 +313,8 @@ message(STATUS "summary of build options:
CXXFLAGS: ${CMAKE_CXX_FLAGS_${_build_type}} ${CMAKE_CXX_FLAGS} CXXFLAGS: ${CMAKE_CXX_FLAGS_${_build_type}} ${CMAKE_CXX_FLAGS}
WARNCFLAGS: ${WARNCFLAGS} WARNCFLAGS: ${WARNCFLAGS}
WARNCXXFLAGS: ${WARNCXXFLAGS} WARNCXXFLAGS: ${WARNCXXFLAGS}
Library:
Shared: ${BUILD_SHARED_LIBS}
Test: Test:
CUnit: ${HAVE_CUNIT} (LIBS='${CUNIT_LIBRARIES}') CUnit: ${HAVE_CUNIT} (LIBS='${CUNIT_LIBRARIES}')
Libs: Libs:
......
# Features that can be enabled for cmake (see CMakeLists.txt) # Features that can be enabled for cmake (see CMakeLists.txt)
option(BUILD_SHARED_LIBS "Build using shared libraries" OFF)
option(ENABLE_WERROR "Make compiler warnings fatal" OFF) option(ENABLE_WERROR "Make compiler warnings fatal" OFF)
option(ENABLE_DEBUG "Turn on debug output" OFF) option(ENABLE_DEBUG "Turn on debug output" OFF)
option(ENABLE_ASAN "Enable AddressSanitizer (ASAN)" OFF) option(ENABLE_ASAN "Enable AddressSanitizer (ASAN)" OFF)
......
...@@ -41,7 +41,7 @@ foreach(name libngtcp2_crypto_gnutls.pc) ...@@ -41,7 +41,7 @@ foreach(name libngtcp2_crypto_gnutls.pc)
configure_file("${name}.in" "${name}" @ONLY) configure_file("${name}.in" "${name}" @ONLY)
endforeach() endforeach()
# Public shared library # Public shared or static library
add_library(ngtcp2_crypto_gnutls ${ngtcp2_crypto_gnutls_SOURCES}) add_library(ngtcp2_crypto_gnutls ${ngtcp2_crypto_gnutls_SOURCES})
set_target_properties(ngtcp2_crypto_gnutls PROPERTIES set_target_properties(ngtcp2_crypto_gnutls PROPERTIES
COMPILE_FLAGS "${WARNCFLAGS}" COMPILE_FLAGS "${WARNCFLAGS}"
......
...@@ -41,7 +41,7 @@ foreach(name libngtcp2_crypto_openssl.pc) ...@@ -41,7 +41,7 @@ foreach(name libngtcp2_crypto_openssl.pc)
configure_file("${name}.in" "${name}" @ONLY) configure_file("${name}.in" "${name}" @ONLY)
endforeach() endforeach()
# Public shared library # Public shared or static library
add_library(ngtcp2_crypto_openssl ${ngtcp2_crypto_openssl_SOURCES}) add_library(ngtcp2_crypto_openssl ${ngtcp2_crypto_openssl_SOURCES})
set_target_properties(ngtcp2_crypto_openssl PROPERTIES set_target_properties(ngtcp2_crypto_openssl PROPERTIES
COMPILE_FLAGS "${WARNCFLAGS}" COMPILE_FLAGS "${WARNCFLAGS}"
......
...@@ -64,7 +64,7 @@ set(ngtcp2_INCLUDE_DIRS ...@@ -64,7 +64,7 @@ set(ngtcp2_INCLUDE_DIRS
"${CMAKE_CURRENT_BINARY_DIR}/includes" "${CMAKE_CURRENT_BINARY_DIR}/includes"
) )
# Public shared library # Public shared or static library
add_library(ngtcp2 ${ngtcp2_SOURCES}) add_library(ngtcp2 ${ngtcp2_SOURCES})
set_target_properties(ngtcp2 PROPERTIES set_target_properties(ngtcp2 PROPERTIES
COMPILE_FLAGS "${WARNCFLAGS}" COMPILE_FLAGS "${WARNCFLAGS}"
...@@ -79,7 +79,7 @@ if(NOT BUILD_SHARED_LIBS) ...@@ -79,7 +79,7 @@ if(NOT BUILD_SHARED_LIBS)
endif() endif()
if(HAVE_CUNIT) if(HAVE_CUNIT)
# Static library (for unittests because of symbol visibility) # Private static library (for unittests because of symbol visibility)
add_library(ngtcp2_static STATIC ${ngtcp2_SOURCES}) add_library(ngtcp2_static STATIC ${ngtcp2_SOURCES})
set_target_properties(ngtcp2_static PROPERTIES set_target_properties(ngtcp2_static PROPERTIES
COMPILE_FLAGS "${WARNCFLAGS}" COMPILE_FLAGS "${WARNCFLAGS}"
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment