curl/.github/workflows
Viktor Szakats 1199308dbc
cmake: support building static and shared libcurl in one go
This patch adds the ability to build a static and shared libcurl library
in a single build session. It also adds an option to select which one to
use when building the curl executable.

New build options:
- `BUILD_STATIC_LIBS`. Default: `OFF`.
  Enabled automatically if `BUILD_SHARED_LIBS` is `OFF`.
- `BUILD_STATIC_CURL`. Default: `OFF`.
  Requires `BUILD_STATIC_LIBS` enabled.
  Enabled automatically if building static libcurl only.
- `STATIC_LIB_SUFFIX`. Default: empty.
- `IMPORT_LIB_SUFFIX`. Default: `_imp` if implib filename would collide
  with static lib name (typically with MSVC) in Windows builds.
  Otherwise empty.

Also:

- Stop setting the `CURL_STATICLIB` macro via `curl_config.h`, and pass
  it directly to the compiler. This also allows to delete a condition
  from `tests/server/CMakeLists.txt`.

- Complete a TODO by following the logic used in autotools (also for
  `LIBCURL_NO_SHARED`), and set `-DCURL_STATICLIB` in `Cflags:` of
  `libcurl.pc` for _static-only_ curl builds.

- Convert an existing CI test to build both shared and static libcurl.

Closes #11505
2023-07-29 00:40:01 +00:00
..
appveyor-status.yml copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
awslc.yml CI/awslc: add cache for build awslc library 2023-07-28 23:13:13 +02:00
codeql-analysis.yml CI: skip some more builds when possible 2023-03-24 19:59:50 -07:00
fuzz.yml CI: don't run CI jobs if only another CI was changed 2023-04-24 20:46:09 -07:00
hacktoberfest-accepted.yml GHA: Hacktoberfest CI: Update deprecated 'set-output' command 2023-01-05 10:12:57 +01:00
label.yml CI: Work around a labeler bug that removes labels 2023-01-28 19:48:02 -08:00
linkcheck.yml copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
linux.yml GHA/linux.yml: add caching 2023-07-28 23:10:41 +02:00
macos.yml cmake: support building static and shared libcurl in one go 2023-07-29 00:40:01 +00:00
ngtcp2-linux.yml http2: fix in h2 proxy tunnel: progress in ingress on sending 2023-07-27 17:00:38 +02:00
proselint.yml copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
quiche-linux.yml CI: quiche updates 2023-07-27 17:47:09 +02:00
reuse.yml copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
spellcheck.yml GHA: minor improvements to spellcheck 2023-03-09 00:16:04 +01:00
torture.yml CI: enable parallel make in more builds 2023-06-24 14:40:39 -07:00
wolfssl.yml CI: use wolfSSL 5.6.3 in builds 2023-07-11 20:07:22 +02:00