mirror of
https://github.com/curl/curl.git
synced 2026-01-18 17:21:26 +01:00
- autotools: fix auto-detection on the Windows platform.
It was mis-detected when targeting Windows XP/2003 64-bit.
It was permanently undetected when building for Windows 32-bit.
```
lib/url.c: In function 'zonefrom_url':
lib/url.c:1802:18: error: implicit declaration of function 'if_nametoindex' [-Wimplicit-function-declaration]
1802 | scopeidx = if_nametoindex(zoneid);
| ^~~~~~~~~~~~~~
lib/url.c:1802:18: error: nested extern declaration of 'if_nametoindex' [-Werror=nested-externs]
```
Ref: https://github.com/curl/curl/actions/runs/16405598782/job/46351023138?pr=17982#step:10:29
Reported-by: LoRd_MuldeR
Fixes #17979
Without this patch the workaround for the 8.15.0 release is:
`export ac_cv_func_if_nametoindex=0` for Windows XP/2003 64-bit.
Background: Checking for the `if_nametoindex()` function via
`AC_CHECK_FUNCS()` (autotools) or `check_function_exists()` (cmake) do
not work on Windows, for two reasons:
- the function may be disabled at compile-time in Windows headers
when targeting old Windows versions (XP or WS2003 in curl context)
via `_WIN32_WINNT`. But it's always present in the system implib
`iphlpapi` where these checks are looking.
- for 32-bit Windows the function signature in the implib requires
a 4-byte argument, while these checks always use no arguments,
making them always fail.
- cmake: call `if_nametoindex` dynamically with mingw-w64 v1.0.
This mingw-w64 version lacks prototype and implib entry for it.
- cmake: add auto-detection for Windows and use as a fallback for
non-pre-fill cases.
- cmake: disable pre-fill with `_CURL_PREFILL=OFF`. (for testing)
- cmake: disable pre-fill for untested compilers. (i.e. non-MSVC,
non-mingw64)
- GHA/windows: make an autotools job build for Windows XP.
Follow-up to 0d71b18153 #17413
Closes #17982
236 lines
7.8 KiB
YAML
236 lines
7.8 KiB
YAML
#***************************************************************************
|
|
# _ _ ____ _
|
|
# Project ___| | | | _ \| |
|
|
# / __| | | | |_) | |
|
|
# | (__| |_| | _ <| |___
|
|
# \___|\___/|_| \_\_____|
|
|
#
|
|
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
|
#
|
|
# This software is licensed as described in the file COPYING, which
|
|
# you should have received as part of this distribution. The terms
|
|
# are also available at https://curl.se/docs/copyright.html.
|
|
#
|
|
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
|
# copies of the Software, and permit persons to whom the Software is
|
|
# furnished to do so, under the terms of the COPYING file.
|
|
#
|
|
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
# KIND, either express or implied.
|
|
#
|
|
# SPDX-License-Identifier: curl
|
|
#
|
|
###########################################################################
|
|
|
|
# https://ci.appveyor.com/project/curlorg/curl/history
|
|
# AppVeyor configuration:
|
|
# https://www.appveyor.com/docs/appveyor-yml/
|
|
# AppVeyor worker images:
|
|
# https://www.appveyor.com/docs/windows-images-software/
|
|
|
|
version: 7.50.0.{build}
|
|
|
|
environment:
|
|
BUILD_SYSTEM: CMake
|
|
UNITY: 'ON'
|
|
OPENSSL: 'OFF'
|
|
SCHANNEL: 'OFF'
|
|
ENABLE_UNICODE: 'OFF'
|
|
DEBUG: 'ON'
|
|
SHARED: 'OFF'
|
|
HTTP_ONLY: 'OFF'
|
|
TFLAGS: 'skiprun'
|
|
EXAMPLES: 'OFF'
|
|
|
|
matrix:
|
|
|
|
# generated CMake-based Visual Studio builds
|
|
|
|
- job_name: 'CMake, VS2022, Release, x64, OpenSSL 3.4, Shared, Build-tests'
|
|
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022'
|
|
PRJ_GEN: 'Visual Studio 17 2022'
|
|
TARGET: '-A x64'
|
|
PRJ_CFG: Release
|
|
OPENSSL: 'ON'
|
|
SHARED: 'ON'
|
|
- job_name: 'CMake, VS2022, Release, arm64, Schannel, Static, Build-tests'
|
|
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022'
|
|
PRJ_GEN: 'Visual Studio 17 2022'
|
|
TARGET: '-A ARM64'
|
|
PRJ_CFG: Release
|
|
SCHANNEL: 'ON'
|
|
DEBUG: 'OFF'
|
|
CURLDEBUG: 'ON'
|
|
- job_name: 'CMake, VS2010, Debug, x64, OpenSSL 1.0.2 + Schannel, Shared, Build-tests & examples, XP'
|
|
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2013'
|
|
PRJ_GEN: 'Visual Studio 10 2010'
|
|
TARGET: '-A x64'
|
|
WINTARGET: 0x0501 # Windows XP
|
|
PRJ_CFG: Debug
|
|
OPENSSL: 'ON'
|
|
SCHANNEL: 'ON'
|
|
SHARED: 'ON'
|
|
EXAMPLES: 'ON'
|
|
- job_name: 'CMake, VS2012, Release, x86, OpenSSL 1.1.1 + Schannel, Shared, Build-tests'
|
|
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
|
|
PRJ_GEN: 'Visual Studio 11 2012'
|
|
TARGET: '-A Win32'
|
|
PRJ_CFG: Release
|
|
OPENSSL: 'ON'
|
|
SCHANNEL: 'ON'
|
|
SHARED: 'ON'
|
|
- job_name: 'CMake, VS2013, Debug, x64, OpenSSL 1.1.1, Shared, Build-only'
|
|
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
|
|
PRJ_GEN: 'Visual Studio 12 2013'
|
|
TARGET: '-A x64'
|
|
PRJ_CFG: Debug
|
|
OPENSSL: 'ON'
|
|
SHARED: 'ON'
|
|
TFLAGS: 'skipall'
|
|
- job_name: 'CMake, VS2015, Debug, x64, OpenSSL 1.1.1, Static, Build-only'
|
|
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
|
|
PRJ_GEN: 'Visual Studio 14 2015'
|
|
TARGET: '-A x64'
|
|
PRJ_CFG: Debug
|
|
OPENSSL: 'ON'
|
|
TFLAGS: 'skipall'
|
|
- job_name: 'CMake, VS2017, Debug, x64, OpenSSL 1.1.1, Shared, Build-only'
|
|
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
|
|
PRJ_GEN: 'Visual Studio 15 2017'
|
|
TARGET: '-A x64'
|
|
PRJ_CFG: Debug
|
|
OPENSSL: 'ON'
|
|
SHARED: 'ON'
|
|
TFLAGS: 'skipall'
|
|
- job_name: 'CMake, VS2019, Debug, x64, OpenSSL 1.1.0 + Schannel, Shared, Build-tests'
|
|
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2019'
|
|
PRJ_GEN: 'Visual Studio 16 2019'
|
|
TARGET: '-A x64'
|
|
PRJ_CFG: Debug
|
|
OPENSSL: 'ON'
|
|
SCHANNEL: 'ON'
|
|
SHARED: 'ON'
|
|
- job_name: 'CMake, VS2022, Debug, x64, Schannel, Static, Unicode, Build-tests & examples, clang-cl'
|
|
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022'
|
|
PRJ_GEN: 'Visual Studio 17 2022'
|
|
TARGET: '-A x64'
|
|
PRJ_CFG: Debug
|
|
SCHANNEL: 'ON'
|
|
ENABLE_UNICODE: 'ON'
|
|
EXAMPLES: 'ON'
|
|
TOOLSET: 'ClangCl'
|
|
- job_name: 'CMake, VS2022, Debug, x64, Schannel, Static, Unicode, Build-tests'
|
|
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022'
|
|
PRJ_GEN: 'Visual Studio 17 2022'
|
|
TARGET: '-A x64'
|
|
PRJ_CFG: Debug
|
|
SCHANNEL: 'ON'
|
|
ENABLE_UNICODE: 'ON'
|
|
- job_name: 'CMake, VS2022, Release, x64, Schannel, Shared, Unicode, DEBUGBUILD, no-CURLDEBUG, Build-tests'
|
|
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022'
|
|
PRJ_GEN: 'Visual Studio 17 2022'
|
|
TARGET: '-A x64'
|
|
PRJ_CFG: Release
|
|
SCHANNEL: 'ON'
|
|
ENABLE_UNICODE: 'ON'
|
|
SHARED: 'ON'
|
|
CURLDEBUG: 'OFF'
|
|
- job_name: 'CMake, VS2022, Debug, x64, no SSL, Static, Build-tests'
|
|
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022'
|
|
PRJ_GEN: 'Visual Studio 17 2022'
|
|
TARGET: '-A x64'
|
|
PRJ_CFG: Debug
|
|
- job_name: 'CMake, VS2022, Debug, x64, no SSL, Static, HTTP only, Build-tests'
|
|
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022'
|
|
PRJ_GEN: 'Visual Studio 17 2022'
|
|
TARGET: '-A x64'
|
|
PRJ_CFG: Debug
|
|
HTTP_ONLY: 'ON'
|
|
|
|
# winbuild-based builds
|
|
|
|
- job_name: 'winbuild, VS2015, Debug, x64, OpenSSL 1.1.1, Build-only'
|
|
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
|
|
BUILD_SYSTEM: winbuild_vs2015
|
|
DEBUG: 'yes'
|
|
PATHPART: debug
|
|
ENABLE_UNICODE: 'no'
|
|
- job_name: 'winbuild, VS2015, Release, x64, OpenSSL 1.1.1, Build-only'
|
|
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
|
|
BUILD_SYSTEM: winbuild_vs2015
|
|
DEBUG: 'no'
|
|
PATHPART: release
|
|
ENABLE_UNICODE: 'no'
|
|
- job_name: 'winbuild, VS2017, Debug, x64, OpenSSL 1.1.1, Build-only'
|
|
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
|
|
BUILD_SYSTEM: winbuild_vs2017
|
|
DEBUG: 'yes'
|
|
PATHPART: debug
|
|
ENABLE_UNICODE: 'no'
|
|
- job_name: 'winbuild, VS2017, Release, x64, OpenSSL 1.1.1, Build-only'
|
|
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
|
|
BUILD_SYSTEM: winbuild_vs2017
|
|
DEBUG: 'no'
|
|
PATHPART: release
|
|
ENABLE_UNICODE: 'no'
|
|
- job_name: 'winbuild, VS2015, Debug, x64, OpenSSL 1.1.1, Unicode, Build-only'
|
|
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
|
|
BUILD_SYSTEM: winbuild_vs2015
|
|
DEBUG: 'yes'
|
|
PATHPART: debug
|
|
ENABLE_UNICODE: 'yes'
|
|
- job_name: 'winbuild, VS2015, Release, x64, OpenSSL 1.1.1, Unicode, Build-only'
|
|
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
|
|
BUILD_SYSTEM: winbuild_vs2015
|
|
DEBUG: 'no'
|
|
PATHPART: release
|
|
ENABLE_UNICODE: 'yes'
|
|
- job_name: 'winbuild, VS2017, Debug, x64, OpenSSL 1.1.1, Unicode, Build-only'
|
|
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
|
|
BUILD_SYSTEM: winbuild_vs2017
|
|
DEBUG: 'yes'
|
|
PATHPART: debug
|
|
ENABLE_UNICODE: 'yes'
|
|
- job_name: 'winbuild, VS2017, Release, x64, OpenSSL 1.1.1, Unicode, Build-only'
|
|
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
|
|
BUILD_SYSTEM: winbuild_vs2017
|
|
DEBUG: 'no'
|
|
PATHPART: release
|
|
ENABLE_UNICODE: 'yes'
|
|
|
|
# generated VisualStudioSolution-based builds
|
|
|
|
- job_name: 'VisualStudioSolution, VS2013, Debug, x86, Schannel, Build-only'
|
|
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
|
|
BUILD_SYSTEM: VisualStudioSolution
|
|
PRJ_CFG: 'DLL Debug - DLL Windows SSPI - DLL WinIDN'
|
|
VC_VERSION: VC12
|
|
|
|
install:
|
|
- ps: $env:PATH = "C:/msys64/usr/bin;$env:PATH"
|
|
|
|
build_script:
|
|
- cmd: sh -c ./appveyor.sh
|
|
|
|
clone_depth: 10
|
|
|
|
# select branches to avoid testing feature branches twice (as branch and as pull request)
|
|
branches:
|
|
only:
|
|
- master
|
|
- /\/ci$/
|
|
|
|
skip_commits:
|
|
files:
|
|
- '.circleci/*'
|
|
- '.github/**/*'
|
|
- 'Dockerfile'
|
|
- 'packages/**/*'
|
|
- 'plan9/**/*'
|
|
|
|
#artifacts:
|
|
# - path: '**/curl.exe'
|
|
# name: curl
|
|
# - path: '**/*.dll'
|
|
# name: libcurl dll
|