diff --git a/googletest/CMakeLists.txt b/googletest/CMakeLists.txt index 60556d66..a94e0815 100644 --- a/googletest/CMakeLists.txt +++ b/googletest/CMakeLists.txt @@ -205,6 +205,10 @@ if (gtest_build_tests) cxx_test(googletest-param-test-test gtest test/googletest-param-test2-test.cc) cxx_test(googletest-port-test gtest_main) + if (CYGWIN) + cxx_test(gtest_cygwin_strict_test gtest_main) + set_property(TARGET gtest_cygwin_strict_test PROPERTY CXX_EXTENSIONS OFF) + endif() cxx_test(gtest_pred_impl_unittest gtest_main) cxx_test(gtest_premature_exit_test gtest test/gtest_premature_exit_test.cc) diff --git a/googletest/include/gtest/internal/gtest-port.h b/googletest/include/gtest/internal/gtest-port.h index 154be3c1..56768a33 100644 --- a/googletest/include/gtest/internal/gtest-port.h +++ b/googletest/include/gtest/internal/gtest-port.h @@ -272,6 +272,10 @@ // GCC15 warns that is deprecated in C++17 and suggests using // instead, even though is not available in C++17 mode prior // to GCC9. +#if defined(__CYGWIN__) && defined(__STRICT_ANSI__) && !defined(_POSIX_C_SOURCE) +#define _POSIX_C_SOURCE 200809L +#endif + #if GTEST_INTERNAL_CPLUSPLUS_LANG >= 202002L || \ GTEST_INTERNAL_HAS_INCLUDE() #include // C++20 or support. diff --git a/googletest/test/gtest_cygwin_strict_test.cc b/googletest/test/gtest_cygwin_strict_test.cc new file mode 100644 index 00000000..84dff515 --- /dev/null +++ b/googletest/test/gtest_cygwin_strict_test.cc @@ -0,0 +1,3 @@ +#include "gtest/gtest.h" + +TEST(CygwinStrictStandardTest, PortHeaderCompiles) { SUCCEED(); }