curl/tests/cmake/test.sh
Viktor Szakats fb70812437
cmake: add integration tests, run them in CI
Add CMake test project consuming curl via these methods:
`FetchContent`, `add_subdirectory()`, `find_package()`.

Also:
- GHA/distcheck: run these tests in CI.
- cmakelint: exclude a warning for calling "wonky-cased" built-in
  CMake functions, such as `FetchContent_Declare()`.

Closes #16126
2025-02-07 00:15:48 +01:00

40 lines
1.0 KiB
Bash
Executable File

#!/bin/sh
# Copyright (C) Viktor Szakats
#
# SPDX-License-Identifier: curl
set -eu
cd "$(dirname "$0")"
mode="${1:-all}"
if [ "${mode}" = 'all' ] || [ "${mode}" = 'FetchContent' ]; then
rm -rf bld-fetchcontent
cmake -B bld-fetchcontent \
-DTEST_INTEGRATION_MODE=FetchContent \
-DFROM_GIT_REPO="${PWD}/../.." \
-DFROM_GIT_TAG="$(git rev-parse HEAD)"
cmake --build bld-fetchcontent
fi
if [ "${mode}" = 'all' ] || [ "${mode}" = 'add_subdirectory' ]; then
rm -rf curl; ln -s ../.. curl
rm -rf bld-add_subdirectory
cmake -B bld-add_subdirectory \
-DTEST_INTEGRATION_MODE=add_subdirectory
cmake --build bld-add_subdirectory
fi
if [ "${mode}" = 'all' ] || [ "${mode}" = 'find_package' ]; then
rm -rf bld-curl
cmake ../.. -B bld-curl
cmake --build bld-curl
cmake --install bld-curl --prefix bld-curl/_pkg
rm -rf bld-find_package
cmake -B bld-find_package \
-DTEST_INTEGRATION_MODE=find_package \
-DCMAKE_PREFIX_PATH="${PWD}/bld-curl/_pkg/lib/cmake/CURL"
cmake --build bld-find_package
fi