Enable sanitizers globally

オープン
#140 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
45/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
静か
技術スタック
cmake, cpp

調査の方向性

myproject_enable_sanitizers と、issue に示されている FetchContent_MakeAvailable 呼び出しから始め、sanitizer の設定が exampleProj と mbedtls にどのように到達するかを追跡します。無関係なビルド構成を変更せずに取得した依存関係を含める、プロジェクト全体のアプローチを決定します。sanitizer オプションがプロジェクトのターゲットと mbedtls の両方に適用されれば完了です。

索引モデルが issue の本文から書いたものです。

説明

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.

主要言語
CMake
スター
1.8k
フォーク
205
PR マージ指標
30日以内にマージされた PR はありません

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

  • Dockerfile・Docker Compose ファイルなし
  • プルリクエストのテンプレートなし
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

cpp-best-practices/cmake_template のほかの issue

cpp-best-practices/cmake_template の issue をすべて見る

似ている issue

Build System の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。