-
Notifications
You must be signed in to change notification settings - Fork 163
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ソリューションにテストプロジェクトを組み込みたい Take2 #999
vs2017ソリューションにテストプロジェクトを組み込みたい Take2 #999
Conversation
しまった。 #989 |
✅ Build sakura 1.0.2155 completed (commit 55f5d325bd by @berryzplus) |
✅ Build sakura 1.0.2156 completed (commit 5f9a66000a by @berryzplus) |
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.
sakura.sln
をVS2017で開いて tests1
プロジェクトをビルドしたらエラーが出ました。
1>------ Build started: Project: tests1, Configuration: Release x64 ------
1>find-tools.bat
1>|- CMD_GIT=C:\Program Files\Git\cmd\git.exe
1>|- CMD_7Z=C:\Program Files\7-Zip\7z.exe
1>|- CMD_HHC=C:\Program Files (x86)\HTML Help Workshop\hhc.exe
1>|- CMD_ISCC=C:\Program Files (x86)\Inno Setup 5\ISCC.exe
1>|- CMD_CPPCHECK=C:\Program Files\Cppcheck\cppcheck.exe
1>|- CMD_DOXYGEN=
1>|- CMD_VSWHERE=C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe
1>|- CMD_MSBUILD=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\amd64\MSBuild.exe
1>|- CMD_CMAKE=C:\Program Files\CMake\bin\cmake.exe
1>end
1>**********************************************************************
1>** Visual Studio 2017 Developer Command Prompt v15.9.15
1>** Copyright (c) 2017 Microsoft Corporation
1>**********************************************************************
1>[vcvarsall.bat] Environment initialized for: 'x86_x64'
1>EXEC : CMake error : CMake was unable to find a build program corresponding to "Ninja". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
1>-- Configuring incomplete, errors occurred!
1>See also "C:/projects/sakura/tests/build/x64/Release/googletest/CMakeFiles/CMakeOutput.log".
1>C:\projects\sakura\tests\googletest.targets(41,5): error MSB3073: The command "C:\projects\sakura\tests\googletest.build.cmd C:\projects\sakura\tests\googletest\ Release "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary/Build/vcvarsall.bat" x86_amd64" exited with code 1.
1>Done building project "tests1.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 3 up-to-date, 0 skipped ==========
Ninja を入れていない環境ではビルドに失敗してしまうようなので、 まぁでも説明が無いとやっていけないようでは結局のところ良く分からないだろう精神で、どんどんと謎の迷宮が掘られていくのが宿命かも? |
こいつはデフォルト選択のオプションで、外さない限り勝手にインストールされる・・・はず。 azure pipelinesでは Ninja サポートについて一言も言及がなく、デフォルトではパスにも入っていませんが、vcvarsallでパスを通せば Ninja が使えます。これが標準だ、といえる根拠になるかどうかは分かりませんけども 😄 |
情報ありがとうございます。この下のやつですか? デフォルトでチェックが入っていたか覚えていませんが、容量減らしたいので色々チェックは外したかも。。 チェックを付けてビルドした今度は下記のようなエラーが出ました。
まずはリビルドしてみよう…。 |
リビルドしても通りませんでした。
x64 の Release だとビルドが通らないみたいですね。でも Azure Pipelines では通ってるなぁ…。 |
何故だっ!・・・(マジ理由が分からんです。 |
症状としてはLIBの環境変数が正しく設定されなかった場合に似ていると思います。 windows 10 SDKのバージョンとかは関係ないと思ってますけど、それかなぁ・・・。 |
あ、一度visual studioを閉じて、git cleanupしてからビルドしてみてもらっていいですか? |
VS閉じてから git cleanup してから sakura.sln 開き直して tests1 プロジェクトをビルドしたら下記のエラーが出ました。
まぁ googletest 使う限りこういうのとは逃れられないですね…。 |
x64 Release だと以前と同じエラーが出ますね。おま環ってやつでしょうか…。 |
そういえば代替の提案がありましたねw エラーメッセージを見る限り、Visual Studio ジェネレーターを使えば発生しない問題のようなので、これで対応しとこうと思います。
みたいな感じで 😄 |
対応しました。
visual studio から叩くと、デフォルトのジェネレーターがVisual Studioになるようなので、Ninjaがある場合に指定する、それ以外は指定しない、の実装にしてみました。 デフォルトでビルド通らなかったら(´・ω・`)です。 |
|
その出力は cmake がコンパイラをチェックするために仮のCPPをビルドしてるだけなので関係ないっす。 |
え、そうなんですか?メッセージ見ると |
pull してから git cleanup して sakura.sln を開き直して tests1 プロジェクトをビルドしてみましたが状況は変わりませんでした。 |
ninjaがパスにいるとninja使ってしまうので、ninjaをアンインストールしないと・・・ めんどくさすぎですな...orz |
ninjaいてもビルド通るように対策したい気持ちもありますが、vcvarsall呼んでもダメだとすると原因が分からないです。 |
ん?x64ビルドしてるって言ってませんでしたっけ?
先頭行にx86と出ている... |
作成ミス発見しましたので対応しまっすm(..)m |
✅ Build sakura 1.0.2158 completed (commit 76b96e832a by @berryzplus) |
x64 Release で通らなかったので他の Configuration でもビルドが通るか確認しています。 |
x64ビルド時にx86のcl.exeが選択される現象を確認しました。 |
VS2017のSolution Explorerで見れるかと思ったら一覧に挙がっていませんでした。
コマンドを実行していますね。 うーんピタゴラスイッチ。 |
doctest というのに切り替えませんか? |
原因コレだったっぽいです。 |
それはそれとして、一旦googletestでやりたいっす。 |
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.
ローカルで Win32/x64, Debug/Release の4パターンでビルドが通る事を確認したので問題無いと思います。
tests1 プロジェクトをビルドするだけだとテストは実行されないので少し不便だなと感じました(小並感
今回の修正の構成
何がいけなかったのか?
。。。_| ̄|○ |
✅ Build sakura 1.0.2159 completed (commit aa3b06e9ab by @berryzplus) |
レビューありがとうございます。
visual studio メインメニューから |
お、情報ありがとうございます。メニューバーをカスタマイズしていましたが Reset All したら出てきました。メニューから無事動かす事が出来ました。用済みなのでメニューを再度消して忘れる事にします。 |
別のPCで実行すると下記のエラーが出ました。
VS2017 でビルドしたにも関わらず VS2019 の MSBuild を使ってしまっているようです。 |
これの対応で不十分な環境があるってことですね。
すんません、対策PR作りますm(>。。<)m |
…_project_for_MSVC vs2017ソリューションにテストプロジェクトを組み込みたい Take2
PR の目的
vs2017ソリューションにテストプロジェクトを組み込むことにより、
テストコードを従来より簡単に実行できるようにします。
経緯
あえて省略 😃
目的や実現方法の妥当性判断にあたり必要な情報ではないと考えるので、今回は割愛します。
(情報量が多すぎて、何が目的でどう実現するのか、の把握の邪魔になると思うので)
カテゴリ
PR のメリット
PR のデメリット (トレードオフとかあれば)
変更は、ソリューションにテストプロジェクトを組み込むことを最優先に作成しています。
従来のテストバッチとの互換性について「エラーにならないように」以上の配慮を行っていません。
テストバッチのフロー整理、重複タスクの排除などの改善は、別途行う必要があると思います。
PR の影響範囲
関連チケット
close #793 vs2017ソリューションにテストを組み込みたい
#796 [WIP] vs2017ソリューションにテストを組み込みたい ← このPRで置換します。
#943 DISABLED テストのサンプルを追加する ← 入れてね、と依頼されている。対応済み。
#944 fixture テストのサンプルを追加する ← 入れたい、と要望があった。取り下げられたので対応してません。
#956 【検証】忍者 vs Visual Studio 15 2017 ← Ninja採用に至った経緯です。