diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 22b9a4d..cf7237e 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -3,6 +3,15 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/") set(PARSE_CATCH_TESTS_ADD_TO_CONFIGURE_DEPENDS ON) include(ParseAndAddCatchTests) +function(SetTestCompileOptions target_name) + target_compile_options(${target_name} PRIVATE + $<$:-s DISABLE_EXCEPTION_CATCHING=0> + $<$,$>:-Wall -Wextra -Wshadow -Wconversion -Wsign-conversion -Wpedantic -Werror -Wno-deprecated-declarations> + $<$:-Wall -Wextra -Wshadow -Wconversion -Wsign-conversion -Wpedantic -Wno-psabi -Werror -Wno-deprecated-declarations> + $<$:/WX /wd4996> + $<$:-Wa,-mbig-obj>) +endfunction() + if(GHC_COVERAGE) message("Generating test runner for coverage run...") set(CMAKE_EXE_LINKER_FLAGS "${CMCMAKE_EXE_LINKER_FLAGS} --coverage") @@ -29,12 +38,7 @@ else() if(${CMAKE_SYSTEM_NAME} MATCHES "(SunOS|Solaris)") target_link_libraries(filesystem_test xnet) endif() - target_compile_options(filesystem_test PRIVATE - $<$:-s DISABLE_EXCEPTION_CATCHING=0> - $<$,$>:-Wall -Wextra -Wshadow -Wconversion -Wsign-conversion -Wpedantic -Werror> - $<$:-Wall -Wextra -Wshadow -Wconversion -Wsign-conversion -Wpedantic -Wno-psabi -Werror> - $<$:/WX> - $<$:-Wa,-mbig-obj>) + SetTestCompileOptions(filesystem_test) if(CMAKE_CXX_COMPILER_ID MATCHES MSVC) target_compile_definitions(filesystem_test PRIVATE _CRT_SECURE_NO_WARNINGS WIN32_LEAN_AND_MEAN NOMINMAX) endif() @@ -48,10 +52,7 @@ else() if(WIN32) add_executable(filesystem_test_char filesystem_test.cpp catch.hpp) target_link_libraries(filesystem_test_char ghc_filesystem) - target_compile_options(filesystem_test_char PRIVATE - $<$:-Wall -Wextra -Werror> - $<$:-Wall -Werror> - $<$:/WX>) + SetTestCompileOptions(filesystem_test_char) if(CMAKE_CXX_COMPILER_ID MATCHES MSVC) target_compile_definitions(filesystem_test_char PRIVATE _CRT_SECURE_NO_WARNINGS GHC_WIN_DISABLE_WSTRING_STORAGE_TYPE) else() @@ -76,12 +77,7 @@ target_link_libraries(fwd_impl_test ghc_filesystem) if(${CMAKE_SYSTEM_NAME} MATCHES "(SunOS|Solaris)") target_link_libraries(fwd_impl_test xnet) endif() -target_compile_options(fwd_impl_test PRIVATE - $<$:-s DISABLE_EXCEPTION_CATCHING=0> - $<$,$>:-Wall -Wextra -Wshadow -Wconversion -Wsign-conversion -Wpedantic -Werror> - $<$:-Wall -Wextra -Wshadow -Wconversion -Wsign-conversion -Wpedantic -Wno-psabi -Werror> - $<$:/WX> - $<$:-Wa,-mbig-obj>) +SetTestCompileOptions(fwd_impl_test) if(CMAKE_CXX_COMPILER_ID MATCHES MSVC) target_compile_definitions(fwd_impl_test PRIVATE _CRT_SECURE_NO_WARNINGS WIN32_LEAN_AND_MEAN NOMINMAX) endif() @@ -92,9 +88,4 @@ if(NOT MSVC) target_compile_options(exception PRIVATE -fno-exceptions) endif() target_include_directories(exception PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../include) -target_compile_options(exception PRIVATE - $<$:-s DISABLE_EXCEPTION_CATCHING=0> - $<$,$>:-Wall -Wextra -Wshadow -Wconversion -Wsign-conversion -Wpedantic -Werror> - $<$:-Wall -Wextra -Wshadow -Wconversion -Wsign-conversion -Wpedantic -Wno-psabi -Werror> - $<$:/WX> - $<$:-Wa,-mbig-obj>) +SetTestCompileOptions(exception)