質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.23%

CMakeでVisual Studioのビルド構成ごとに異なるプリプロセッサ定義を追加する方法が分かりません。

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 147

sumachu

score 18

CMakeLists.txtを用いて、Visual Studioのビルド構成ごとに異なるプリプロセッサ定義を追加したいです。例えば、ビルド構成がDebugの場合にはA=1というプリプロセッサ定義を、ビルド構成がReleaseの場合にはA=2というプリプロセッサ定義を追加することを考えています。target_compile_definitionsを使うことを考えましたが、ビルド構成の条件分岐の記述法を調べきれませんでした。target_compile_definitionsに限らず、解決方法がありましたら、ご教授いただければ幸いです。

下記にベースとなるhello.cppとCmakeLists.txtを記します。
Visual Studio 2019、CMake 3.17.2を用いて、cmake-guiで以下の設定でConfigure&Generateしました。
Where is the source code: C:/Users/user/Documents/CMake_practice
Where to build the binary: C:/Users/user/Documents/CMake_practice/build

// hello.cpp
#include <bits/stdc++.h>
using namespace std;

int main()
{
    cout << A << endl;
}
// CMakeLists.txt
project(my_target CXX)
add_executable(my_target hello.cpp)
target_compile_definitions(my_target
  PRIVATE A=1
  )


以下の指定方法だとVisual Studioのビルド構成であるDebugとRelease両方のプリプロセッサ定義にA=1が入ってしまいます。これを例えば、ビルド構成がDebugの場合にはA=1というプリプロセッサ定義を、ビルド構成がReleaseの場合にはA=2というプリプロセッサ定義を追加することは可能でしょうか?

target_compile_definitions(my_target
  PRIVATE A=1
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • y_waiwai

    2020/05/05 08:19

    現状ではどういうコードになっているのか提示しましょう

    キャンセル

  • SHOMI

    2020/05/05 17:21

    "CMake debug release"で検索するといくつも出てきますが、試されたのでしょうか。

    キャンセル

  • sumachu

    2020/05/05 17:32 編集

    すみません。まだ情報が足りてませんね。cmake-guiでConfigure&Generateした時点で、Visual Studioのビルド構成のDebugとReleaseにそれぞれ異なるAの値をプリプロセッサ定義に入れたいです。"CMake debug release"で検索するといくつも出てくるのはBUILD_TYPEを条件分岐させて、コマンド上で例えば、
    cmake .. -DCMAKE_BUILD_TYPE=Debug
    cmake .. -DCMAKE_BUILD_TYPE=Release
    などと指定する場合が多いかと思います。

    キャンセル

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.23%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる
  • トップ
  • C++に関する質問
  • CMakeでVisual Studioのビルド構成ごとに異なるプリプロセッサ定義を追加する方法が分かりません。