質問編集履歴

1

質問内容のベースとなるhello.cppとCmakeLists.txtを追記しました。

2020/05/05 08:06

投稿

sumachu
sumachu

スコア22

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
+ ```