-
Notifications
You must be signed in to change notification settings - Fork 167
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PlatformToolset 指定をプロパティーシートに分離して VS2017 および VS2019 で両対応できるようにする #866
Changes from all commits
e2bb79a
29d18c6
ec014c9
8ee4d57
e4e1a91
11c1798
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,6 +14,7 @@ | |
- [Build Requirements](#build-requirements) | ||
- [Visual Studio Community 2017](#visual-studio-community-2017) | ||
- [Visual Studio Install options required](#visual-studio-install-options-required) | ||
- [Visual Studio Community 2019 に関しては対応を検討中です。](#visual-studio-community-2019-に関しては対応を検討中です) | ||
- [How to build](#how-to-build) | ||
- [詳細情報](#詳細情報) | ||
- [PR(Pull Request) を簡単にローカルに取得する方法](#prpull-request-を簡単にローカルに取得する方法) | ||
|
@@ -50,7 +51,10 @@ https://github.com/sakura-editor/sakura/wiki | |
|
||
## Build Requirements | ||
### Visual Studio Community 2017 | ||
- [Visual Studio Community 2017](https://www.visualstudio.com/downloads/) | ||
|
||
現状では Visual Studio Community 2017 を使用しています。 | ||
|
||
- [Visual Studio Community 2017](https://visualstudio.microsoft.com/vs/older-downloads/) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. メモ:リンクは最新版(=vs2019)に置き換わってるのでついでに対応が必要。 |
||
|
||
#### Visual Studio Install options required | ||
- Windows SDK | ||
|
@@ -60,6 +64,13 @@ https://github.com/sakura-editor/sakura/wiki | |
|
||
More information: https://github.com/sakura-editor/sakura/issues/6 | ||
|
||
### Visual Studio Community 2019 に関しては対応を検討中です。 | ||
|
||
- [Visual Studio Community 2019](https://www.visualstudio.com/downloads/) | ||
|
||
Visual Studio 2017/2019 の両対応に関しては #866 で対処済みです。 | ||
[仕組みに関してはこちらを参照](vcx-props/project-PlatformToolset.md) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ちなみにこの PR 上でこちらのリンクをクリックすると not found になるのは master を見に行くからです。 |
||
|
||
## How to build | ||
|
||
- [7Zip](https://sevenzip.osdn.jp/) のインストールして 7z.exe へのパスを通します。 | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
# Visual Studio の 各バージョンの PlatformToolset に関して | ||
beru marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
<!-- TOC --> | ||
|
||
- [Visual Studio の 各バージョンの PlatformToolset に関して](#visual-studio-の-各バージョンの-platformtoolset-に関して) | ||
- [PlatformToolset の対応関係](#platformtoolset-の対応関係) | ||
- [異なる Visual Studio のバージョンで開いたときの動作](#異なる-visual-studio-のバージョンで開いたときの動作) | ||
- [解決策](#解決策) | ||
- [参考情報](#参考情報) | ||
- [コマンドラインで PlatformToolset の設定を上書きする方法](#コマンドラインで-platformtoolset-の設定を上書きする方法) | ||
- [PlatformToolset の指定に関する参考リンク](#platformtoolset-の指定に関する参考リンク) | ||
|
||
<!-- /TOC --> | ||
|
||
## PlatformToolset の対応関係 | ||
|
||
Visual Studio の各バージョンごとにデフォルトの PlatformToolset (コンパイルエンジンのバージョン)があります。 | ||
|
||
|Visual Studio のバージョン|PlatformToolset| | ||
|--|--| | ||
|Visual Studio 2017|v141| | ||
|Visaul Studio 2019|v142| | ||
|
||
## 異なる Visual Studio のバージョンで開いたときの動作 | ||
|
||
Visual Studio 2017 で作成したソリューション/プロジェクトを Visual Studio 2019 で開くと Visaul Studio 2019 の標準の v142 に変換するか | ||
確認するダイアログが出ます。一度ソリューションを開くとユーザーの選択がローカルに保存されるので同じソリューションを再度開いても再度確認される | ||
ことはありません。 | ||
|
||
しかしながら別のフォルダにソースコードを clone した場合などには再度ユーザーに確認するダイアログが出るので煩雑です。 | ||
|
||
## 解決策 | ||
|
||
1. `PlatformToolset` の設定を[外部のファイル](vcxcompat.props) にまとめます | ||
2. そのファイルでは、 `Condition` の指定で開かれた Visaul Studio のバージョンによって、 `デフォルトで 使用する PlatformToolset` を指定します。 | ||
3. 各プロジェクトファイルで上記ファイルを [Import Project](https://docs.microsoft.com/ja-jp/visualstudio/msbuild/import-element-msbuild?view=vs-2019) でインクルードします。 | ||
|
||
### 参考情報 | ||
|
||
https://qiita.com/yumetodo/items/a8324efaf83c9c08d168 | ||
|
||
|
||
## コマンドラインで PlatformToolset の設定を上書きする方法 | ||
|
||
上記方法によって、デフォルトで使用する `PlatformToolset` を変更しますが、 | ||
`/p:PlatformToolset=v141` あるいは `/p:PlatformToolset=v142` のようなパラメータを `msbuild.exe` の引数に | ||
追加してやれば、デフォルトの設定を上書きして好きな `PlatformToolset` でコンパイルすることができます。 | ||
|
||
### PlatformToolset の指定に関する参考リンク | ||
|
||
https://docs.microsoft.com/en-us/cpp/build/reference/msbuild-visual-cpp-overview?view=vs-2019#platformtoolset-property |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||
<PropertyGroup Label="Configuration" Condition="'$(VisualStudioVersion)' == '15.0'"> | ||
<PlatformToolset>v141</PlatformToolset> | ||
</PropertyGroup> | ||
<PropertyGroup Label="Configuration" Condition="'$(VisualStudioVersion)' == '16.0'"> | ||
<PlatformToolset>v142</PlatformToolset> | ||
</PropertyGroup> | ||
</Project> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
メモ:このままにしとくとvs2019だけをインストールしたマシンで そんなtoolsetねーよ! と怒られます。また、vs2017とvs2019の両方が入ったマシンでは、vs2019でビルドしてもvs2017のC++コンパイラが使われます。