]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/test/build/CMakeLists.txt
update sources to v12.2.3
[ceph.git] / ceph / src / boost / libs / test / build / CMakeLists.txt
1 # Copyright 2014, Raffi Enficiaud
2
3 # Use, modification, and distribution are subject to the
4 # Boost Software License, Version 1.0. (See accompanying file
5 # LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 #
7 # See http://www.boost.org/libs/test for the library home page.
8
9 cmake_minimum_required(VERSION 2.8.11)
10 project(BoostTest)
11
12 set_property(GLOBAL PROPERTY USE_FOLDERS ON)
13 set(CMAKE_MACOSX_RPATH ON)
14
15 add_definitions(-DBOOST_TEST_NO_LIB)
16
17 # build type, by default to release (with optimisations)
18 if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
19 message(STATUS "Setting build type to 'Release' as none was specified.")
20 set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE)
21 # Set the possible values of build type for cmake-gui
22 set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
23 endif()
24
25 if(NOT WITHOUT_TESTS)
26 # ctest sets BUILD_TESTING automatically, but does not seem to serve its purpose.
27 include(CTest)
28 enable_testing()
29 endif()
30
31
32 include(CheckCXXCompilerFlag)
33 include(CheckIncludeFileCXX)
34
35 if(NOT MSVC)
36 # c++11 options
37 check_cxx_compiler_flag(-std=c++11 HAS_CXX11_FLAG)
38 check_cxx_compiler_flag(-std=c++0x HAS_CXX0X_FLAG)
39 if(HAS_CXX11_FLAG)
40 message(STATUS "Compiling with C++11 support")
41 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
42 elseif(HAS_CXX0X_FLAG)
43 #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
44 endif()
45 endif()
46
47 if(MSVC)
48 add_definitions(-D_SCL_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS)
49 set(MSVC_Additional_flags "/fp:fast /GF /Oy /GT /Ox /Ob2 /Oi /Os")
50 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${MSVC_Additional_flags}")
51 endif()
52
53
54
55
56
57 # global path
58 set(BOOST_TEST_ROOT_DIR ${BoostTest_SOURCE_DIR}/..)
59 set(BOOST_ROOT_DIR ${BOOST_TEST_ROOT_DIR}/../..)
60 get_filename_component(BOOST_TEST_ROOT_DIR_ABS ${BoostTest_SOURCE_DIR}/.. ABSOLUTE)
61 get_filename_component(BOOST_ROOT_DIR_ABS ${BOOST_ROOT_DIR} ABSOLUTE)
62
63 # global include on boost
64 include_directories(${BOOST_ROOT_DIR_ABS}/)
65
66 # include globs
67 file(GLOB_RECURSE
68 BOOST_UTF_HEADERS
69 ${BOOST_TEST_ROOT_DIR}/include/*.hpp
70 ${BOOST_TEST_ROOT_DIR}/include/*.ipp)
71
72 # organize files
73 foreach(_h IN LISTS BOOST_UTF_HEADERS)
74 get_filename_component(_hh ${_h} ABSOLUTE)
75 file(RELATIVE_PATH _v ${BOOST_TEST_ROOT_DIR_ABS}/include/boost/test ${_hh})
76 get_filename_component(_v "${_v}" DIRECTORY)
77 string(REPLACE "/" "\\" _v "${_v}")
78 source_group(${_v} FILES ${_h})
79 endforeach()
80
81 set(BOOST_UTF_SRC
82 ${BOOST_TEST_ROOT_DIR}/src/compiler_log_formatter.cpp
83
84 ${BOOST_TEST_ROOT_DIR}/src/debug.cpp
85 ${BOOST_TEST_ROOT_DIR}/src/decorator.cpp
86 ${BOOST_TEST_ROOT_DIR}/src/execution_monitor.cpp
87 ${BOOST_TEST_ROOT_DIR}/src/framework.cpp
88 ${BOOST_TEST_ROOT_DIR}/src/junit_log_formatter.cpp
89 ${BOOST_TEST_ROOT_DIR}/src/plain_report_formatter.cpp
90 ${BOOST_TEST_ROOT_DIR}/src/progress_monitor.cpp
91 ${BOOST_TEST_ROOT_DIR}/src/results_collector.cpp
92 ${BOOST_TEST_ROOT_DIR}/src/results_reporter.cpp
93 ${BOOST_TEST_ROOT_DIR}/src/test_framework_init_observer.cpp
94 ${BOOST_TEST_ROOT_DIR}/src/test_tools.cpp
95 ${BOOST_TEST_ROOT_DIR}/src/test_tree.cpp
96 ${BOOST_TEST_ROOT_DIR}/src/unit_test_log.cpp
97 ${BOOST_TEST_ROOT_DIR}/src/unit_test_main.cpp
98 ${BOOST_TEST_ROOT_DIR}/src/unit_test_monitor.cpp
99 ${BOOST_TEST_ROOT_DIR}/src/unit_test_parameters.cpp
100 ${BOOST_TEST_ROOT_DIR}/src/xml_log_formatter.cpp
101 ${BOOST_TEST_ROOT_DIR}/src/xml_report_formatter.cpp
102 )
103
104 add_library(boost_test_framework
105 STATIC
106 ${BOOST_UTF_HEADERS}
107 ${BOOST_UTF_SRC})
108 target_compile_definitions(boost_test_framework PUBLIC "-DBOOST_TEST_DYN_LINK=0")
109 target_include_directories(boost_test_framework PUBLIC ${BOOST_TEST_ROOT_DIR}/include/)
110 set_target_properties(boost_test_framework PROPERTIES FOLDER "UTF")
111
112
113 ####
114 # Documentation files (files only, no target)
115 file(GLOB_RECURSE
116 BOOST_UTF_DOC_FILES
117 ${BOOST_TEST_ROOT_DIR}/doc/*.qbk)
118 add_custom_target(
119 quickbook
120 SOURCES ${BOOST_UTF_DOC_FILES})
121 set_property(TARGET quickbook PROPERTY FOLDER "Documentation/")
122
123
124 ####
125 # Unit tests
126
127 # documentation tests
128 file(GLOB_RECURSE
129 BOOST_UTF_DOC_EXAMPLES
130 ${BOOST_TEST_ROOT_DIR}/doc/examples/*.cpp)
131
132 foreach(_h IN LISTS BOOST_UTF_DOC_EXAMPLES)
133 get_filename_component(_hh ${_h} NAME_WE)
134 add_executable(doc-${_hh} ${_h} ${BOOST_TEST_ROOT_DIR}/doc/examples/${_hh}.output)
135 target_include_directories(doc-${_hh} PUBLIC ${BOOST_TEST_ROOT_DIR}/include/)
136 set_target_properties(doc-${_hh} PROPERTIES FOLDER "Doc examples")
137
138 add_test(NAME doc-${_hh}-test
139 COMMAND doc-${_hh})
140 get_filename_component(_ext ${_h} EXT)
141 string(FIND ${_ext} "fail" _index_fail)
142 if(${_index_fail} GREATER -1)
143 message(STATUS "test ${_hh}.${_ext} = ${_index_fail}")
144 set_tests_properties(doc-${_hh}-test PROPERTIES WILL_FAIL TRUE)
145 endif()
146 endforeach()
147
148
149 # unit tests folder
150 set(BOOST_TEST_UNITTESTS_FOLDER ${BOOST_TEST_ROOT_DIR}/test)
151
152 # datasets
153 file(GLOB
154 BOOST_TEST_UNITTESTS_DATASET
155 ${BOOST_TEST_UNITTESTS_FOLDER}/test-organization-ts/datasets-test/*.cpp
156 ${BOOST_TEST_UNITTESTS_FOLDER}/test-organization-ts/datasets-test/*.hpp)
157 add_executable(boost_test_datasets ${BOOST_TEST_UNITTESTS_DATASET})
158 target_include_directories(boost_test_datasets PUBLIC ${BOOST_TEST_ROOT_DIR}/include/)
159 target_link_libraries(boost_test_datasets boost_test_framework)
160 target_compile_definitions(boost_test_datasets PUBLIC "BOOST_TEST_DYN_LINK=1")
161 set_target_properties(boost_test_datasets PROPERTIES FOLDER "Unit tests")
162 add_test(NAME bt-unittest-dataset
163 COMMAND boost_test_datasets)
164
165
166 ####
167 # TS writing-test-ts
168
169 set(BOOST_UTF_TESTS_IND_FILES
170 writing-test-ts
171 execution_monitor-ts
172 framework-ts
173 usage-variants-ts
174 utils-ts
175 test-organization-ts
176 smoke-ts
177 )
178
179
180 foreach(_ts IN LISTS BOOST_UTF_TESTS_IND_FILES)
181
182 message("parsing test suite ${_ts}")
183 file(GLOB
184 _boost_utf_current_tsuite
185 ${BOOST_TEST_UNITTESTS_FOLDER}/${_ts}/*.cpp)
186
187
188 foreach(_h IN LISTS _boost_utf_current_tsuite)
189 get_filename_component(_hh ${_h} ABSOLUTE)
190 get_filename_component(_name ${_h} NAME_WE)
191 file(RELATIVE_PATH _v ${BOOST_TEST_UNITTESTS_FOLDER} ${_hh})
192 #get_filename_component(_v "${_v}" DIRECTORY)
193 message("adding ${_ts}/${_name}")
194 add_executable(${_name} ${_hh})
195 target_link_libraries(${_name} PRIVATE boost_test_framework)
196 set_target_properties(${_name} PROPERTIES FOLDER "Unit tests/${_ts}")
197 add_test(NAME bt-unittest-${_name}
198 COMMAND ${_name})
199 endforeach()
200
201 unset(_boost_utf_current_tsuite)
202
203 endforeach() # test suite