mirror of
https://github.com/curl/curl.git
synced 2025-09-07 21:05:09 +03:00
build: do not apply curl debug macros to tests/server
by default
It seems unnecessary and possibly unexpected to build test servers with debug-enabled features and memory tracking whenever the tested curl is built like that (which is a requirement for some tests, so curl is mostly built like that when running tests.) It also makes building servers a little bit faster with cmake for the most common cases. You can apply debug options to `tests/server` with these new options: - `./configure`: `--enable-server-debug`. - cmake: `-DENABLE_SERVER_DEBUG`. Also sync the way we pass these macros in autotools, with CMake builds. Before this patch, autotools passed them via `curl_config.h`. After this patch it passes them on the command-line, like cmake builds do. This patch also make these option no longer passed to examples and `http/client` in cmake builds, where they were no-ops anyway. Ref: #15000 Closes #16705
This commit is contained in:
parent
43b2884655
commit
a16485a42e
|
@ -290,13 +290,14 @@ if(ENABLE_DEBUG)
|
||||||
message(WARNING "This curl build is Debug-enabled and insecure, do not use in production.")
|
message(WARNING "This curl build is Debug-enabled and insecure, do not use in production.")
|
||||||
endif()
|
endif()
|
||||||
option(ENABLE_CURLDEBUG "Enable TrackMemory debug feature" ${ENABLE_DEBUG})
|
option(ENABLE_CURLDEBUG "Enable TrackMemory debug feature" ${ENABLE_DEBUG})
|
||||||
|
option(ENABLE_SERVER_DEBUG "Apply curl debug options to test servers" OFF)
|
||||||
|
|
||||||
|
set(CURL_DEBUG_MACROS "")
|
||||||
if(ENABLE_DEBUG)
|
if(ENABLE_DEBUG)
|
||||||
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS "DEBUGBUILD")
|
list(APPEND CURL_DEBUG_MACROS "DEBUGBUILD")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(ENABLE_CURLDEBUG)
|
if(ENABLE_CURLDEBUG)
|
||||||
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS "CURLDEBUG")
|
list(APPEND CURL_DEBUG_MACROS "CURLDEBUG")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
option(CURL_CLANG_TIDY "Run the build through clang-tidy" OFF)
|
option(CURL_CLANG_TIDY "Run the build through clang-tidy" OFF)
|
||||||
|
|
20
configure.ac
20
configure.ac
|
@ -49,6 +49,7 @@ CURL_CHECK_OPTION_OPTIMIZE
|
||||||
CURL_CHECK_OPTION_WARNINGS
|
CURL_CHECK_OPTION_WARNINGS
|
||||||
CURL_CHECK_OPTION_WERROR
|
CURL_CHECK_OPTION_WERROR
|
||||||
CURL_CHECK_OPTION_CURLDEBUG
|
CURL_CHECK_OPTION_CURLDEBUG
|
||||||
|
AM_CONDITIONAL(CURLDEBUG, test x$want_curldebug = xyes)
|
||||||
CURL_CHECK_OPTION_SYMBOL_HIDING
|
CURL_CHECK_OPTION_SYMBOL_HIDING
|
||||||
CURL_CHECK_OPTION_ARES
|
CURL_CHECK_OPTION_ARES
|
||||||
CURL_CHECK_OPTION_RT
|
CURL_CHECK_OPTION_RT
|
||||||
|
@ -588,6 +589,25 @@ else
|
||||||
fi
|
fi
|
||||||
AM_CONDITIONAL(BUILD_UNITTESTS, test x$want_unittests = xyes)
|
AM_CONDITIONAL(BUILD_UNITTESTS, test x$want_unittests = xyes)
|
||||||
|
|
||||||
|
dnl Apply curl debug options to test servers
|
||||||
|
OPT_SERVER_DEBUG="default"
|
||||||
|
AC_ARG_ENABLE(server-debug,
|
||||||
|
AS_HELP_STRING([--enable-server-debug],[Enable debug options for test servers])
|
||||||
|
AS_HELP_STRING([--disable-server-debug],[Disable debug options for test servers]),
|
||||||
|
OPT_SERVER_DEBUG=$enableval)
|
||||||
|
case "$OPT_SERVER_DEBUG" in
|
||||||
|
no)
|
||||||
|
dnl --disable-server-debug option used
|
||||||
|
want_server_debug="no"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
dnl --enable-server-debug option used or not specified
|
||||||
|
want_server_debug="no"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
AC_MSG_RESULT([$want_server_debug])
|
||||||
|
AM_CONDITIONAL(ENABLE_SERVER_DEBUG, test x$want_server_debug = xyes)
|
||||||
|
|
||||||
dnl **********************************************************************
|
dnl **********************************************************************
|
||||||
dnl Compilation based checks should not be done before this point.
|
dnl Compilation based checks should not be done before this point.
|
||||||
dnl **********************************************************************
|
dnl **********************************************************************
|
||||||
|
|
|
@ -245,6 +245,7 @@ target_link_libraries(my_target PRIVATE CURL::libcurl)
|
||||||
- `ENABLE_CURLDEBUG`: Enable TrackMemory debug feature. Default: =`ENABLE_DEBUG`
|
- `ENABLE_CURLDEBUG`: Enable TrackMemory debug feature. Default: =`ENABLE_DEBUG`
|
||||||
- `ENABLE_CURL_MANUAL`: Build the man page for curl and enable its `-M`/`--manual` option. Default: `ON`
|
- `ENABLE_CURL_MANUAL`: Build the man page for curl and enable its `-M`/`--manual` option. Default: `ON`
|
||||||
- `ENABLE_DEBUG`: Enable curl debug features (for developing curl itself). Default: `OFF`
|
- `ENABLE_DEBUG`: Enable curl debug features (for developing curl itself). Default: `OFF`
|
||||||
|
- `ENABLE_SERVER_DEBUG`: Apply curl debug options to test servers. Default: `OFF`
|
||||||
- `IMPORT_LIB_SUFFIX`: Import library suffix. Default: `_imp` for MSVC-like toolchains, otherwise empty.
|
- `IMPORT_LIB_SUFFIX`: Import library suffix. Default: `_imp` for MSVC-like toolchains, otherwise empty.
|
||||||
- `LIBCURL_OUTPUT_NAME`: Basename of the curl library. Default: `libcurl`
|
- `LIBCURL_OUTPUT_NAME`: Basename of the curl library. Default: `libcurl`
|
||||||
- `PICKY_COMPILER`: Enable picky compiler options. Default: `ON`
|
- `PICKY_COMPILER`: Enable picky compiler options. Default: `ON`
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
set(LIB_NAME "libcurl")
|
set(LIB_NAME "libcurl")
|
||||||
set(LIBCURL_OUTPUT_NAME "libcurl" CACHE STRING "Basename of the curl library")
|
set(LIBCURL_OUTPUT_NAME "libcurl" CACHE STRING "Basename of the curl library")
|
||||||
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS "BUILDING_LIBCURL")
|
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS "BUILDING_LIBCURL")
|
||||||
|
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS "${CURL_DEBUG_MACROS}")
|
||||||
|
|
||||||
configure_file("curl_config.h.cmake" "${CMAKE_CURRENT_BINARY_DIR}/curl_config.h")
|
configure_file("curl_config.h.cmake" "${CMAKE_CURRENT_BINARY_DIR}/curl_config.h")
|
||||||
|
|
||||||
|
|
|
@ -64,6 +64,12 @@ include Makefile.soname
|
||||||
AM_CPPFLAGS += -DBUILDING_LIBCURL
|
AM_CPPFLAGS += -DBUILDING_LIBCURL
|
||||||
AM_LDFLAGS =
|
AM_LDFLAGS =
|
||||||
AM_CFLAGS =
|
AM_CFLAGS =
|
||||||
|
if DEBUGBUILD
|
||||||
|
AM_CPPFLAGS += -DDEBUGBUILD
|
||||||
|
endif
|
||||||
|
if CURLDEBUG
|
||||||
|
AM_CPPFLAGS += -DCURLDEBUG
|
||||||
|
endif
|
||||||
|
|
||||||
# Makefile.inc provides the CSOURCES and HHEADERS defines
|
# Makefile.inc provides the CSOURCES and HHEADERS defines
|
||||||
include Makefile.inc
|
include Makefile.inc
|
||||||
|
|
|
@ -131,7 +131,6 @@ AS_HELP_STRING([--disable-curldebug],[Disable curl debug memory tracking]),
|
||||||
dnl as a request to disable curldebug.
|
dnl as a request to disable curldebug.
|
||||||
if test "$want_debug" = "yes"; then
|
if test "$want_debug" = "yes"; then
|
||||||
AC_MSG_RESULT([(assumed) yes])
|
AC_MSG_RESULT([(assumed) yes])
|
||||||
AC_DEFINE(CURLDEBUG, 1, [to enable curl debug memory tracking])
|
|
||||||
else
|
else
|
||||||
AC_MSG_RESULT([no])
|
AC_MSG_RESULT([no])
|
||||||
fi
|
fi
|
||||||
|
@ -148,7 +147,6 @@ AS_HELP_STRING([--disable-curldebug],[Disable curl debug memory tracking]),
|
||||||
dnl --disable-curldebug had been given setting shell variable
|
dnl --disable-curldebug had been given setting shell variable
|
||||||
dnl want_curldebug to 'no'.
|
dnl want_curldebug to 'no'.
|
||||||
want_curldebug="yes"
|
want_curldebug="yes"
|
||||||
AC_DEFINE(CURLDEBUG, 1, [to enable curl debug memory tracking])
|
|
||||||
AC_MSG_RESULT([yes])
|
AC_MSG_RESULT([yes])
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -183,7 +181,6 @@ AS_HELP_STRING([--disable-debug],[Disable debug build options]),
|
||||||
*)
|
*)
|
||||||
dnl --enable-debug option used
|
dnl --enable-debug option used
|
||||||
want_debug="yes"
|
want_debug="yes"
|
||||||
AC_DEFINE(DEBUGBUILD, 1, [enable debug build options])
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
AC_MSG_RESULT([$want_debug])
|
AC_MSG_RESULT([$want_debug])
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#
|
#
|
||||||
###########################################################################
|
###########################################################################
|
||||||
set(EXE_NAME curl)
|
set(EXE_NAME curl)
|
||||||
|
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS "${CURL_DEBUG_MACROS}")
|
||||||
|
|
||||||
set(_curl_cfiles_gen "")
|
set(_curl_cfiles_gen "")
|
||||||
set(_curl_hfiles_gen "")
|
set(_curl_hfiles_gen "")
|
||||||
|
|
|
@ -51,6 +51,12 @@ bin_PROGRAMS = curl
|
||||||
if USE_CPPFLAG_CURL_STATICLIB
|
if USE_CPPFLAG_CURL_STATICLIB
|
||||||
AM_CPPFLAGS += -DCURL_STATICLIB
|
AM_CPPFLAGS += -DCURL_STATICLIB
|
||||||
endif
|
endif
|
||||||
|
if DEBUGBUILD
|
||||||
|
AM_CPPFLAGS += -DDEBUGBUILD
|
||||||
|
endif
|
||||||
|
if CURLDEBUG
|
||||||
|
AM_CPPFLAGS += -DCURLDEBUG
|
||||||
|
endif
|
||||||
|
|
||||||
AM_LDFLAGS =
|
AM_LDFLAGS =
|
||||||
if USE_UNICODE
|
if USE_UNICODE
|
||||||
|
|
|
@ -80,6 +80,7 @@ foreach(_target IN LISTS LIBTESTPROGS)
|
||||||
"${PROJECT_SOURCE_DIR}/src" # for "tool_binmode.h"
|
"${PROJECT_SOURCE_DIR}/src" # for "tool_binmode.h"
|
||||||
"${PROJECT_SOURCE_DIR}/tests/libtest" # to be able to build generated tests
|
"${PROJECT_SOURCE_DIR}/tests/libtest" # to be able to build generated tests
|
||||||
)
|
)
|
||||||
|
set_property(TARGET ${_target_name} APPEND PROPERTY COMPILE_DEFINITIONS "${CURL_DEBUG_MACROS}")
|
||||||
if(NOT CURL_TEST_BUNDLES)
|
if(NOT CURL_TEST_BUNDLES)
|
||||||
set_property(TARGET ${_target_name} APPEND PROPERTY COMPILE_DEFINITIONS ${_upper_target})
|
set_property(TARGET ${_target_name} APPEND PROPERTY COMPILE_DEFINITIONS ${_upper_target})
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -65,6 +65,12 @@ noinst_LTLIBRARIES =
|
||||||
if USE_CPPFLAG_CURL_STATICLIB
|
if USE_CPPFLAG_CURL_STATICLIB
|
||||||
AM_CPPFLAGS += -DCURL_STATICLIB
|
AM_CPPFLAGS += -DCURL_STATICLIB
|
||||||
endif
|
endif
|
||||||
|
if DEBUGBUILD
|
||||||
|
AM_CPPFLAGS += -DDEBUGBUILD
|
||||||
|
endif
|
||||||
|
if CURLDEBUG
|
||||||
|
AM_CPPFLAGS += -DCURLDEBUG
|
||||||
|
endif
|
||||||
|
|
||||||
AM_LDFLAGS =
|
AM_LDFLAGS =
|
||||||
AM_CFLAGS =
|
AM_CFLAGS =
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
curl_transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
|
curl_transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
|
||||||
include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
|
include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
|
||||||
|
|
||||||
if(ENABLE_CURLDEBUG)
|
if(ENABLE_SERVER_DEBUG AND ENABLE_CURLDEBUG)
|
||||||
set_source_files_properties("../../lib/memdebug.c" "../../lib/curl_multibyte.c" PROPERTIES SKIP_UNITY_BUILD_INCLUSION ON)
|
set_source_files_properties("../../lib/memdebug.c" "../../lib/curl_multibyte.c" PROPERTIES SKIP_UNITY_BUILD_INCLUSION ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -40,6 +40,9 @@ foreach(_target IN LISTS noinst_PROGRAMS)
|
||||||
"${PROJECT_SOURCE_DIR}/src" # for "tool_binmod.h", "tool_xattr.h"
|
"${PROJECT_SOURCE_DIR}/src" # for "tool_binmod.h", "tool_xattr.h"
|
||||||
)
|
)
|
||||||
target_link_libraries(${_target_name} ${CURL_LIBS})
|
target_link_libraries(${_target_name} ${CURL_LIBS})
|
||||||
|
if(ENABLE_SERVER_DEBUG)
|
||||||
|
set_property(TARGET ${_target_name} APPEND PROPERTY COMPILE_DEFINITIONS "${CURL_DEBUG_MACROS}")
|
||||||
|
endif()
|
||||||
# Test servers simply are standalone programs that do not use libcurl
|
# Test servers simply are standalone programs that do not use libcurl
|
||||||
# library. For convenience and to ease portability of these servers,
|
# library. For convenience and to ease portability of these servers,
|
||||||
# some source code files from the libcurl subdirectory are also used
|
# some source code files from the libcurl subdirectory are also used
|
||||||
|
|
|
@ -45,6 +45,14 @@ CFLAGS += @CURL_CFLAG_EXTRAS@
|
||||||
if DOING_NATIVE_WINDOWS
|
if DOING_NATIVE_WINDOWS
|
||||||
AM_CPPFLAGS += -DCURL_STATICLIB
|
AM_CPPFLAGS += -DCURL_STATICLIB
|
||||||
endif
|
endif
|
||||||
|
if ENABLE_SERVER_DEBUG
|
||||||
|
if DEBUGBUILD
|
||||||
|
AM_CPPFLAGS += -DDEBUGBUILD
|
||||||
|
endif
|
||||||
|
if CURLDEBUG
|
||||||
|
AM_CPPFLAGS += -DCURLDEBUG
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
# Makefile.inc provides neat definitions
|
# Makefile.inc provides neat definitions
|
||||||
include Makefile.inc
|
include Makefile.inc
|
||||||
|
|
|
@ -50,6 +50,7 @@ foreach(_target IN LISTS UNITPROGS)
|
||||||
"${PROJECT_SOURCE_DIR}/src"
|
"${PROJECT_SOURCE_DIR}/src"
|
||||||
"${PROJECT_SOURCE_DIR}/tests/libtest"
|
"${PROJECT_SOURCE_DIR}/tests/libtest"
|
||||||
)
|
)
|
||||||
|
set_property(TARGET ${_target_name} APPEND PROPERTY COMPILE_DEFINITIONS "${CURL_DEBUG_MACROS}")
|
||||||
if(CURL_TEST_BUNDLES)
|
if(CURL_TEST_BUNDLES)
|
||||||
target_include_directories(${_target_name} PRIVATE "${PROJECT_SOURCE_DIR}/tests/unit")
|
target_include_directories(${_target_name} PRIVATE "${PROJECT_SOURCE_DIR}/tests/unit")
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -51,6 +51,12 @@ LDADD = $(top_builddir)/src/libcurltool.la \
|
||||||
@LIBCURL_PC_LDFLAGS_PRIVATE@ @LIBCURL_PC_LIBS_PRIVATE@
|
@LIBCURL_PC_LDFLAGS_PRIVATE@ @LIBCURL_PC_LIBS_PRIVATE@
|
||||||
|
|
||||||
AM_CPPFLAGS += -DCURL_STATICLIB -DUNITTESTS
|
AM_CPPFLAGS += -DCURL_STATICLIB -DUNITTESTS
|
||||||
|
if DEBUGBUILD
|
||||||
|
AM_CPPFLAGS += -DDEBUGBUILD
|
||||||
|
endif
|
||||||
|
if CURLDEBUG
|
||||||
|
AM_CPPFLAGS += -DCURLDEBUG
|
||||||
|
endif
|
||||||
|
|
||||||
if BUILD_UNITTESTS
|
if BUILD_UNITTESTS
|
||||||
if USE_TEST_BUNDLES
|
if USE_TEST_BUNDLES
|
||||||
|
|
Loading…
Reference in New Issue
Block a user