質問編集履歴
1
質問内容のベースとなるhello.cppとCmakeLists.txtを追記しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -1 +1,57 @@
|
|
1
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
|
+
|
4
|
+
|
5
|
+
下記にベースとなるhello.cppとCmakeLists.txtを記します。
|
6
|
+
|
7
|
+
Visual Studio 2019、CMake 3.17.2を用いて、cmake-guiで以下の設定でConfigure&Generateしました。
|
8
|
+
|
9
|
+
Where is the source code: C:/Users/user/Documents/CMake_practice
|
10
|
+
|
11
|
+
Where to build the binary: C:/Users/user/Documents/CMake_practice/build
|
12
|
+
|
13
|
+
```C++
|
14
|
+
|
15
|
+
// hello.cpp
|
16
|
+
|
17
|
+
#include <bits/stdc++.h>
|
18
|
+
|
19
|
+
using namespace std;
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
int main()
|
24
|
+
|
25
|
+
{
|
26
|
+
|
27
|
+
cout << A << endl;
|
28
|
+
|
29
|
+
}
|
30
|
+
|
31
|
+
```
|
32
|
+
|
33
|
+
```ここに言語を入力
|
34
|
+
|
35
|
+
// CMakeLists.txt
|
36
|
+
|
37
|
+
project(my_target CXX)
|
38
|
+
|
39
|
+
add_executable(my_target hello.cpp)
|
40
|
+
|
41
|
+
target_compile_definitions(my_target
|
42
|
+
|
43
|
+
PRIVATE A=1
|
44
|
+
|
45
|
+
)
|
46
|
+
|
47
|
+
```
|
48
|
+
|
49
|
+
以下の指定方法だとVisual Studioのビルド構成であるDebugとRelease両方のプリプロセッサ定義にA=1が入ってしまいます。これを例えば、ビルド構成がDebugの場合にはA=1というプリプロセッサ定義を、ビルド構成がReleaseの場合にはA=2というプリプロセッサ定義を追加することは可能でしょうか?
|
50
|
+
|
51
|
+
```ここに言語を入力
|
52
|
+
|
53
|
+
target_compile_definitions(my_target
|
54
|
+
|
55
|
+
PRIVATE A=1
|
56
|
+
|
57
|
+
```
|