mirror of
https://github.com/curl/curl.git
synced 2026-08-26 08:13:32 +03:00
cmake: separate target for examples, optimize CI, fix fallouts
- Move `docs/examples` builds under a separate target.
- Make `BUILD_EXAMPLES` default to `ON`. It means to generate the rules
for `docs/examples` by default, but not build them. To build them,
an explicit `make curl-examples` (or ninja, etc) command is necessary.
This syncs behaviour with autotools, and also how both cmake and
autotools are building tests.
- GHA: update cmake jobs to use the new way of building examples.
- GHA: move examples build step at the end of the job, after building
and running tests. This allows to have build and test run results
faster, and leave the seldom-changing examples build to the end.
Building examples is the slowest build step with no practical way to
make them fast.
- appveyor: enable building examples in two old-MSVC jobs.
- examples: fix examples to build cleanly with old MSVC versions.
- GHA/non-native: move example build log under a GHA foldable section.
- GHA/windows: move building examples into separate step for Linux cross
jobs.
Follow-up to dfdd978f7c #13491
Closes #14906
This commit is contained in:
parent
caefaecaad
commit
45202cbba4
13 changed files with 116 additions and 53 deletions
20
.github/workflows/non-native.yml
vendored
20
.github/workflows/non-native.yml
vendored
|
|
@ -58,7 +58,6 @@ jobs:
|
|||
-DCMAKE_UNITY_BUILD=ON \
|
||||
-DCURL_WERROR=ON \
|
||||
-DENABLE_DEBUG=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG= \
|
||||
-DBUILD_EXAMPLES=ON \
|
||||
-DENABLE_WEBSOCKETS=ON \
|
||||
-DCURL_USE_OPENSSL=ON \
|
||||
-DCURL_BROTLI=ON -DCURL_USE_GSSAPI=ON \
|
||||
|
|
@ -70,6 +69,9 @@ jobs:
|
|||
export TFLAGS='-j0' # flakies: ~389 ~392 ~TFTP and more
|
||||
cmake --build bld --config Debug --target test-ci
|
||||
fi
|
||||
echo '::group::build examples'
|
||||
cmake --build bld --config Debug --parallel 3 --target curl-examples
|
||||
echo '::endgroup::'
|
||||
|
||||
openbsd:
|
||||
name: 'OpenBSD (cmake, libressl, clang)'
|
||||
|
|
@ -93,7 +95,6 @@ jobs:
|
|||
-DCMAKE_UNITY_BUILD=ON \
|
||||
-DCURL_WERROR=ON \
|
||||
-DENABLE_DEBUG=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG= \
|
||||
-DBUILD_EXAMPLES=ON \
|
||||
-DENABLE_WEBSOCKETS=ON \
|
||||
-DCURL_USE_OPENSSL=ON \
|
||||
-DCURL_BROTLI=ON \
|
||||
|
|
@ -105,6 +106,9 @@ jobs:
|
|||
export TFLAGS='-j8 ~3017 ~TFTP ~FTP' # FIXME: TFTP requests executed twice? Related: `curl: (69) TFTP: Access Violation`?
|
||||
cmake --build bld --config Debug --target test-ci
|
||||
fi
|
||||
echo '::group::build examples'
|
||||
cmake --build bld --config Debug --parallel 3 --target curl-examples
|
||||
echo '::endgroup::'
|
||||
|
||||
freebsd:
|
||||
name: 'FreeBSD (${{ matrix.build }}, openssl, ${{ matrix.compiler }}, ${{ matrix.arch }})'
|
||||
|
|
@ -140,11 +144,13 @@ jobs:
|
|||
--disable-dependency-tracking || { tail -n 1000 config.log; false; }
|
||||
make -j3 install
|
||||
src/curl --disable --version
|
||||
make -j3 examples
|
||||
if [ '${{ matrix.arch }}' = 'x86_64' ]; then # Slow on emulated CPU
|
||||
make -j3 -C tests
|
||||
make test-ci V=1 TFLAGS='-j8 ~FTP'
|
||||
fi
|
||||
echo '::group::build examples'
|
||||
make -j3 examples
|
||||
echo '::endgroup::'
|
||||
|
||||
- name: 'cmake'
|
||||
if: ${{ matrix.build == 'cmake' }}
|
||||
|
|
@ -162,7 +168,6 @@ jobs:
|
|||
-DCMAKE_UNITY_BUILD=ON \
|
||||
-DCURL_WERROR=ON \
|
||||
-DENABLE_DEBUG=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG= \
|
||||
-DBUILD_EXAMPLES=ON \
|
||||
-DENABLE_WEBSOCKETS=ON \
|
||||
-DCURL_USE_OPENSSL=ON \
|
||||
-DCURL_BROTLI=ON -DCURL_USE_GSSAPI=ON \
|
||||
|
|
@ -174,6 +179,9 @@ jobs:
|
|||
export TFLAGS='-j8 ~FTP'
|
||||
cmake --build bld --config Debug --target test-ci
|
||||
fi
|
||||
echo '::group::build examples'
|
||||
cmake --build bld --config Debug --parallel 3 --target curl-examples
|
||||
echo '::endgroup::'
|
||||
|
||||
omnios:
|
||||
name: 'OmniOS (autotools, openssl, gcc, amd64)'
|
||||
|
|
@ -197,6 +205,8 @@ jobs:
|
|||
--disable-dependency-tracking || { tail -n 1000 config.log; false; }
|
||||
gmake -j3 install
|
||||
src/curl --disable --version
|
||||
gmake -j3 examples
|
||||
gmake -j3 -C tests
|
||||
gmake test-ci V=1 TFLAGS='-j12 ~MQTT ~FTP'
|
||||
echo '::group::build examples'
|
||||
gmake -j3 examples
|
||||
echo '::endgroup::'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue