> On Aug 15, 2019, at 3:22 PM, Christian Gruber <christian.gru...@posteo.de> 
> wrote:
> Am 15.08.19 um 00:23 schrieb Christian Gruber:
>>> I think our distro packagers would object to any option other than relying 
>>> on tools outside of the build system to provide the googletest sources and 
>>> maybe a prebuilt static lib. It's a one-off for the casual builder and 
>>> easily scripted for everyone else. Building gtest is also sufficiently 
>>> trivial that it's not all that interesting to call out to guests own 
>>> CMakeLists.txt instead of just building the two libraries in ours. OTOH 
>>> it's possible that might change at some point, so
>> Ok, so you want to keep build process as it is at the moment. In this case 
>> at least bug 797344 should be fixed. I'll provide a PR. And I recommend to 
>> use library target gtest directly instead of variables GTEST_LIB, 
>> GTEST_INCLUDE_DIR as stated above. The same I recommend for library target 
>> gmock. I'll add this to the same PR.
>> Finally I recommend to add a few more notes on the Wiki page 
>> https://wiki.gnucash.org/wiki/Google_Test. For me not familiar with the 
>> GnuCash build system it was not obvious at the beginning, that gtest is 
>> built inside GnuCash build system, because this is a little bit unusual. It 
>> could for instance be explained, how to build gtest and gmock from inside 
>> GnuCash build system via "make gtest" and "make gmock" and that this way one 
>> can test the correct CMake configuration for GnuCash regarding variables 
>> GTEST_ROOT and GMOCK_ROOT. The Wiki page only explains how to "test the 
>> installation" from inside the GoogleTest build system and tells that this is 
>> "not used in practice". But this doesn't really test the CMake configuration 
>> for GnuCash.
>>> I don't think anyone's actually tried doing a mock with GMock yet. There 
>>> are hand-rolled ones in the QOF tests, but they use the old Glib test 
>>> facility. Most of the C++ work so far has been at the lowest levels so that 
>>> the C++ classes don't have any mockable dependencies. That will change when 
>>> we get to redoing the engine as we'll want to use mock for at least the 
>>> backend. We don't want to remove GMock from the dependencies.
>>> I agree about libgtest_main.a. Would you like to make a PR to remove all of 
>>> the inclusion of gtest_main.cc and GTEST_SRC?
>> I opened PR https://github.com/Gnucash/gnucash/pull/552.
>>> Regards,
>>> John Ralls
>> Regards,
>> Christian
> I just realized now, after PR https://github.com/Gnucash/gnucash/pull/552 
> failed to build, that there is a significant difference between using 
> prebuilt GoogleTest libraries and building GoogleTest from source repository. 
> In the latter case libgtest_main.a doesn't exist at all, it isn't built 
> anywhere. And GTEST_LIB contains only libgtest.a in this case. Therefore I 
> created a new pull request https://github.com/Gnucash/gnucash/pull/555, which 
> removes GTEST_SRC and additionally adds source file gtest_main.cc to the 
> sources of libgtest.a. I also thought about creating a second target 
> gtest_main for building libgtest_main.a as in GoogleTest source repository, 
> but in the end I thought that's exaggerated, because both libraries are 
> always used in combination in GnuCash.

That's fine, and I've merged your PR.

John Ralls

gnucash-devel mailing list

Reply via email to