Enable sanitizers globally

Abierto
#140 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
45/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
cmake, cpp

Línea de trabajo

Comienza en myproject_enable_sanitizers y en la llamada a FetchContent_MakeAvailable mostrada en el issue; después, sigue cómo llegan las configuraciones de los sanitizers a exampleProj y mbedtls. Determina un enfoque para todo el proyecto que incluya la dependencia descargada sin cambiar configuraciones de compilación no relacionadas; se considera terminado cuando las opciones de los sanitizers se aplican tanto al destino del proyecto como a mbedtls.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

My project adds 3rd party dependencies via FetchContent_Declare:

FetchContent_Declare(
  mbedtls
  GIT_REPOSITORY https://github.com/Mbed-TLS/mbedtls
  GIT_TAG v3.6.5)
FetchContent_MakeAvailable(mbedtls)

add_library(exampleProj main.cpp)
target_link_libraries(exampleProj PUBLIC mbedtls)

add_library(exampleProj_sanitizers INTERFACE)
myproject_enable_sanitizers(exampleProj_sanitizers ON ON ON OFF OFF)
target_link_libraries(exampleProj PUBLIC exampleProj_sanitizers)

As you can see, myproject_enable_sanitizers only allows me to enable sanitizers for my own code, not for 3rd-party dependencies.
I don't think this is entirely correct. Sanitizers should be used for all code.

Lenguaje dominante
CMake
Estrellas
1.8k
Forks
205
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

  • Sin Dockerfile ni archivo de Docker Compose
  • Sin plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de cpp-best-practices/cmake_template

Todos los issues de cpp-best-practices/cmake_template

Issues similares

Más issues de Build System

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.