• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2018-2020 Peter Dimov
2# Distributed under the Boost Software License, Version 1.0.
3# See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
4
5include(BoostTest OPTIONAL RESULT_VARIABLE HAVE_BOOST_TEST)
6
7if(NOT HAVE_BOOST_TEST)
8  return()
9endif()
10
11macro(system_run s1)
12
13  string(MAKE_C_IDENTIFIER ${s1} n1)
14
15  boost_test(SOURCES ${s1} ${ARGN})
16  boost_test(SOURCES ${s1} ${ARGN} COMPILE_DEFINITIONS BOOST_NO_ANSI_APIS NAME ${n1}_no_ansi)
17  boost_test(SOURCES ${s1} ${ARGN} COMPILE_DEFINITIONS BOOST_SYSTEM_USE_UTF8 NAME ${n1}_utf8)
18
19endmacro()
20
21macro(lib name macro)
22
23  add_library(${name} EXCLUDE_FROM_ALL ${ARGN})
24  target_compile_definitions(${name} PRIVATE $<$<BOOL:BUILD_SHARED_LIBS>:${macro}=1>)
25  target_link_libraries(${name} PRIVATE Boost::system Boost::config)
26
27endmacro()
28
29set(BOOST_TEST_LINK_LIBRARIES Boost::system Boost::core Boost::static_assert)
30
31boost_test(SOURCES quick.cpp)
32
33system_run(error_code_test.cpp)
34system_run(error_code_user_test.cpp)
35system_run(system_error_test.cpp)
36
37lib(boost_system_throw_test THROW_DYN_LINK throw_test.cpp)
38boost_test(SOURCES dynamic_link_test.cpp LINK_LIBRARIES boost_system_throw_test)
39
40system_run(initialization_test.cpp)
41system_run(header_only_test.cpp)
42
43boost_test(SOURCES config_test.cpp)
44
45system_run(std_interop_test.cpp)
46system_run(std_mismatch_test.cpp)
47
48lib(boost_system_single_instance_lib1 SINGLE_INSTANCE_DYN_LINK single_instance_1.cpp)
49lib(boost_system_single_instance_lib2 SINGLE_INSTANCE_DYN_LINK single_instance_2.cpp)
50
51system_run(single_instance_test.cpp single_instance_1.cpp single_instance_2.cpp)
52boost_test(SOURCES single_instance_test.cpp NAME single_instance_test_lib LINK_LIBRARIES boost_system_single_instance_lib1 boost_system_single_instance_lib2)
53
54system_run(before_main_test.cpp)
55system_run(constexpr_test.cpp)
56system_run(win32_hresult_test.cpp)
57
58system_run(error_category_test.cpp)
59system_run(generic_category_test.cpp)
60system_run(system_category_test.cpp)
61system_run(after_main_test.cpp)
62system_run(failed_test.cpp)
63system_run(failed_constexpr_test.cpp)
64
65boost_test(SOURCES warnings_test.cpp COMPILE_OPTIONS -Wall -Werror)
66
67lib(boost_system_std_single_instance_lib1 STD_SINGLE_INSTANCE_DYN_LINK std_single_instance_1.cpp)
68lib(boost_system_std_single_instance_lib2 STD_SINGLE_INSTANCE_DYN_LINK std_single_instance_2.cpp)
69
70system_run(std_single_instance_test.cpp std_single_instance_1.cpp std_single_instance_2.cpp)
71boost_test(SOURCES std_single_instance_test.cpp NAME std_single_instance_test_lib LINK_LIBRARIES boost_system_std_single_instance_lib1 boost_system_std_single_instance_lib2)
72