cginternals / cginternals/cppfs

GoogleTest should be included as ExternalProject

Abierto
#24 1 comentario 0 reacciones 0 asignados Ver en GitHub
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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.