From dda251ef1020da07dc4640a225e01051cb977535 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Fri, 8 Aug 2025 22:25:01 +0200 Subject: [PATCH] cmake: define `WIN32_LEAN_AND_MEAN` for examples To build faster. Also syncing with autotools. Job | Before | After | :------------------ | -----: | ----: | dl-mingw 15 | 45s | 39s | dl-mingw 9.5.0 | 72s | 49s | dl-mingw 7.3.0 | 29s | 19s | dl-mingw 6.4.0 | 20s | 9s | Linux cross | 30s | 19s | MSVC UWP | 77s | 65s | MSVC x64 | 27s | 22s | VS2010 | 61s | 48s | VS2022 clang-cl | 226s | 195s | It also happens to fix what looks like a Windows SDK header bug seen with VS2019 on AppVeyor CI: ``` C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um\winscard.h(1422,1): error C2220: the following warning is treated as an error (compiling source file C:\projects\curl\docs\examples\block_ip.c) C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um\winscard.h(1422,1): warning C5031: #pragma warning(pop): likely mismatch, popping warning state pushed in different file (compiling source file C:\projects\curl\docs\examples\block_ip.c) C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um\winioctl.h : message : #pragma warning(push) (compiling source file C:\projects\curl\docs\examples\block_ip.c) C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um\windows.h(254,17): warning C5031: #pragma warning(pop): likely mismatch, popping warning state pushed in different file (compiling source file C:\projects\curl\docs\examples\block_ip.c) C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um\winscard.h : message : #pragma warning(push) (compiling source file C:\projects\curl\docs\examples\block_ip.c) C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um\winsock2.h(4221,1): warning C5031: #pragma warning(pop): likely mismatch, popping warning state pushed in different file (compiling source file C:\projects\curl\docs\examples\block_ip.c) C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um\windows.h : message : #pragma warning(push) (compiling source file C:\projects\curl\docs\examples\block_ip.c) C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um\winsock2.h : warning C5032: detected #pragma warning(push) with no corresponding #pragma warning(pop) (compiling source file C:\projects\curl\docs\examples\block_ip.c) ``` Ref: https://ci.appveyor.com/project/curlorg/curl/builds/52531106/job/66b6r098pll2le70#L312 Closes #18232 --- docs/examples/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/examples/CMakeLists.txt b/docs/examples/CMakeLists.txt index 0963c62d9a..f69445fbfe 100644 --- a/docs/examples/CMakeLists.txt +++ b/docs/examples/CMakeLists.txt @@ -33,6 +33,7 @@ foreach(_target IN LISTS check_PROGRAMS) add_executable(${_target_name} EXCLUDE_FROM_ALL "${_target}.c") add_dependencies(curl-examples ${_target_name}) target_link_libraries(${_target_name} ${LIB_SELECTED} ${CURL_NETWORK_AND_TIME_LIBS}) - target_compile_definitions(${_target_name} PRIVATE "CURL_NO_OLDIES" "$<$:_CRT_SECURE_NO_DEPRECATE>") + target_compile_definitions(${_target_name} PRIVATE "CURL_NO_OLDIES" + "$<$:WIN32_LEAN_AND_MEAN>" "$<$:_CRT_SECURE_NO_DEPRECATE>") set_target_properties(${_target_name} PROPERTIES OUTPUT_NAME "${_target}" PROJECT_LABEL "Example ${_target}" UNITY_BUILD OFF) endforeach() -- 2.47.3