]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
cmake: misc tidy-ups
authorViktor Szakats <commit@vsz.me>
Fri, 7 Feb 2025 12:44:39 +0000 (13:44 +0100)
committerViktor Szakats <commit@vsz.me>
Sun, 16 Feb 2025 02:37:22 +0000 (03:37 +0100)
- replace `add_compile_options()`,  `add_definitions()` with directory
  properties. To harmonize this across all scripts. The new commands are
  verbose, but describe better how they work. The syntax is also closer
  to setting target properties, helps grepping.

- prefer `CMAKE_INSTALL_PREFIX` over `--prefix` (in tests, CI).

- tidy up cmake invocations.

- formatting.

Closes #16238

.github/workflows/linux.yml
.github/workflows/non-native.yml
CMakeLists.txt
appveyor.sh
docs/HTTP3.md
lib/CMakeLists.txt
src/CMakeLists.txt
tests/cmake/test.sh

index b71d35fac087ebf4cd194648685fea20a2839228..edf1814f9ce62121e8d41e46f2b885f5a1743346 100644 (file)
@@ -589,6 +589,7 @@ jobs:
           fi
           if [ -n '${{ matrix.build.generate }}' ]; then
             cmake -B . -G Ninja \
+              -DCMAKE_INSTALL_PREFIX="$HOME/curl" \
               -DCMAKE_C_COMPILER_TARGET=$(uname -m)-pc-linux-gnu -DBUILD_STATIC_LIBS=ON \
               -DCMAKE_UNITY_BUILD=ON -DCURL_TEST_BUNDLES=ON -DCURL_WERROR=ON \
               ${{ matrix.build.generate }}
@@ -637,7 +638,7 @@ jobs:
 
       - name: 'cmake install'
         if: ${{ matrix.build.generate }}
-        run: cmake --install . --prefix $HOME/curl --strip
+        run: cmake --install . --strip
 
       - name: 'build tests'
         if: ${{ matrix.build.install_steps != 'skipall' }}
index e620b970fe39d9532419a8fb28fd8a53a6851014..62c6782bb3e84c40f12da396800b09fcdb88bc54 100644 (file)
@@ -311,7 +311,7 @@ jobs:
             https://github.com/libressl/portable/releases/download/v${{ env.libressl-version }}/libressl-${{ env.libressl-version }}.tar.gz | tar -x
           cd libressl-${{ env.libressl-version }}
           # FIXME: on the 4.0.1 release, delete '-DHAVE_ENDIAN_H=0'
-          cmake . \
+          cmake -B . \
             -DHAVE_ENDIAN_H=0 \
             -DCMAKE_INSTALL_PREFIX="$HOME/libressl" \
             -DCMAKE_SYSTEM_NAME=iOS \
index 3541228460d63c33b535e97d641cab54a59dfc92..9e5a97a776517be8b75b2a8d7ce09957a104af49 100644 (file)
@@ -202,9 +202,9 @@ if(WIN32)
     set(ENABLE_UNICODE ON)
   endif()
   if(ENABLE_UNICODE)
-    add_definitions("-DUNICODE" "-D_UNICODE")
+    set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS "UNICODE" "_UNICODE")
     if(MINGW)
-      add_compile_options("-municode")
+      set_property(DIRECTORY APPEND PROPERTY COMPILE_OPTIONS "-municode")
     endif()
   endif()
 
@@ -216,7 +216,7 @@ if(WIN32)
 
   set(CURL_TARGET_WINDOWS_VERSION "" CACHE STRING "Minimum target Windows version as hex string")
   if(CURL_TARGET_WINDOWS_VERSION)
-    add_definitions("-D_WIN32_WINNT=${CURL_TARGET_WINDOWS_VERSION}")
+    set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS "_WIN32_WINNT=${CURL_TARGET_WINDOWS_VERSION}")
     list(APPEND CMAKE_REQUIRED_DEFINITIONS "-D_WIN32_WINNT=${CURL_TARGET_WINDOWS_VERSION}")  # Apply to all feature checks
   endif()
 
@@ -513,7 +513,7 @@ endif()
 
 # If we are on AIX, do the _ALL_SOURCE magic
 if(CMAKE_SYSTEM_NAME STREQUAL "AIX")
-  add_definitions("-D_ALL_SOURCE")
+  set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS "_ALL_SOURCE")
 endif()
 
 # If we are on Haiku, make sure that the network library is brought in.
@@ -605,8 +605,8 @@ if(ENABLE_IPV6)
   if(WIN32)
     check_struct_has_member("struct sockaddr_in6" "sin6_scope_id" "winsock2.h;ws2tcpip.h" HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID)
   else()
-    check_struct_has_member("struct sockaddr_in6" "sin6_addr" "netinet/in.h" HAVE_SOCKADDR_IN6_SIN6_ADDR)
     check_struct_has_member("struct sockaddr_in6" "sin6_scope_id" "netinet/in.h" HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID)
+    check_struct_has_member("struct sockaddr_in6" "sin6_addr" "netinet/in.h" HAVE_SOCKADDR_IN6_SIN6_ADDR)
     if(NOT HAVE_SOCKADDR_IN6_SIN6_ADDR)
       if(NOT DOS AND NOT AMIGA)
         message(WARNING "struct sockaddr_in6 not available, disabling IPv6 support")
@@ -1932,7 +1932,7 @@ endif()
 
 include(CMake/OtherTests.cmake)
 
-add_definitions("-DHAVE_CONFIG_H")
+set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS "HAVE_CONFIG_H")
 
 if(WIN32)
   list(APPEND CURL_LIBS "ws2_32" "bcrypt")
index 9b30f2379e08ba002723f70521c5c11cb750456b..021bf494b251e0b8ea32b1842b00027801750ca6 100644 (file)
@@ -56,7 +56,7 @@ if [ "${BUILD_SYSTEM}" = 'CMake' ]; then
     [ "${PRJ_CFG}" = 'Release' ] && options+=' -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE='
     [[ "${PRJ_GEN}" = *'Visual Studio'* ]] && options+=' -DCMAKE_VS_GLOBALS=TrackFileAccess=false'
     # shellcheck disable=SC2086
-    cmake -B "_bld${_chkprefill}" "-G${PRJ_GEN}" ${TARGET} \
+    cmake -B "_bld${_chkprefill}" -G "${PRJ_GEN}" ${TARGET} \
       -DCURL_USE_OPENSSL="${OPENSSL}" \
       -DCURL_USE_SCHANNEL="${SCHANNEL}" \
       -DHTTP_ONLY="${HTTP_ONLY}" \
index b7050039b447d2f69781b8299615f3cf19bde1e2..eee26a65c95cec45e9bc2f7c902103cbd5cd4fed 100644 (file)
@@ -251,7 +251,7 @@ You can build curl with cmake:
      % cd ..
      % git clone https://github.com/curl/curl
      % cd curl
-     % cmake -B bld -DCURL_USE_OPENSSL=ON -DUSE_OPENSSL_QUIC=ON
+     % cmake -B bld -DCURL_USE_OPENSSL=ON -DUSE_OPENSSL_QUIC=ON
      % cmake --build bld
      % cmake --install bld
 
index 12f5a1936bea6b65d88e3306f05a81f3d7af7df7..244835814ae9e01e61468d85bea57585a48e833c 100644 (file)
@@ -23,7 +23,7 @@
 ###########################################################################
 set(LIB_NAME "libcurl")
 set(LIBCURL_OUTPUT_NAME "libcurl" CACHE STRING "Basename of the curl library")
-add_definitions("-DBUILDING_LIBCURL")
+set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS "BUILDING_LIBCURL")
 
 configure_file("curl_config.h.cmake" "${CMAKE_CURRENT_BINARY_DIR}/curl_config.h")
 
index 715a471a7535134dc71bf486563c7f4d6811eb03..ab4ebf96ce2ceabb32139f4b92e08407879029d7 100644 (file)
@@ -22,7 +22,7 @@
 #
 ###########################################################################
 set(EXE_NAME curl)
-add_definitions("-DBUILDING_CURL")
+set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS "BUILDING_CURL")
 
 set(_curl_cfiles_gen "")
 set(_curl_hfiles_gen "")
index 88786917d91e8dfcfbfbafff7e26e7bdb6c553e0..52987e027387d1085d2e1130c41ee4957d63ca6f 100755 (executable)
@@ -28,9 +28,9 @@ fi
 
 if [ "${mode}" = 'all' ] || [ "${mode}" = 'find_package' ]; then
   rm -rf bld-curl
-  cmake ../.. -B bld-curl
+  cmake ../.. -B bld-curl -DCMAKE_INSTALL_PREFIX="${PWD}/bld-curl/_pkg"
   cmake --build bld-curl
-  cmake --install bld-curl --prefix bld-curl/_pkg
+  cmake --install bld-curl
   rm -rf bld-find_package
   cmake -B bld-find_package \
     -DTEST_INTEGRATION_MODE=find_package \