diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 70e3f5eff2..ef6ccbfbf5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -24,6 +24,9 @@ set(EXE_NAME curl) add_definitions("-DBUILDING_CURL") +set(_curl_cfiles_gen "") +set(_curl_hfiles_gen "") + if(ENABLE_CURL_MANUAL AND HAVE_MANUAL_TOOLS) add_definitions("-DUSE_MANUAL") add_custom_command( @@ -40,6 +43,8 @@ if(ENABLE_CURL_MANUAL AND HAVE_MANUAL_TOOLS) "${CMAKE_CURRENT_SOURCE_DIR}/tool_hugehelp.h" "${CURL_ASCIIPAGE}" VERBATIM) + list(APPEND _curl_cfiles_gen "tool_hugehelp.c") + list(APPEND _curl_hfiles_gen "tool_hugehelp.h") else() add_custom_command( OUTPUT "tool_hugehelp.c" @@ -49,10 +54,6 @@ else() VERBATIM) endif() -# Get 'CURL_CFILES', 'CURLX_CFILES', 'CURL_HFILES', 'CURLTOOL_LIBCURL_CFILES' variables -curl_transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake") -include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake") - if(CURL_CA_EMBED_SET) if(PERL_FOUND) add_definitions("-DCURL_CA_EMBED") @@ -64,12 +65,16 @@ if(CURL_CA_EMBED_SET) "${CMAKE_CURRENT_SOURCE_DIR}/mk-file-embed.pl" "${CURL_CA_EMBED}" VERBATIM) - list(APPEND CURL_CFILES "tool_ca_embed.c") + list(APPEND _curl_cfiles_gen "tool_ca_embed.c") else() message(WARNING "Perl not found. Will not embed the CA bundle.") endif() endif() +# Get 'CURL_CFILES', 'CURLX_CFILES', 'CURL_HFILES', 'CURLTOOL_LIBCURL_CFILES' variables +curl_transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake") +include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake") + if(WIN32) list(APPEND CURL_CFILES "curl.rc") endif() @@ -86,7 +91,7 @@ endif() add_executable( ${EXE_NAME} - ${CURL_CFILES} ${CURLX_CFILES} ${CURL_HFILES} + ${CURL_CFILES} ${_curl_cfiles_gen} ${CURLX_CFILES} ${CURL_HFILES} ${_curl_hfiles_gen} ) add_executable( @@ -94,16 +99,11 @@ add_executable( ALIAS ${EXE_NAME} ) -set(_curl_files "${CURL_CFILES}" "${CURL_HFILES}") -if(CMAKE_GENERATOR STREQUAL "Xcode") - # Workaround for 'The custom command generating tool_hugehelp.c is attached to multiple targets [...] curl curltool' - list(REMOVE_ITEM _curl_files "tool_hugehelp.c" "tool_hugehelp.h" "tool_ca_embed.c") -endif() add_library( curltool # special libcurltool library just for unittests STATIC EXCLUDE_FROM_ALL - ${_curl_files} ${CURLTOOL_LIBCURL_CFILES} + ${CURL_CFILES} ${CURLTOOL_LIBCURL_CFILES} ${CURL_HFILES} ) target_compile_definitions(curltool PUBLIC "UNITTESTS" "CURL_STATICLIB") target_link_libraries(curltool PRIVATE ${CURL_LIBS}) @@ -117,8 +117,8 @@ if(ENABLE_UNICODE AND MINGW) endif() source_group("curlX source files" FILES ${CURLX_CFILES}) -source_group("curl source files" FILES ${CURL_CFILES}) -source_group("curl header files" FILES ${CURL_HFILES}) +source_group("curl source files" FILES ${CURL_CFILES} ${_curl_cfiles_gen}) +source_group("curl header files" FILES ${CURL_HFILES} ${_curl_hfiles_gen}) include_directories( "${PROJECT_BINARY_DIR}/lib" # for "curl_config.h" diff --git a/src/Makefile.am b/src/Makefile.am index 5e10157c1a..5282aaff06 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -60,6 +60,8 @@ endif include Makefile.inc +curl_cfiles_gen = +curl_hfiles_gen = CLEANFILES = if USE_UNITY @@ -74,15 +76,15 @@ curl_CURLX = $(CURLTOOL_LIBCURL_CFILES) else curl_CURLX = $(CURLX_CFILES) endif -curltool_unity.c: $(top_srcdir)/scripts/mk-unity.pl $(CURL_CFILES) $(curl_CURLX) - @PERL@ $(top_srcdir)/scripts/mk-unity.pl $(srcdir) $(CURL_CFILES) $(curl_CURLX) --exclude $(curl_EXCLUDE) > curltool_unity.c +curltool_unity.c: $(top_srcdir)/scripts/mk-unity.pl $(CURL_CFILES) $(curl_cfiles_gen) $(curl_CURLX) + @PERL@ $(top_srcdir)/scripts/mk-unity.pl $(srcdir) $(CURL_CFILES) $(curl_cfiles_gen) $(curl_CURLX) --exclude $(curl_EXCLUDE) > curltool_unity.c nodist_curl_SOURCES = curltool_unity.c curl_SOURCES = $(curl_EXCLUDE) CLEANFILES += curltool_unity.c else # CURL_FILES comes from Makefile.inc -curl_SOURCES = $(CURL_FILES) +curl_SOURCES = $(CURL_FILES) $(curl_cfiles_gen) $(curl_hfiles_gen) endif if HAVE_WINDRES curl_SOURCES += $(CURL_RCFILES) @@ -157,10 +159,12 @@ $(HUGE): echo '#include "tool_hugehelp.h"' >> $(HUGE) endif +curl_cfiles_gen += $(HUGE) +curl_hfiles_gen += tool_hugehelp.h CLEANFILES += $(HUGE) CA_EMBED_CSOURCE = tool_ca_embed.c -CURL_CFILES += $(CA_EMBED_CSOURCE) +curl_cfiles_gen += $(CA_EMBED_CSOURCE) CLEANFILES += $(CA_EMBED_CSOURCE) if CURL_CA_EMBED_SET AM_CPPFLAGS += -DCURL_CA_EMBED @@ -198,7 +202,7 @@ endif TIDY := clang-tidy tidy: $(HUGE) $(CA_EMBED_CSOURCE) - $(TIDY) $(CURL_CFILES) $(TIDYFLAGS) $(CURL_CLANG_TIDYFLAGS) -- $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CPPFLAGS) -DHAVE_CONFIG_H + $(TIDY) $(CURL_CFILES) $(curl_cfiles_gen) $(TIDYFLAGS) $(CURL_CLANG_TIDYFLAGS) -- $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CPPFLAGS) -DHAVE_CONFIG_H listhelp: (cd $(top_srcdir)/docs/cmdline-opts && make listhelp) diff --git a/src/Makefile.inc b/src/Makefile.inc index 28275fee93..1290387a01 100644 --- a/src/Makefile.inc +++ b/src/Makefile.inc @@ -82,7 +82,6 @@ CURL_CFILES = \ tool_getpass.c \ tool_help.c \ tool_helpers.c \ - tool_hugehelp.c \ tool_ipfs.c \ tool_libinfo.c \ tool_listhelp.c \ @@ -129,7 +128,6 @@ CURL_HFILES = \ tool_getpass.h \ tool_help.h \ tool_helpers.h \ - tool_hugehelp.h \ tool_ipfs.h \ tool_libinfo.h \ tool_main.h \ diff --git a/src/tool_help.c b/src/tool_help.c index 4f71c8ee8e..9837a114c7 100644 --- a/src/tool_help.c +++ b/src/tool_help.c @@ -30,7 +30,9 @@ #include "tool_util.h" #include "tool_version.h" #include "tool_cb_prg.h" +#ifndef UNITTESTS #include "tool_hugehelp.h" +#endif #include "tool_getparam.h" #include "terminal.h" @@ -284,11 +286,13 @@ void tool_help(char *category) msnprintf(cmdbuf, sizeof(cmdbuf), "\n --no-%s", a->lname); else msnprintf(cmdbuf, sizeof(cmdbuf), "\n %s", category); +#ifndef UNITTESTS if(a->cmd == C_XATTR) /* this is the last option, which then ends when FILES starts */ showhelp("\nALL OPTIONS\n", cmdbuf, "\nFILES"); else showhelp("\nALL OPTIONS\n", cmdbuf, "\n -"); +#endif } #else fprintf(tool_stderr, "Cannot comply. " diff --git a/src/tool_operate.c b/src/tool_operate.c index da807ab857..733515a14c 100644 --- a/src/tool_operate.c +++ b/src/tool_operate.c @@ -94,7 +94,9 @@ #include "tool_xattr.h" #include "tool_vms.h" #include "tool_help.h" +#ifndef UNITTESTS #include "tool_hugehelp.h" +#endif #include "tool_progress.h" #include "tool_ipfs.h" #include "dynbuf.h" @@ -105,6 +107,10 @@ CURL_EXTERN CURLcode curl_easy_perform_ev(CURL *easy); #include "memdebug.h" /* keep this as LAST include */ +#ifdef UNITTESTS +#undef CURL_CA_EMBED +#endif + #ifdef CURL_CA_EMBED #ifndef CURL_DECLARED_CURL_CA_EMBED #define CURL_DECLARED_CURL_CA_EMBED @@ -3184,8 +3190,11 @@ CURLcode operate(struct GlobalConfig *global, int argc, argv_item_t argv[]) if(res == PARAM_HELP_REQUESTED) tool_help(global->help_category); /* Check if we were asked for the manual */ - else if(res == PARAM_MANUAL_REQUESTED) + else if(res == PARAM_MANUAL_REQUESTED) { +#ifndef UNITTESTS hugehelp(); +#endif + } /* Check if we were asked for the version information */ else if(res == PARAM_VERSION_INFO_REQUESTED) tool_version_info();