2015-09-23 11:43:36 -04:00
cmake_minimum_required ( VERSION 2.8.7 )
2015-08-20 21:09:14 -04:00
2015-09-23 11:43:36 -04:00
project ( GSLTests CXX )
2015-08-20 21:09:14 -04: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 19:03:00 -05:00
add_definitions ( -DGSL_THROW_ON_CONTRACT_VIOLATION )
2015-08-20 21:09:14 -04:00
2015-08-28 01:15:44 -04: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 21:57:23 -05:00
add_compile_options ( /W4 )
2015-08-20 21:09:14 -04: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 22:36:34 -05:00
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Wall -Wno-missing-braces" )
2015-08-20 21:09:14 -04:00
elseif ( COMPILER_SUPPORTS_CXX11 )
2015-11-12 22:36:34 -05:00
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wno-missing-braces" )
2015-08-20 21:09:14 -04:00
else ( )
2015-09-23 11:43:36 -04:00
message ( STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler." )
2015-08-20 21:09:14 -04:00
endif ( )
endif ( )
2015-08-25 14:29:49 -04:00
if ( NOT EXISTS ${ CMAKE_CURRENT_SOURCE_DIR } /unittest-cpp )
2015-08-20 21:09:14 -04: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 15:04:06 -04:00
function ( add_gsl_test name )
2015-11-23 18:07:41 -05: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 15:04:06 -04: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 11:43:36 -04:00
$ { n a m e }
$ { n a m e }
2015-09-21 15:04:06 -04:00
)
endfunction ( )
2015-11-04 15:42:27 -05:00
add_gsl_test ( span_tests )
add_gsl_test ( string_span_tests )
2015-09-21 15:04:06 -04: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 )