Author: brane
Date: Fri Jul  4 12:19:11 2025
New Revision: 1926951

URL: http://svn.apache.org/viewvc?rev=1926951&view=rev
Log:
It says on the tin to use the DEBUG configure flag to "Enable debugging
info and strict compile warnings". Make it so.

* CMakeLists.txt: If DEBUG is set, also set SERF_MAINTAINER_MODE.
* SConstruct: If DEBUG is set, also enable additional warnings; and,
   by default, silence all warings from the MockHTTP build.
  (SHOW_MOCKHTTP_WARNINGS): New constant; set to True to show
   warnings from MockHTTP anyway.

Modified:
    serf/trunk/CMakeLists.txt
    serf/trunk/SConstruct

Modified: serf/trunk/CMakeLists.txt
URL: 
http://svn.apache.org/viewvc/serf/trunk/CMakeLists.txt?rev=1926951&r1=1926950&r2=1926951&view=diff
==============================================================================
--- serf/trunk/CMakeLists.txt (original)
+++ serf/trunk/CMakeLists.txt Fri Jul  4 12:19:11 2025
@@ -76,6 +76,7 @@ endif()
 if(NOT CMAKE_BUILD_TYPE)
   if(DEBUG)
     set(CMAKE_BUILD_TYPE Debug CACHE STRING "Default to debug build." FORCE)
+    set(SERF_MAINTAINER_MODE TRUE)
   else()
     set(CMAKE_BUILD_TYPE Release CACHE STRING "Default to release build." 
FORCE)
   endif()

Modified: serf/trunk/SConstruct
URL: 
http://svn.apache.org/viewvc/serf/trunk/SConstruct?rev=1926951&r1=1926950&r2=1926951&view=diff
==============================================================================
--- serf/trunk/SConstruct (original)
+++ serf/trunk/SConstruct Fri Jul  4 12:19:11 2025
@@ -59,6 +59,9 @@ except TypeError:
   custom_tests['CheckFunc'] = build.scons_extras.CheckFunc
   print('warning: replaced Conftest.CheckFunc() for SCons version < 4.7.')
 
+# By default, we silence all warnings when compiling MockHTTP.
+# Set this to True to show them instead.
+SHOW_MOCKHTTP_WARNINGS = False
 
 HEADER_FILES = ['serf.h',
                 'serf_bucket_types.h',
@@ -364,6 +367,13 @@ if sys.platform != 'win32':
     # env.Append(CCFLAGS=['-g'])
     env.SerfAppendIf(['CFLAGS', 'CCFLAGS'], r'-g\S*', CCFLAGS=['-g'])
     env.Append(CPPDEFINES=['DEBUG', '_DEBUG'])
+    env.Append(CCFLAGS=['-Wimplicit-function-declaration',
+                        '-Wmissing-variable-declarations',
+                        '-Wunreachable-code',
+                        '-Wshorten-64-to-32',
+                        '-Wno-system-headers',
+                        '-Wextra-tokens',
+                        '-Wnewline-eof'])
   else:
     # env.Append(CCFLAGS=['-O2'])
     env.SerfAppendIf(['CFLAGS', 'CCFLAGS'], r'-O\S*', CCFLAGS=['-O2'])
@@ -733,10 +743,20 @@ tenv = env.Clone()
 tenv.Append(CPPDEFINES=['MOCKHTTP_OPENSSL'])
 
 # Build the MockHTTP static library. MockHTTP needs C99 and OpenSSL's
-# deprecated APIs.
+# deprecated APIs. Also silence all warnings from MockHTTP.
 mockenv = tenv.Clone()
 mockenv.Replace(CFLAGS = [f.replace('-std=c89', '-std=c99')
                           for f in mockenv['CFLAGS']])
+mockenv.Replace(CCFLAGS = list(
+  filter(lambda f: (SHOW_MOCKHTTP_WARNINGS
+                    or (# GCC-like warning flags
+                        not re.match(r'^\s*-W[a-z][a-z-]+', f)
+                        # MSVC-like warning flags
+                        and not re.match(r'^\s*/(W|w[de])\d+', f))),
+         mockenv['CCFLAGS'])
+))
+if not SHOW_MOCKHTTP_WARNINGS:
+  mockenv.Append(CCFLAGS = ['-w' if sys.platform != 'win32' else '/w'])
 mockenv.Replace(CPPDEFINES = list(filter(lambda d: d != 
'OPENSSL_NO_DEPRECATED',
                                          mockenv['CPPDEFINES'])))
 


Reply via email to