129 lines
5.6 KiB
CMake
129 lines
5.6 KiB
CMake
# ===-----------------------------------------------------------------------===#
|
|
# Distributed under the 3-Clause BSD License. See accompanying file LICENSE or
|
|
# copy at https://opensource.org/licenses/BSD-3-Clause).
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
# ===-----------------------------------------------------------------------===#
|
|
|
|
set(INT_TEST_CMAKE_FILES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
|
|
set(CRYPTOPP_CMAKE_INSTALL_ROOT
|
|
"${CMAKE_BINARY_DIR}/test-dirs/install")
|
|
define_property(TEST PROPERTY install_dir
|
|
BRIEF_DOCS "Install-dir of the test"
|
|
FULL_DOCS "Just set because not optional (yet)")
|
|
|
|
file(GLOB tests "${CMAKE_CURRENT_SOURCE_DIR}/int-install-*")
|
|
foreach(test ${tests})
|
|
cmake_path(GET test FILENAME test_name)
|
|
message(STATUS "Adding install integration test: ${test_name}")
|
|
string (REPLACE "int-" "" short_name cryptopp-${test_name})
|
|
|
|
# Configure
|
|
add_test(
|
|
NAME cryptopp-${test_name}-configure
|
|
COMMAND
|
|
${CMAKE_COMMAND}
|
|
-G${CMAKE_GENERATOR}
|
|
# Pass the locations for common cmake test files
|
|
-D "TEST_CMAKE_FILES_DIR=${TEST_CMAKE_FILES_DIR}"
|
|
-D "INT_TEST_CMAKE_FILES_DIR=${INT_TEST_CMAKE_FILES_DIR}"
|
|
# Pass the locations for common test source files
|
|
-D "TEST_EXAMPLE_SOURCES_DIR=${TEST_EXAMPLE_SOURCES_DIR}"
|
|
# Use ccache
|
|
-D "USE_CCACHE=TRUE"
|
|
# Override cmake compiler flags for ccache/MSVC
|
|
-D
|
|
"CMAKE_USER_MAKE_RULES_OVERRIDE=${TEST_CMAKE_FILES_DIR}/ResetInitialCompilerOptions.cmake"
|
|
# Set the install prefix
|
|
-D "CMAKE_INSTALL_PREFIX=${CRYPTOPP_CMAKE_INSTALL_ROOT}/${test_name}"
|
|
# Setup cmake source/build dirs
|
|
-S "${CMAKE_CURRENT_SOURCE_DIR}/${test_name}" -B
|
|
"${CMAKE_BINARY_DIR}/test-dirs/${test_name}"
|
|
# Use local source code for cryptopp-cmake
|
|
-D "CPM_cryptopp-cmake_SOURCE=${CMAKE_CURRENT_SOURCE_DIR}/../.."
|
|
# Enable verbose makefiles so we can see the full compile command line
|
|
-D "CMAKE_VERBOSE_MAKEFILE=ON"
|
|
# Throw the version in
|
|
-D CRYPTOPP_MINIMUM_CMAKE_VERSION=${CRYPTOPP_MINIMUM_CMAKE_VERSION}
|
|
# Set the build-type to what we are building
|
|
-D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE})
|
|
set_tests_properties(cryptopp-${test_name}-configure PROPERTIES
|
|
FIXTURES_SETUP ${test_name}-config
|
|
install_dir "${CRYPTOPP_CMAKE_INSTALL_ROOT}/${test_name}"
|
|
LABELS "cryptopp;cryptopp-integration-tests;${short_name}")
|
|
|
|
# Build
|
|
add_test(NAME cryptopp-${test_name}-build
|
|
COMMAND ${CMAKE_COMMAND} --build
|
|
"${CMAKE_BINARY_DIR}/test-dirs/${test_name}"
|
|
--config ${CMAKE_BUILD_TYPE})
|
|
set_tests_properties(cryptopp-${test_name}-build PROPERTIES
|
|
FIXTURES_SETUP ${test_name}-build
|
|
FIXTURES_REQUIRED ${test_name}-config
|
|
LABELS "cryptopp;cryptopp-integration-tests;${short_name}")
|
|
|
|
# Install
|
|
add_test(
|
|
NAME cryptopp-${test_name}-install
|
|
COMMAND ${CMAKE_COMMAND} --build
|
|
"${CMAKE_BINARY_DIR}/test-dirs/${test_name}" --target install
|
|
--config ${CMAKE_BUILD_TYPE})
|
|
set_tests_properties(cryptopp-${test_name}-install PROPERTIES
|
|
FIXTURES_SETUP ${test_name}-install
|
|
FIXTURES_REQUIRED ${test_name}-build
|
|
LABELS "cryptopp;cryptopp-integration-tests;${short_name}")
|
|
|
|
# Check installed files
|
|
add_test(
|
|
NAME cryptopp-${test_name}-checks
|
|
COMMAND ${CMAKE_COMMAND} --build
|
|
"${CMAKE_BINARY_DIR}/test-dirs/${test_name}" --target do-checks
|
|
--config ${CMAKE_BUILD_TYPE})
|
|
set_tests_properties(cryptopp-${test_name}-checks PROPERTIES
|
|
FIXTURES_REQUIRED ${test_name}-install
|
|
LABELS "cryptopp;cryptopp-integration-tests;${short_name}")
|
|
endforeach()
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Use cryptopp via find_package
|
|
# ------------------------------------------------------------------------------
|
|
|
|
set(test_name "int-find-package")
|
|
get_test_property(cryptopp-int-install-default-configure
|
|
install_dir CRYPTOPP_SEARCH_ROOT)
|
|
|
|
# Configure
|
|
add_test(
|
|
NAME cryptopp-${test_name}-configure
|
|
COMMAND
|
|
${CMAKE_COMMAND}
|
|
-G${CMAKE_GENERATOR}
|
|
# Pass the locations for common test source files
|
|
-D "TEST_EXAMPLE_SOURCES_DIR=${TEST_EXAMPLE_SOURCES_DIR}"
|
|
# Set the install prefix
|
|
-D "CRYPTOPP_CMAKE_INSTALL_ROOT=${CRYPTOPP_CMAKE_INSTALL_ROOT}"
|
|
# Setup cmake source/build dirs
|
|
-S "${CMAKE_CURRENT_SOURCE_DIR}/${test_name}" -B
|
|
"${CMAKE_BINARY_DIR}/test-dirs/${test_name}"
|
|
# Enable verbose makefiles so we can see the full compile command line
|
|
-D "CMAKE_VERBOSE_MAKEFILE=ON"
|
|
# Throw the version in
|
|
-D CRYPTOPP_MINIMUM_CMAKE_VERSION=${CRYPTOPP_MINIMUM_CMAKE_VERSION}
|
|
# Set the build-type to what we are building
|
|
-D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
|
# Tell the test where to find installed package
|
|
-D cryptopp_DIR=${CRYPTOPP_SEARCH_ROOT}/share/cmake/cryptopp)
|
|
|
|
set_tests_properties(cryptopp-${test_name}-configure PROPERTIES
|
|
FIXTURES_SETUP ${test_name}-config
|
|
FIXTURES_REQUIRED "int-install-default-install"
|
|
LABELS "cryptopp;cryptopp-find_package")
|
|
|
|
# Build
|
|
add_test(NAME cryptopp-${test_name}-build
|
|
COMMAND ${CMAKE_COMMAND} --build
|
|
"${CMAKE_BINARY_DIR}/test-dirs/${test_name}"
|
|
--config ${CMAKE_BUILD_TYPE})
|
|
set_tests_properties(cryptopp-${test_name}-build PROPERTIES
|
|
FIXTURES_REQUIRED ${test_name}-config
|
|
LABELS "cryptopp;cryptopp-find_package")
|