2015-09-23 17:43:36 +02:00
cmake_minimum_required ( VERSION 2.8.7 )
2015-08-20 18:09:14 -07:00
2015-09-23 17:43:36 +02:00
project ( GSLTests CXX )
2015-08-20 18:09:14 -07:00
add_subdirectory ( unittest-cpp )
include_directories (
. . / i n c l u d e
. / u n i t t e s t - c p p
)
2015-11-20 16:03:00 -08:00
add_definitions ( -DGSL_THROW_ON_CONTRACT_VIOLATION )
2015-08-20 18:09:14 -07:00
2015-08-27 22:15:44 -07:00
if ( MSVC14 OR MSVC12 ) # has the support we need
# remove unnecessary warnings about unchecked iterators
add_definitions ( -D_SCL_SECURE_NO_WARNINGS )
2015-11-12 18:57:23 -08:00
add_compile_options ( /W4 )
2015-08-20 18:09:14 -07:00
else ( )
include ( CheckCXXCompilerFlag )
CHECK_CXX_COMPILER_FLAG ( "-std=c++14" COMPILER_SUPPORTS_CXX14 )
CHECK_CXX_COMPILER_FLAG ( "-std=c++11" COMPILER_SUPPORTS_CXX11 )
if ( COMPILER_SUPPORTS_CXX14 )
2015-11-12 19:36:34 -08:00
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Wall -Wno-missing-braces" )
2015-08-20 18:09:14 -07:00
elseif ( COMPILER_SUPPORTS_CXX11 )
2015-11-12 19:36:34 -08:00
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wno-missing-braces" )
2015-08-20 18:09:14 -07:00
else ( )
2015-09-23 17:43:36 +02:00
message ( STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler." )
2015-08-20 18:09:14 -07:00
endif ( )
endif ( )
2015-08-25 11:29:49 -07:00
if ( NOT EXISTS ${ CMAKE_CURRENT_SOURCE_DIR } /unittest-cpp )
2015-08-20 18:09:14 -07:00
message ( FATAL_ERROR "Could not find unittest-cpp enlistment. Please run 'git clone https://github.com/Microsoft/unittest-cpp.git unittest-cpp' in the tests directory" )
endif ( )
2015-09-21 16:04:06 -03:00
function ( add_gsl_test name )
2015-11-23 15:07:41 -08:00
add_executable ( ${ name } ${ name } .cpp ../include/gsl.h ../include/gsl_assert.h ../include/gsl_util.h ../include/span.h ../include/string_span.h )
2015-09-21 16:04:06 -03:00
target_link_libraries ( ${ name } UnitTest++ )
install ( TARGETS ${ name }
R U N T I M E D E S T I N A T I O N b i n
)
add_test (
2015-09-23 17:43:36 +02:00
$ { n a m e }
$ { n a m e }
2015-09-21 16:04:06 -03:00
)
endfunction ( )
2015-11-04 12:42:27 -08:00
add_gsl_test ( span_tests )
2015-11-24 12:49:03 -08:00
add_gsl_test ( strided_span_tests )
2015-11-04 12:42:27 -08:00
add_gsl_test ( string_span_tests )
2015-09-21 16:04:06 -03:00
add_gsl_test ( at_tests )
add_gsl_test ( bounds_tests )
add_gsl_test ( notnull_tests )
add_gsl_test ( assertion_tests )
add_gsl_test ( utils_tests )
add_gsl_test ( owner_tests )