]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
cmake: prefer dash-style MSVC options
authorViktor Szakats <commit@vsz.me>
Tue, 21 Jan 2025 10:30:52 +0000 (11:30 +0100)
committerViktor Szakats <commit@vsz.me>
Wed, 22 Jan 2025 10:21:42 +0000 (11:21 +0100)
They play better with Unixy shells. The compiler has been supporting
dash options since its early versions.

Also fix to detect warnings options passed in dash-style.

Closes #16063

.github/workflows/windows.yml
CMake/PickyWarnings.cmake
CMakeLists.txt

index b6378f684ba697dbc26bdee64ba4701317eb132d..caf2254f9962408ed957b829d441c27230dfb2b3 100644 (file)
@@ -686,7 +686,7 @@ jobs:
           if [ '${{ matrix.plat }}' = 'uwp' ]; then
             options+=' -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0'
             cflags='-DWINAPI_FAMILY=WINAPI_FAMILY_PC_APP'
-            ldflags='/OPT:NOREF /OPT:NOICF /APPCONTAINER:NO'
+            ldflags='-OPT:NOREF -OPT:NOICF -APPCONTAINER:NO'
             vsglobals=';AppxPackage=false;WindowsAppContainer=false'
           fi
           cmake -B bld ${options} \
@@ -694,8 +694,8 @@ jobs:
             -DVCPKG_INSTALLED_DIR="$VCPKG_INSTALLATION_ROOT/installed" \
             -DVCPKG_TARGET_TRIPLET='${{ matrix.arch }}-${{ matrix.plat }}' \
             -DCMAKE_C_FLAGS="${cflags}" \
-            -DCMAKE_EXE_LINKER_FLAGS="/INCREMENTAL:NO ${ldflags}" \
-            -DCMAKE_SHARED_LINKER_FLAGS="/INCREMENTAL:NO ${ldflags}" \
+            -DCMAKE_EXE_LINKER_FLAGS="-INCREMENTAL:NO ${ldflags}" \
+            -DCMAKE_SHARED_LINKER_FLAGS="-INCREMENTAL:NO ${ldflags}" \
             -DCMAKE_VS_GLOBALS="TrackFileAccess=false${vsglobals}" \
             -DCMAKE_BUILD_TYPE='${{ matrix.type }}' \
             -DCMAKE_UNITY_BUILD=ON -DCURL_TEST_BUNDLES=ON \
index e3a5be25fa9bff25c1048df2a4ee9b3a89670667..90dcfb633f5267267d9484554ecd5a4a36d81b91 100644 (file)
@@ -249,7 +249,7 @@ if(CMAKE_C_COMPILER_ID STREQUAL "Clang" AND MSVC)
     if(_ccopt MATCHES "^-W" AND NOT _ccopt STREQUAL "-Wall")
       list(APPEND _picky_tmp ${_ccopt})
     else()
-      list(APPEND _picky_tmp "/clang:${_ccopt}")
+      list(APPEND _picky_tmp "-clang:${_ccopt}")
     endif()
   endforeach()
   set(_picky ${_picky_tmp})
index b3d13da9829a91f7476f71cae9d8509080c6ff7b..5e138941d48524a2fcd743e629db8770785d776c 100644 (file)
@@ -193,8 +193,8 @@ if(WIN32)
   option(CURL_STATIC_CRT "Build libcurl with static CRT with MSVC (/MT)" OFF)
   if(CURL_STATIC_CRT AND MSVC)
     set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
-    set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /MT")
-    set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /MTd")
+    set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -MT")
+    set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -MTd")
   endif()
 
   option(ENABLE_UNICODE "Use the Unicode version of the Windows API functions" OFF)
@@ -1928,23 +1928,23 @@ endif()
 
 if(MSVC)
   # Disable default manifest added by CMake
-  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MANIFEST:NO")
+  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -MANIFEST:NO")
 
-  if(CMAKE_C_FLAGS MATCHES "/W[0-4]")
-    string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
+  if(CMAKE_C_FLAGS MATCHES "[/-]W[0-4]")
+    string(REGEX REPLACE "[/-]W[0-4]" "-W4" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
   else()
-    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4")
+    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -W4")
   endif()
 
   # Use multithreaded compilation on VS2008+
   if(CMAKE_C_COMPILER_ID STREQUAL "MSVC" AND MSVC_VERSION GREATER_EQUAL 1500)
-    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP")
+    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -MP")
   endif()
 endif()
 
 if(CURL_WERROR)
   if(MSVC)
-    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX")
+    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -WX")
   else()
     # This assumes clang or gcc style options
     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")