Update GTest/GMock structure, apply some fixes - #2256
Conversation
vitaut
left a comment
There was a problem hiding this comment.
Thanks for the PR. In general looks good but let's use the directory structure generated by the fuse script (not introduce include directories) and use gtest instead of gmock as the top-level directory since the gmock component is way less important:
gtest/
gtest/gtest.h
gmock/gmock.h
gmock-gtest-all.cc
Maybe I should also rename CMake target then? |
Good idea. |
Sorry for breaking your message into pieces, but I just realized that |
|
On the other hand, maybe warnings (not errors, if no other |
Yeah, I think warnings are OK. |
…ck usages * all GTest/GMock files moved to `test/gtest` directory * `CMakeLists.txt` created in `test/gtest` from `CMakeLists.txt` in `test` * GTest/GMock target in CMake renamed to `gtest` (was `gmock`) * CMake `gtest` target updated to export includes as "gtest/gtest.h" or "gmock/gmock.h" only * includes in tests updated: "gtest.h" -> "gtest/gtest.h", "gmock.h" -> "gmock/gmock.h" * removed duplications of `target_include_directories` for GTest/GMock directories (CMake manages them)
…t formatting there
…perly
`std::is_pod<T>` was deprecated in C++20
original (pre `is_pod`) error on GCC 4.8:
```
/fmt/test/gtest/gtest.h: In static member function 'static constexpr bool testing::internal::MatcherBase<T>::IsInlined()':
/fmt/test/gtest/gtest.h:6512:12: error: 'is_trivially_copy_constructible' was not declared in this scope
std::is_trivially_copy_constructible<M>::value &&
^
/fmt/test/gtest/gtest.h:6512:45: error: expected primary-expression before '>' token
std::is_trivially_copy_constructible<M>::value &&
^
/fmt/test/gtest/gtest.h:6512:46: error: '::value' has not been declared
std::is_trivially_copy_constructible<M>::value &&
^
```
7f14bfb to
9e5072f
Compare
|
I updated this PR with a few additional updates like a fix for Also, there are 2 places I want to discuss: |
|
Awesome, thanks! |
|
Great, but what do you think about #2256 (comment)? 🙂 |
Both suggestions look reasonable to me. |
test/gtestdirectoryCMakeLists.txtcreated intest/gtestfromCMakeLists.txtintestgtest(wasgmock)gtesttarget updated to export includes as "gtest/gtest.h" or "gmock/gmock.h" onlytarget_include_directoriesfor GTest/GMock directories (CMake manages them).clang-formatfile added intotest/gtestdirectory to prevent formatting thereGTEST_LANG_CXX11compile definition setting removedstd::is_trivially_copy_constructiblefor GCC 4.8 & 4.9 fixed properly