CI: Test consuming the exported CMake configs.
This commit is contained in:
parent
a89cd65980
commit
3139173568
85
.github/workflows/cmake_config.yml
vendored
Normal file
85
.github/workflows/cmake_config.yml
vendored
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
name: cmake_config
|
||||||
|
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
cmake-check:
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: bash
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: [windows-latest, macos-latest, ubuntu-latest]
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
continue-on-error: false
|
||||||
|
name: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- name: Setup Windows dependencies
|
||||||
|
if: runner.os == 'Windows'
|
||||||
|
uses: msys2/setup-msys2@v2
|
||||||
|
with:
|
||||||
|
update: true
|
||||||
|
install: >-
|
||||||
|
autoconf
|
||||||
|
automake
|
||||||
|
diffutils
|
||||||
|
libtool
|
||||||
|
gcc
|
||||||
|
git
|
||||||
|
patch
|
||||||
|
perl
|
||||||
|
|
||||||
|
- name: Setup macOS dependencies
|
||||||
|
if: runner.os == 'macOS'
|
||||||
|
run: brew install automake
|
||||||
|
|
||||||
|
- uses: actions/checkout@main
|
||||||
|
|
||||||
|
- name: Prepare source tree for build (Windows)
|
||||||
|
if: runner.os == 'Windows'
|
||||||
|
run: ./autogen.sh
|
||||||
|
shell: msys2 {0}
|
||||||
|
|
||||||
|
- name: Prepare source tree for build (Unix)
|
||||||
|
if: runner.os != 'Windows'
|
||||||
|
run: ./autogen.sh
|
||||||
|
|
||||||
|
- name: Configure
|
||||||
|
run: |
|
||||||
|
cmake -S . \
|
||||||
|
-B build \
|
||||||
|
-D CMAKE_BUILD_TYPE=Release \
|
||||||
|
-D CMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/../local
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: cmake --build build --config Release --verbose
|
||||||
|
|
||||||
|
- name: Install
|
||||||
|
run: cmake --install build --config Release
|
||||||
|
|
||||||
|
- name: Consume from the build directory - Configure
|
||||||
|
run: |
|
||||||
|
cmake -S tests/cmake \
|
||||||
|
-B consumer-build \
|
||||||
|
-D CMAKE_BUILD_TYPE=Release \
|
||||||
|
-D LibreSSL_DIR=$GITHUB_WORKSPACE/build
|
||||||
|
- name: Consume from the build directory - Build
|
||||||
|
run: cmake --build consumer-build --config Release --verbose
|
||||||
|
|
||||||
|
- name: Consume from the install directory (CMAKE_PREFIX_PATH) - Configure
|
||||||
|
run: |
|
||||||
|
cmake -S tests/cmake \
|
||||||
|
-B consumer-install-prefix \
|
||||||
|
-D CMAKE_BUILD_TYPE=Release \
|
||||||
|
-D CMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/../local
|
||||||
|
- name: Consume from the install directory (CMAKE_PREFIX_PATH) - Build
|
||||||
|
run: cmake --build consumer-install-prefix --config Release --verbose
|
||||||
|
|
||||||
|
- name: Consume from the install directory (LibreSSL_DIR) - Configure
|
||||||
|
run: |
|
||||||
|
cmake -S tests/cmake \
|
||||||
|
-B consumer-install-dir \
|
||||||
|
-D CMAKE_BUILD_TYPE=Release \
|
||||||
|
-D LibreSSL_DIR=$GITHUB_WORKSPACE/../local/lib/cmake/LibreSSL
|
||||||
|
- name: Consume from the install directory (LibreSSL_DIR) - Build
|
||||||
|
run: cmake --build consumer-install-dir --config Release --verbose
|
37
tests/cmake/CMakeLists.txt
Normal file
37
tests/cmake/CMakeLists.txt
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.5)
|
||||||
|
|
||||||
|
project(LibreSSL_Consumer LANGUAGES C)
|
||||||
|
|
||||||
|
find_package(
|
||||||
|
LibreSSL
|
||||||
|
CONFIG
|
||||||
|
REQUIRED
|
||||||
|
COMPONENTS Crypto SSL TLS
|
||||||
|
)
|
||||||
|
|
||||||
|
set(RESULTS_TO_CHECK
|
||||||
|
"LIBRESSL_VERSION"
|
||||||
|
"LIBRESSL_FOUND"
|
||||||
|
"LIBRESSL_INCLUDE_DIR"
|
||||||
|
"LIBRESSL_LIBRARIES"
|
||||||
|
"LIBRESSL_CRYPTO_LIBRARY"
|
||||||
|
"LIBRESSL_SSL_LIBRARY"
|
||||||
|
"LIBRESSL_TLS_LIBRARY"
|
||||||
|
)
|
||||||
|
|
||||||
|
foreach(RESULT_VAR IN LISTS RESULTS_TO_CHECK)
|
||||||
|
if(${RESULT_VAR})
|
||||||
|
message(STATUS "${RESULT_VAR}: ${${RESULT_VAR}}")
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "${RESULT_VAR} was not set by the package.")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
add_executable(crypto crypto.c)
|
||||||
|
target_link_libraries(crypto PRIVATE LibreSSL::Crypto)
|
||||||
|
|
||||||
|
add_executable(ssl ssl.c)
|
||||||
|
target_link_libraries(ssl PRIVATE LibreSSL::SSL)
|
||||||
|
|
||||||
|
add_executable(tls tls.c)
|
||||||
|
target_link_libraries(tls PRIVATE LibreSSL::TLS)
|
7
tests/cmake/crypto.c
Normal file
7
tests/cmake/crypto.c
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#include <openssl/crypto.h>
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
OPENSSL_init_crypto(0, NULL);
|
||||||
|
OPENSSL_cleanup();
|
||||||
|
return 0;
|
||||||
|
}
|
6
tests/cmake/ssl.c
Normal file
6
tests/cmake/ssl.c
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#include <openssl/ssl.h>
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
SSL_library_init();
|
||||||
|
return 0;
|
||||||
|
}
|
6
tests/cmake/tls.c
Normal file
6
tests/cmake/tls.c
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#include <tls.h>
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
tls_init();
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user