Appveyor updates + boost testing fixes

-Fixes appveyor CI and adds additional MSVC versions
-Puts boost variant test building behind boost requirement
This commit is contained in:
Shane Grant
2019-05-07 22:27:17 -07:00
parent 319ce5f5ee
commit d16feb9de8
7 changed files with 64 additions and 4 deletions

View File

@@ -59,6 +59,10 @@ endif()
include_directories(./include)
if(NOT CMAKE_VERSION VERSION_LESS 3.12)
cmake_policy(VERSION 3.12)
endif()
# Boost serialization for performance sandbox
find_package(Boost COMPONENTS serialization)

View File

@@ -13,9 +13,18 @@ configuration:
environment:
matrix:
- VS_VERSION_MAJOR: 12
- VS_VERSION_MAJOR: 14
BOOST_ROOT: C:\Libraries\boost_1_59_0
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
VS_VERSION_MAJOR: 12
BOOST_ROOT: C:\Libraries\boost_1_58_0
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
VS_VERSION_MAJOR: 14
BOOST_ROOT: C:\Libraries\boost_1_60_0
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
VS_VERSION_MAJOR: 15
BOOST_ROOT: C:\Libraries\boost_1_66_0
# - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 Preview
# VS_VERSION_MAJOR: 16
# BOOST_ROOT: C:\Libraries\boost_1_66_0
platform:
- Win32

View File

@@ -10,6 +10,7 @@ if not defined APPVEYOR (
if not defined BOOST_ROOT (
set BOOST_ROOT=C:\Libraries\boost
)
if not defined VS_VERSION_MAJOR (
set VS_VERSION_MAJOR=14
)
@@ -18,6 +19,10 @@ if not defined VS_VERSION_YEAR (
set VS_VERSION_YEAR=2013
) else if "%VS_VERSION_MAJOR%" == "14" (
set VS_VERSION_YEAR=2015
) else if "%VS_VERSION_MAJOR%" == "15" (
set VS_VERSION_YEAR=2017
) else if "%VS_VERSION_MAJOR%" == "16" (
set VS_VERSION_YEAR=2019
) else (
@echo Cannot use Visual Studio version %VS_VERSION_MAJOR%
exit /b 1

View File

@@ -91,6 +91,10 @@ if(CMAKE_CXX_STANDARD GREATER 14)
add_subdirectory(cpp17)
endif()
if(Boost_FOUND)
add_subdirectory(boost)
endif()
if(NOT CMAKE_VERSION VERSION_LESS 3.0)
add_test(test_cmake_config_module ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake-config-module.cmake)
endif()

View File

@@ -0,0 +1,38 @@
file(GLOB TESTS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp)
# Build all of the non-special tests
foreach(TEST_SOURCE ${TESTS})
message(STATUS ${TEST_SOURCE})
string(REPLACE ".cpp" "" TEST_TARGET "${TEST_SOURCE}")
set(TEST_TARGET "test_${TEST_TARGET}")
add_executable(${TEST_TARGET} ${TEST_SOURCE})
target_link_libraries(${TEST_TARGET} ${CEREAL_THREAD_LIBS})
add_test("${TEST_TARGET}" "${TEST_TARGET}")
# If we are on a 64-bit machine, create an extra 32-bit version of the test if portability testing is enabled
if((NOT MSVC) AND (${CMAKE_SIZEOF_VOID_P} EQUAL 8) AND (NOT SKIP_PORTABILITY_TEST))
add_executable(${TEST_TARGET}_32 ${TEST_SOURCE})
set_target_properties(${TEST_TARGET}_32 PROPERTIES
COMPILE_FLAGS "-m32" LINK_FLAGS "-m32")
add_test("${TEST_TARGET}_32" "${TEST_TARGET}_32")
endif()
endforeach()
if(NOT MSVC)
# add tests to coverage
foreach(TEST_SOURCE ${TESTS})
string(REPLACE ".cpp" "" COVERAGE_TARGET "${TEST_SOURCE}")
set(COVERAGE_TARGET "coverage_${COVERAGE_TARGET}")
add_dependencies(coverage ${COVERAGE_TARGET})
add_executable(${COVERAGE_TARGET} EXCLUDE_FROM_ALL ${TEST_SOURCE})
set_target_properties(${COVERAGE_TARGET} PROPERTIES COMPILE_FLAGS "-coverage")
set_target_properties(${COVERAGE_TARGET} PROPERTIES LINK_FLAGS "-coverage")
set_target_properties(${COVERAGE_TARGET} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/coverage")
target_link_libraries(${COVERAGE_TARGET} ${CEREAL_THREAD_LIBS})
endforeach()
endif(NOT MSVC)

View File

@@ -27,7 +27,7 @@
#ifndef CEREAL_TEST_BOOST_VARIANT_H_
#define CEREAL_TEST_BOOST_VARIANT_H_
#include "common.hpp"
#include "../common.hpp"
#include <cereal/types/boost_variant.hpp>
template <class IArchive, class OArchive> inline