質問編集履歴
1
質問内容のベースとなるhello.cppとCmakeLists.txtを追記しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,1 +1,29 @@
|
|
1
|
-
CMakeLists.txtを用いて、Visual Studioのビルド構成ごとに異なるプリプロセッサ定義を追加したいです。例えば、ビルド構成がDebugの場合にはA=1というプリプロセッサ定義を、ビルド構成がReleaseの場合にはA=2というプリプロセッサ定義を追加することを考えています。[target_compile_definitions](https://cmake.org/cmake/help/latest/command/target_compile_definitions.html)を使うことを考えましたが、ビルド構成の条件分岐の記述法を調べきれませんでした。target_compile_definitionsに限らず、解決方法がありましたら、ご教授いただければ幸いです。
|
1
|
+
CMakeLists.txtを用いて、Visual Studioのビルド構成ごとに異なるプリプロセッサ定義を追加したいです。例えば、ビルド構成がDebugの場合にはA=1というプリプロセッサ定義を、ビルド構成がReleaseの場合にはA=2というプリプロセッサ定義を追加することを考えています。[target_compile_definitions](https://cmake.org/cmake/help/latest/command/target_compile_definitions.html)を使うことを考えましたが、ビルド構成の条件分岐の記述法を調べきれませんでした。target_compile_definitionsに限らず、解決方法がありましたら、ご教授いただければ幸いです。
|
2
|
+
|
3
|
+
下記にベースとなるhello.cppとCmakeLists.txtを記します。
|
4
|
+
Visual Studio 2019、CMake 3.17.2を用いて、cmake-guiで以下の設定でConfigure&Generateしました。
|
5
|
+
Where is the source code: C:/Users/user/Documents/CMake_practice
|
6
|
+
Where to build the binary: C:/Users/user/Documents/CMake_practice/build
|
7
|
+
```C++
|
8
|
+
// hello.cpp
|
9
|
+
#include <bits/stdc++.h>
|
10
|
+
using namespace std;
|
11
|
+
|
12
|
+
int main()
|
13
|
+
{
|
14
|
+
cout << A << endl;
|
15
|
+
}
|
16
|
+
```
|
17
|
+
```ここに言語を入力
|
18
|
+
// CMakeLists.txt
|
19
|
+
project(my_target CXX)
|
20
|
+
add_executable(my_target hello.cpp)
|
21
|
+
target_compile_definitions(my_target
|
22
|
+
PRIVATE A=1
|
23
|
+
)
|
24
|
+
```
|
25
|
+
以下の指定方法だとVisual Studioのビルド構成であるDebugとRelease両方のプリプロセッサ定義にA=1が入ってしまいます。これを例えば、ビルド構成がDebugの場合にはA=1というプリプロセッサ定義を、ビルド構成がReleaseの場合にはA=2というプリプロセッサ定義を追加することは可能でしょうか?
|
26
|
+
```ここに言語を入力
|
27
|
+
target_compile_definitions(my_target
|
28
|
+
PRIVATE A=1
|
29
|
+
```
|