opengl:visual_studio
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
opengl:visual_studio [2015/07/05 22:20] – [条件付き実行] oga | opengl:visual_studio [2015/07/05 23:17] – [定義を共有する] oga | ||
---|---|---|---|
行 89: | 行 89: | ||
Makefile で同様の定義をしてみましょう。 | Makefile で同様の定義をしてみましょう。 | ||
- | < | + | < |
# Makefile | # Makefile | ||
COPY_FILE=$(COPY_SRC)/ | COPY_FILE=$(COPY_SRC)/ | ||
行 102: | 行 102: | ||
下記の例では COPY_FILE に " | 下記の例では COPY_FILE に " | ||
- | < | + | < |
# Makefile | # Makefile | ||
COPY_SRC=C:/ | COPY_SRC=C:/ | ||
行 186: | 行 186: | ||
下記の .PHONY 宣言がそれに相当します。 | 下記の .PHONY 宣言がそれに相当します。 | ||
- | < | + | < |
# Makefile | # Makefile | ||
.PHONY: all | .PHONY: all | ||
行 209: | 行 209: | ||
Build 手順の各行は Tab で始まっている必要があります。 | Build 手順の各行は Tab で始まっている必要があります。 | ||
- | < | + | < |
# Makefile | # Makefile | ||
.PHONY: copy | .PHONY: copy | ||
行 251: | 行 251: | ||
.PHONY 宣言された Target は、常にファイルが存在していないものとみなします。 | .PHONY 宣言された Target は、常にファイルが存在していないものとみなします。 | ||
- | < | + | < |
# Makefile | # Makefile | ||
行 263: | 行 263: | ||
- | < | + | < |
# Makefile | # Makefile | ||
.PHONY: all | .PHONY: all | ||
行 338: | 行 338: | ||
Makefile はパターンマッチングで複数の Target の列挙ができます。 | Makefile はパターンマッチングで複数の Target の列挙ができます。 | ||
- | < | + | < |
# Makefile (gmake 系) | # Makefile (gmake 系) | ||
FILE_LIST=A.bak B.bak C.bak | FILE_LIST=A.bak B.bak C.bak | ||
行 350: | 行 350: | ||
nmake は若干書式が違います。 | nmake は若干書式が違います。 | ||
- | < | + | < |
# Makefile (nmake) | # Makefile (nmake) | ||
FILE_LIST=A.bak B.bak C.bak | FILE_LIST=A.bak B.bak C.bak | ||
行 433: | 行 433: | ||
Makefile では foreach に相当します。 | Makefile では foreach に相当します。 | ||
- | < | + | < |
$(foreach file, | $(foreach file, | ||
</ | </ | ||
行 465: | 行 465: | ||
</ | </ | ||
+ | 下記は $(LinkFilepath) Property が定義されていない場合にデフォルト値の設定を行います。 | ||
+ | 他の場所ですでに定義されている場合は何もしません。 | ||
+ | <code xml> | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | Makefile にそのまま翻訳するなら下記の通り。(または ifndef を使う) | ||
+ | |||
+ | <code make> | ||
+ | ifeq ($(LINK_FILE_PATH), | ||
+ | LINK_FILE_PATH=lib/ | ||
+ | endif | ||
+ | </ | ||
+ | |||
+ | ただし Makefile にはもっと便利な書き方があるので、実際には下記の 1 行で済みます。 | ||
+ | |||
+ | <code make> | ||
+ | LINK_FILE_PATH? | ||
+ | </ | ||
行 475: | 行 495: | ||
====== VisualStudio での利用 ====== | ====== VisualStudio での利用 ====== | ||
+ | VisualStudio で生成された Project File を編集して、自分で Property や Item の定義、Target の追加などを行うことができます。 | ||
+ | 例えば外部参照しているライブラリのパスなど、任意の Property を追加しておけば VisualStudio の設定画面で参照できます。 | ||
+ | |||
+ | Custom Build に相当する Target を追加することもできます。 | ||
+ | Target の AfterTargets, | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== 定義を共有する ===== | ||
- | ===== 定義を共有する方法 ===== | ||
複数の Project で定義内容を共有するには Import を使います。 | 複数の Project で定義内容を共有するには Import を使います。 | ||
+ | 例えば下記のように build_def.props と build_def.targets を作成しておきます。 | ||
+ | |||
+ | <code xml> | ||
+ | <?xml version=" | ||
+ | <!-- build_def.props --> | ||
+ | <Project xmlns=" | ||
+ | |||
+ | < | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <code xml> | ||
+ | <?xml version=" | ||
+ | <!-- build_def.targets --> | ||
+ | <Project xmlns=" | ||
+ | |||
+ | <Target Name=""> | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | VisualStudio の *.vcxproj ファイルの先頭と最後にそれぞれ Import で build_def.props , build_def.targets を挿入します。 | ||
+ | 2箇所に分けるのは、シンボル定義はできるだけ先頭で行い、それらの定義を参照して実行する Target の定義はできるだけ後方で行いたいからです。 | ||
+ | |||
+ | <code xml> | ||
+ | <?xml version=" | ||
+ | <Project DefaultTargets=" | ||
+ | |||
+ | <Import Project=" | ||
+ | ~ | ||
+ | |||
+ | ~ | ||
+ | <Import Project=" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== 実際の使用例 ===== | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
行 491: | 行 580: | ||
* default が Minimal なので好きな Level まで上げます。 | * default が Minimal なので好きな Level まで上げます。 | ||
* Message Task を利用したデバッグ出力だけなら Normal で十分です。 | * Message Task を利用したデバッグ出力だけなら Normal で十分です。 | ||
- | * 条件判定などより詳しい情報が必要なら Detailed にします。 | + | * 条件判定の結果などより詳しい情報が必要なら Detailed にします。 |
opengl/visual_studio.txt · 最終更新: 2021/12/18 17:58 by oga