Skip to content
Snippets Groups Projects
Commit 3dbf19b6 authored by Sergey Bronnikov's avatar Sergey Bronnikov Committed by Igor Munkin
Browse files

cmake: propagate debug mode to third party components

The patch propagates debug mode to building of third party components:
c-ares, libcurl, libeio, nghttp2, zstd. Other components enables debug
mode automatically once it is enabled in Tarantool build.

Curl has two similar options that enables debug mode, however they are
different: `ENABLE_CURLDEBUG` enable memory debugging and `ENABLE_DEBUG`
restricts code which is only compiled for debug enabled builds [1].

1. https://everything.curl.dev/internals/memory-debugging

NO_CHANGELOG=build
NO_DOC=build
NO_TEST=build
parent ebe4cd9b
No related branches found
No related tags found
No related merge requests found
...@@ -382,6 +382,10 @@ find_package_message(MODULE_LUAPATH "Lua package.path: ${MODULE_LUAPATH}" ...@@ -382,6 +382,10 @@ find_package_message(MODULE_LUAPATH "Lua package.path: ${MODULE_LUAPATH}"
find_package_message(MODULE_LIBPATH "Lua package.cpath: ${MODULE_LIBPATH}" find_package_message(MODULE_LIBPATH "Lua package.cpath: ${MODULE_LIBPATH}"
"${MODULE_LIBPATH}") "${MODULE_LIBPATH}")
set(TARANTOOL_DEBUG OFF)
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
set(TARANTOOL_DEBUG ON)
endif(CMAKE_BUILD_TYPE STREQUAL "Debug")
## ##
## Third-Party libraries ## Third-Party libraries
......
...@@ -11,6 +11,7 @@ macro(ares_build) ...@@ -11,6 +11,7 @@ macro(ares_build)
endif() endif()
set(ARES_CMAKE_FLAGS "-DCARES_STATIC=ON") set(ARES_CMAKE_FLAGS "-DCARES_STATIC=ON")
list(APPEND ARES_CMAKE_FLAGS "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}")
list(APPEND ARES_CMAKE_FLAGS "-DCARES_SHARED=OFF") list(APPEND ARES_CMAKE_FLAGS "-DCARES_SHARED=OFF")
list(APPEND ARES_CMAKE_FLAGS "-DCARES_BUILD_TOOLS=OFF") list(APPEND ARES_CMAKE_FLAGS "-DCARES_BUILD_TOOLS=OFF")
# We build both static and shared versions of curl, so ares # We build both static and shared versions of curl, so ares
......
...@@ -185,11 +185,14 @@ macro(curl_build) ...@@ -185,11 +185,14 @@ macro(curl_build)
# catch the symbols may require extra work. # catch the symbols may require extra work.
list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_ZSTD=OFF") list(APPEND LIBCURL_CMAKE_FLAGS "-DCURL_ZSTD=OFF")
list(APPEND LIBCURL_CMAKE_FLAGS "-DLIBCURL_OUTPUT_NAME=libcurl") list(APPEND LIBCURL_CMAKE_FLAGS "-DLIBCURL_OUTPUT_NAME=libcurl")
list(APPEND LIBCURL_CMAKE_FLAGS "-DENABLE_CURLDEBUG=OFF") list(APPEND LIBCURL_CMAKE_FLAGS "-DENABLE_CURLDEBUG=${TARANTOOL_DEBUG}")
list(APPEND LIBCURL_CMAKE_FLAGS "-DENABLE_DEBUG=OFF") list(APPEND LIBCURL_CMAKE_FLAGS "-DENABLE_DEBUG=${TARANTOOL_DEBUG}")
list(APPEND LIBCURL_CMAKE_FLAGS "-DUSE_MSH3=OFF") list(APPEND LIBCURL_CMAKE_FLAGS "-DUSE_MSH3=OFF")
list(APPEND LIBCURL_CMAKE_FLAGS "-DENABLE_WEBSOCKETS=OFF") list(APPEND LIBCURL_CMAKE_FLAGS "-DENABLE_WEBSOCKETS=OFF")
list(APPEND LIBCURL_CMAKE_FLAGS "-DCMAKE_UNITY_BUILD=OFF") list(APPEND LIBCURL_CMAKE_FLAGS "-DCMAKE_UNITY_BUILD=OFF")
# Note that CMake build does not allow build curl and libcurl debug
# enabled, see https://github.com/curl/curl/blob/master/docs/INSTALL.cmake
list(APPEND LIBCURL_CMAKE_FLAGS "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}")
# We need PIC at least to enable build for Fedora on # We need PIC at least to enable build for Fedora on
# ARM64 CPU. Without it configuration with Fedora # ARM64 CPU. Without it configuration with Fedora
......
...@@ -11,6 +11,10 @@ macro(libeio_build) ...@@ -11,6 +11,10 @@ macro(libeio_build)
set(eio_compile_flags set(eio_compile_flags
"${eio_compile_flags} -DHAVE_SYS_PRCTL_H -DHAVE_PRCTL_SET_NAME") "${eio_compile_flags} -DHAVE_SYS_PRCTL_H -DHAVE_PRCTL_SET_NAME")
endif () endif ()
if (TARANTOOL_DEBUG)
set(eio_compile_flags
"${eio_compile_flags} ${CMAKE_C_FLAGS_DEBUG}")
endif (TARANTOOL_DEBUG)
set(eio_src set(eio_src
${PROJECT_SOURCE_DIR}/third_party/tarantool_eio.c ${PROJECT_SOURCE_DIR}/third_party/tarantool_eio.c
......
...@@ -25,6 +25,10 @@ macro(libev_build) ...@@ -25,6 +25,10 @@ macro(libev_build)
set(ev_compile_flags "${ev_compile_flags} -DEV_USE_KQUEUE") set(ev_compile_flags "${ev_compile_flags} -DEV_USE_KQUEUE")
endif() endif()
if (TARANTOOL_DEBUG)
set(ev_compile_flags "${ev_compile_flags} ${CMAKE_C_FLAGS_DEBUG}")
endif(TARANTOOL_DEBUG)
list(APPEND ev_link_libraries "m") list(APPEND ev_link_libraries "m")
if (TARGET_OS_DEBIAN_FREEBSD) if (TARGET_OS_DEBIAN_FREEBSD)
# libev depends on librt under kFreeBSD # libev depends on librt under kFreeBSD
......
...@@ -30,6 +30,11 @@ macro(zstd_build) ...@@ -30,6 +30,11 @@ macro(zstd_build)
if (CC_HAS_WNO_IMPLICIT_FALLTHROUGH) if (CC_HAS_WNO_IMPLICIT_FALLTHROUGH)
set(zstd_cflags "${zstd_cflags} -Wno-implicit-fallthrough") set(zstd_cflags "${zstd_cflags} -Wno-implicit-fallthrough")
endif() endif()
if (TARANTOOL_DEBUG)
# See lib/common/debug.h,
# https://github.com/facebook/zstd/blob/7567769a7e8e8236a2015769a5083d0f090a654b/lib/common/debug.h#L21-L29
set(zstd_cflags "${zstd_cflags} -DDEBUG_LEVEL=2")
endif()
set_source_files_properties(${zstd_src} set_source_files_properties(${zstd_src}
PROPERTIES COMPILE_FLAGS ${zstd_cflags}) PROPERTIES COMPILE_FLAGS ${zstd_cflags})
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment