2015-08-20 21:09:14 -04:00
cmake_minimum_required ( VERSION 3.2.2 )
project ( GSLTests )
add_subdirectory ( unittest-cpp )
include_directories (
. . / i n c l u d e
. / u n i t t e s t - c p p
)
add_definitions ( -DSAFER_CPP_TESTING )
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-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 )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14" )
elseif ( COMPILER_SUPPORTS_CXX11 )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
else ( )
message ( STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler." )
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 )
add_executable ( ${ name } ${ name } .cpp )
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 (
N A M E $ { n a m e }
C O M M A N D $ { n a m e }
)
endfunction ( )
add_gsl_test ( array_view_tests )
add_gsl_test ( string_view_tests )
add_gsl_test ( at_tests )
add_gsl_test ( bounds_tests )
add_gsl_test ( maybenull_tests )
add_gsl_test ( notnull_tests )
add_gsl_test ( assertion_tests )
add_gsl_test ( utils_tests )
add_gsl_test ( owner_tests )