ユーザ用ツール

サイト用ツール


opengl:visual_studio

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
opengl:visual_studio [2015/07/05 22:41] – [定義を共有する方法] ogaopengl:visual_studio [2021/12/18 17:58] (現在) – [動作の確認方法] oga
行 495: 行 495:
 ====== VisualStudio での利用 ====== ====== VisualStudio での利用 ======
  
 +VisualStudio で生成された Project File を編集して、自分で Property や Item の定義、Target の追加などを行うことができます。
 +例えば外部参照しているライブラリのパスなど、任意の Property を追加しておけば VisualStudio の設定画面で参照できます。
  
-===== 定義共有する =====+Custom Build に相当する Target 追加することもできます。 
 +Target の AfterTargets, BeforeTargets を使えば、VisualStudio に組み込まれた Build 手順の任意の場所に、好きな処理を挿入することが可能となります。
  
-VisualStudio の Project に、自分でカスタマイズしたパラメータ+ 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 +===== 定義共有する =====
  
  
 複数の Project で定義内容を共有するには Import を使います。 複数の Project で定義内容を共有するには Import を使います。
 +例えば下記のように build_def.props と build_def.targets を作成しておきます。
 +
 +<code xml>
 +<?xml version="1.0" encoding="utf-8"?>
 +<!-- build_def.props -->
 +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 +
 +  <PropertyGroup>
 +     ...
 +  </PropertyGroup>
 +
 +  <ItemGroup>
 +     ...
 +  </ItemGroup>
 +
 +</Project>
 +</code>
 +
 +<code xml>
 +<?xml version="1.0" encoding="utf-8"?>
 +<!-- build_def.targets -->
 +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 +
 +  <Target Name="">
 +    ...
 +  </Target>
 +
 +</Project>
 +</code>
 +
 +
 +VisualStudio の *.vcxproj ファイルの先頭と最後にそれぞれ Import で build_def.props , build_def.targets を挿入します。
 +2箇所に分けるのは、シンボル定義はできるだけ先頭で行い、それらの定義を参照して実行する Target の定義はできるだけ後方で行いたいからです。
 +
 +<code xml>
 +<?xml version="1.0" encoding="utf-8"?>
 +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 +
 +  <Import Project="build_def.props"/>
 +  ~
 +
 +  ~
 +  <Import Project="build_def.targets"/>
 +</Project>
 +</code>
 +
 +
 +
 +===== 実際の使用例 =====
 +
 +build_def.props の例。
 +自分独自のデフォルトの include path, lib path を設定しておくことができます。
 +VisualStudio の設定で @(MyIncludePath) や @(MyLibPath) を追加しておけば、build_def.props の編集だけで複数のプロジェクトにまたがる設定を変更することが可能。
 +また Compiler の CommandLine に $(MyCFlags) を追加しておけば、コンパイラオプションも一箇所で変更可能になります。
 +下記のように Release, Debug それぞれ異なる設定にすることも可能。
 +
 +  - Configuration Properties → <nowiki>C/C++</nowiki> → General → Additional Include Directories の最後に @(MyIncludePath) を追加
 +  - Configuration Properties → <nowiki>C/C++</nowiki> → Command Line → Additional Options に $(MyCFlags) を追加
 +  - Configuration Properties → Linker → General → Additional Library Directories に @(MyLibPath) を追加
 +
 +<code xml>
 +<?xml version="1.0" encoding="utf-8"?>
 +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 +
 +<ItemGroup>
 +  <MyIncludePath Include="" />
 +  <MyLibPath Include="" />
 +</ItemGroup>
 +
 +<PropertyGroup>
 +  <MyCFlags Condition="'$(Configuration)'=='Debug'"></MyCFlags>
 +  <MyCFlags Condition="'$(Configuration)'=='Release'">-fp:fast -arch:AVX2</MyCFlags>
 +</PropertyGroup>
 +
 +</Project>
 +</code>
 +
 +
 +
 +build_def.targets の例。
 +vcxproj ファイルと同じ場所に CustomPreBuild.bat または CustomPostBuild.bat が存在していれば Build の前後に実行します。
 +VisualStudio 上から設定する Custom Build との違いは、bat ファイルが存在していなければ何もしないことです。
 +無駄なシェルの起動などを回避できます。
 +
 +<code xml>
 +<?xml version="1.0" encoding="utf-8"?>
 +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 +
 +<Target Name="CustomPreBuild" Condition="Exists('$(MSBuildProjectDirectory)/CustomPreBuild.bat')" BeforeTargets="Build">
 +  <Exec Command="$(MSBuildProjectDirectory)/CustomPreBuild.bat" />
 +</Target>
 +
 +<Target Name="CustomPostBuild" Condition="Exists('$(MSBuildProjectDirectory)/CustomPostBuild.bat')" AfterTargets="Build">
 +  <Exec Command="$(MSBuildProjectDirectory)/CustomPostBuild.bat" />
 +</Target>
 +
 +</Project>
 +</code>
 +
  
  
行 514: 行 624:
     * default が Minimal なので好きな Level まで上げます。     * default が Minimal なので好きな Level まで上げます。
     * Message Task を利用したデバッグ出力だけなら Normal で十分です。     * Message Task を利用したデバッグ出力だけなら Normal で十分です。
-    * 条件判定などより詳しい情報が必要なら Detailed にします。+    * 条件判定の結果などより詳しい情報が必要なら Detailed にします。 
 + 
 + 
 + 
 +====== Command Line からの呼び出し ====== 
 + 
 +例 
 + 
 +<code> 
 +msbuild /property:OutputDir=..\..\..\Binaries\DotNET\  /target:build  AutomationTool.csproj 
 +</code>
  
  
  
  
opengl/visual_studio.1436103675.txt.gz · 最終更新: 2015/07/05 22:41 by oga

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki