teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

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

2020/05/05 08:06

投稿

sumachu
sumachu

スコア22

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