Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GoogleTest should be included as ExternalProject #24

Open
hugolm84 opened this issue Feb 2, 2019 · 1 comment
Open

GoogleTest should be included as ExternalProject #24

hugolm84 opened this issue Feb 2, 2019 · 1 comment

Comments

@hugolm84
Copy link

hugolm84 commented Feb 2, 2019

Hi!

First off, thanks for providing and maintaining this library!

I noticed that GoogleTests is checked in as a part of the source and I'd like to suggest that CMake's ExternalProject feature could be used instead. It would allow cppfs to checkout and include it in the configure process. Additionally, this could become optional based on if find_package() cannot find an already installed GTest library on the host.
Please see GoogleTest readme for more information: Incorporating Into An Existing CMake Project (https://github.com/google/googletest/blob/4f4c01d8c86659f587ea0bc27c815ffa94fc9f72/googletest/README.md)

Main benefits include

  1. 3rd party code is not checked in
  2. cppfs no longer need to update GoogleTest them self.
  3. cppfs could easily point to specific git tag or branch of GoogleTest
  4. GoogleTests source is not included if OPTION_ for tests is ON
  5. If installed on host, Linking is easy as find_package(GTest WANTED_VERSION EXACT) and target_link_libraries with GTest::GTest and GTest::Main
  6. If GoogleTests is downloaded and added to the project like suggested, just call target_link_libraries with gtest and gtest_main

If this sounds reasonable I would be happy to help out by sending a PR or further instructions.

Best regards

@scheibel
Copy link
Member

scheibel commented Feb 6, 2019

Thanks for your interest in this project.
Within our cmake-init template, we currently examine alternative approaches to integrate googletest and googlemock. Our latest approach can be viewed in cginternals/cmake-init#97.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants