cginternals / cginternals/cppfs
GoogleTest should be included as ExternalProject
- Lenguaje dominante
- C++
- Estrellas
- 514
- Forks
- 73
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
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
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
Empieza por la configuración de CMake que actualmente incluye el código fuente de GoogleTest incluido en el repositorio y compárala con ExternalProject de CMake y la guía de GoogleTest “Incorporating Into An Existing CMake Project”. Se considera terminado cuando un GTest instalado puede encontrarse con find_package; de lo contrario, GoogleTest se descarga según sea necesario y los destinos de prueba existentes se enlazan mediante los destinos de GTest correspondientes.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- cmake, cpp
- Área
- build-system, testing-qa
- Tipo de issue
- Refactorización
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100