-
Notifications
You must be signed in to change notification settings - Fork 165
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
vs2017ソリューションにテストを組み込みたい #793
Comments
実験してみました? 他で使ってないかと思って検索したら以下の情報がありました。 visual studio のバージョンが違うので状況が改善されてるといいのですが。 |
「なんか動いてるっぽい」のレベルで良ければ、既にクリアしています。 個人的には、NuGet.exe(5MB)をソースツリー配下に含めている点と、 ソースツリーに5MBもの大きなファイルを仕込むことについては、比較的大きなプロジェクトでやらかしてるのを見かけたので、あまり気にしなくてよいのかも知らんです。 Release版のアセンブラリスト出力停止は、ちょっと悩んでいます。「プログラム全体の最適化」を有効にした場合、リンク時にコード生成を行ってプログラム全体が最適化されるようになります。テストプログラムとsakura.exeのソースをリンクするためにLIB.exeでスタティックライブラリを生成しているのですが、/LTCGをオンにした場合に
久しぶりに自宅 vs2017 を 日本語版で起動してみました・・・オッケーです。 |
アセンブラ出力は残したいですね |
nuget って最新の visual studio でも含まれてないですか? |
nuget でバイナリが取得されるのですか? |
vs2017の一部としてインストールされてるはずなので、取得といっても実際には展開されるだけっぽいです。 取得されるのはヘッダーとスタティックライブラリとmsbuildのビルド設定です。 |
nuget CLI(command Line Interface)は最新でも入らないです。 vs2017 IDEがnuget機能を内包してるからだと思います。CLIなくてもIDEからの復元はできます。CLIないとバッチからのビルドができないんでCLIもいるんですけど。 |
https://docs.microsoft.com/ja-jp/nuget/consume-packages/package-restore |
Msbuildに復元を指示すると「nugetパッケージを含むプロジェクトが見つからない」というエラーになります。 理屈的にはその方向で解決できる可能性もゼロじゃないと思ってます。ざっと調べた感じではIDEを立ち上げるかnuget CLIを使うかの二択っぽかったです。 |
う~む。これが原因っぽい。 https://docs.microsoft.com/ja-jp/nuget/reference/msbuild-targets#restore-target
|
できた!(nuget.exeを使わずにパッケージ復元) https://docs.microsoft.com/ja-jp/nuget/consume-packages/package-references-in-project-files とりあえず、nuget入れなくても MsBuild単体 でいけそうです。 もう一個の問題(/FAsu外さないとダメかも?)はまだ検証中・・・。 |
|
新たに問題が発覚しました。
どうやって回避したものか思案中・・・。 |
どっちやねんってツッコむに一票。 |
1.8.0 だとこれは大丈夫ですか? |
VC++ でうまく動かない件については「制限事項」に入ってるので、 回避策は nuget 開発プロジェクトで検討してるっぽいです。 NuGet/Home#6763 いちおう、package取込方式の新旧ハイブリッドでイケてそうなんで、appveyorのビルド確認が取れ次第PR作成の予定です。 |
ぼくが余計な警告出力を嫌うのは、たぶんご存じの通りです(笑 なので、「必要な対処」の一部として 今回は SDLチェックも準拠モードも有効にしないので、警告を無効にしなくてもデフォルトではエラーにまではならないと思います。 |
#796 を作成しました。 |
新たな情報を見付けたので貼っておきます。 https://cmake.org/cmake/help/v3.12/command/target_link_libraries.html
NuGetパッケージ経由でライブラリを取り込む場合、NuGetパッケージの持つスーパー特殊な階層構造の扱いをどうすべきか苦慮することになります。.targets を指定できるなら階層構造を意識する必要がなくなって移植がはかどりそうです。 |
あ、ダメだ。visual studio generator 使う気ないんだった...orz |
表題のとおり、sakura.slnにtests1.vsxprojを追加したいです。
visual studio 2017(15.8以降) は googletest を使ったテストを 標準で サポートしています。
Test Adapter for Google Test
を使うためには、単体テストプロジェクトに googletest への依存関係を埋め込む必要があります。Visual Studioには NuGet(にゅーげっと) というパッケージ管理機構がありまして、googletestへの参照を NuGet パッケージを通して解決できるようになっています。nuget依存を記したtests1.vcxproj
をsakura.sln
に追加すれば、googletestのビルド済みバイナリがリンクされるようになります。追記
The text was updated successfully, but these errors were encountered: