Author: brane
Date: Mon Jun 30 08:31:43 2025
New Revision: 1926869

URL: http://svn.apache.org/viewvc?rev=1926869&view=rev
Log:
In the CMake build, make MockHTTPinC a separats static library and change
flags to use C99 and silence all warnings only for that target.

* test/CMakeLists.txt: Include the MockHTTPinC subdirectory and don't
   fiddle with the CMAKE_C_FLAGS.
  (TEST_ALL_SOURCES): Remove the MockHTTPinC source files.
  (test_all): Depend on an link the mockhttpinc library.

* test/MockHTTPinC/CMakeLists.txt: New. Build the mockhttpinc library.

Added:
    serf/trunk/test/MockHTTPinC/CMakeLists.txt   (with props)
Modified:
    serf/trunk/test/CMakeLists.txt

Modified: serf/trunk/test/CMakeLists.txt
URL: 
http://svn.apache.org/viewvc/serf/trunk/test/CMakeLists.txt?rev=1926869&r1=1926868&r2=1926869&view=diff
==============================================================================
--- serf/trunk/test/CMakeLists.txt (original)
+++ serf/trunk/test/CMakeLists.txt Mon Jun 30 08:31:43 2025
@@ -17,6 +17,7 @@
 #   under the License.
 # ===================================================================
 
+add_subdirectory(MockHTTPinC)
 
 set(TEST_ALL_SOURCES
     "test_all.c"
@@ -30,8 +31,6 @@ set(TEST_ALL_SOURCES
     "mock_buckets.c"
     "mock_sock_buckets.c"
     "test_ssl.c"
-    "MockHTTPinC/MockHTTP.c"
-    "MockHTTPinC/MockHTTP_server.c"
 )
 
 set(TEST_ALL_SUITES
@@ -52,11 +51,6 @@ set(SIMPLE_TEST_TARGETS
     "serf_bwtp"
 )
 
-if(CC_LIKE_GNUC)
-  # MockHTTP requires C99 standard, so use it for the test suite.
-  string(REPLACE "-std=c89" "-std=c99" CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
-endif()
-
 foreach(TEST_TARGET ${SIMPLE_TEST_TARGETS})
   add_executable(${TEST_TARGET} "${TEST_TARGET}.c")
   add_dependencies(${TEST_TARGET} serf_static)
@@ -64,10 +58,9 @@ foreach(TEST_TARGET ${SIMPLE_TEST_TARGET
 endforeach()
 
 add_executable(test_all ${TEST_ALL_SOURCES})
-add_dependencies(test_all serf_static)
-target_compile_definitions(test_all PRIVATE "-DMOCKHTTP_OPENSSL")
+add_dependencies(test_all serf_static mockhttpinc)
 target_include_directories(test_all SYSTEM BEFORE PRIVATE 
${SERF_DEPENDENCY_INCLUDES})
-target_link_libraries(test_all serf_static)
+target_link_libraries(test_all serf_static mockhttpinc)
 
 file(GLOB RESPONSE_TEST_CASES 
"${CMAKE_CURRENT_SOURCE_DIR}/testcases/*.response")
 foreach(TEST_CASE ${RESPONSE_TEST_CASES})

Added: serf/trunk/test/MockHTTPinC/CMakeLists.txt
URL: 
http://svn.apache.org/viewvc/serf/trunk/test/MockHTTPinC/CMakeLists.txt?rev=1926869&view=auto
==============================================================================
--- serf/trunk/test/MockHTTPinC/CMakeLists.txt (added)
+++ serf/trunk/test/MockHTTPinC/CMakeLists.txt Mon Jun 30 08:31:43 2025
@@ -0,0 +1,52 @@
+# ===================================================================
+#   Licensed to the Apache Software Foundation (ASF) under one
+#   or more contributor license agreements.  See the NOTICE file
+#   distributed with this work for additional information
+#   regarding copyright ownership.  The ASF licenses this file
+#   to you under the Apache License, Version 2.0 (the
+#   "License"); you may not use this file except in compliance
+#   with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+# ===================================================================
+
+set(MockHTTPinC_SOURCES
+    "MockHTTP.c"
+    "MockHTTP_server.c"
+)
+
+# Update compiler options for this library.
+if(CC_LIKE_GNUC)
+  # MockHTTP requires the C99 standard.
+  string(REPLACE "-std=c89" "-std=c99" CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
+  # Also silence all warnings.
+  if(NOT SHOW_MockHTTPinC_WARNINGS)
+    string(REGEX REPLACE " *-W[a-z][a-z-]+" "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
+    string(APPEND CMAKE_C_FLAGS " -w")
+  endif()
+elseif(MSVC)
+  # Silence warnings from Microsoft's compiler...
+  #
+  # ... of course, somewhere, somehow CMake adds the /W1 warning option
+  # to the command line and then MSVC complains that we're overriding /W1
+  # with /w. But it's more fun this way, or at least more #$@^&@%!
+  # Or maybe that's just MSBuild doing its magic, and it depends on the
+  # build generator. What would life be without its little mysteries?
+  if(NOT SHOW_MockHTTPinC_WARNINGS)
+    string(REGEX REPLACE " */(W|w[de])[0-9]+" "" CMAKE_C_FLAGS 
${CMAKE_C_FLAGS})
+    string(APPEND CMAKE_C_FLAGS " /w")
+  endif()
+endif()
+mark_as_advanced(SHOW_MockHTTPinC_WARNINGS)
+
+add_library(mockhttpinc STATIC ${MockHTTPinC_SOURCES})
+target_compile_definitions(mockhttpinc PUBLIC "MOCKHTTP_OPENSSL")
+target_include_directories(mockhttpinc SYSTEM BEFORE
+                           PRIVATE ${APR_INCLUDES} ${APRUTIL_INCLUDES})

Propchange: serf/trunk/test/MockHTTPinC/CMakeLists.txt
------------------------------------------------------------------------------
    svn:eol-style = native


Reply via email to