Skip to content
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

単体テスト向けの CMakeLists.txt で Visual Studio のスタートアッププロジェクトの設定 #435

Merged
merged 1 commit into from
Sep 10, 2018

Conversation

beru
Copy link
Contributor

@beru beru commented Sep 9, 2018

#427 (comment)

単体テストのプロジェクトがスタートアップ プロジェクトに設定されるようにしました。

@berryzplus
Copy link
Contributor

1つ以上のスタートアップを設定しないとダメってことなんですかね。

ぼくが試したって言ってるヤツはテストじゃないモジュールがスタートアップになってるんですがちゃんと動いたそうです。

このPRの検証と同時に、ちゃんと動く設定の勘所を押さえときたい感じです。

@m-tmatma
Copy link
Member

1つ以上のスタートアップを設定しないとダメってことなんですかね。

スタートアッププロジェクトは Visaul studio の概念です。

visual studio でデバッグ実行するときにスタートアッププロジェクトに
設定されているプロジェクトをデバッグ開始します。

スタートアッププロジェクト自体は Visaul studio の UI でいつでも変えることができます。
(スタートアッププロジェクトを VS 上で変更するとバイナリファイルの設定ファイルに保存されます)

Visaul studio の仕様でデフォルトのスタートアッププロジェクトというのは、
ソリューションファイルの一番最初に記載されているプロジェクトになります。

cmake はデフォルトでは生成したプロジェクトで実際のプロジェクトではなく
ALL_BUILD というターゲットがデフォルトのスタートアッププロジェクトとなるように
ソリューションが生成されます。

VS_STARTUP_PROJECT というのは、cmake でソリューションを生成するときに
デフォルトのスタートアッププロジェクト(ソリューションの一番最初に記載するプロジェクト)を
変更するためのプロパティになります。

set_propertyDIRECTORY のプロパティに対して VS_STARTUP_PROJECT
スタートアッププロジェクトに設定したいプロジェクトを指定することで設定することができます。

@beru
Copy link
Contributor Author

beru commented Sep 10, 2018

このPRで追加したような方法では指定せずに(つまりPR前)tests\create-project.bat を実行して生成された tests\build\sakura-unittest.sln ファイルを開くと、スタートアップ プロジェクトは ALL_BUILD プロジェクトになっています。

現象を確認してからぐぐってみたら cmake の公式サイトに解説がありました…。
https://cmake.org/cmake/help/latest/prop_dir/VS_STARTUP_PROJECT.html

1つ以上のスタートアップを設定しないとダメってことなんですかね。

Visual Studioのスタートアップ プロジェクトに設定出来るのは1つだけみたいですね。
1つ以上っていうのがニュアンスが良く分からないですが、もしやマルチタスク能力が高くて複数プロセス同時デバッグ等の芸当が出来るとか…。。

ぼくが試したって言ってるヤツはテストじゃないモジュールがスタートアップになってるんですがちゃんと動いたそうです。

それは伝聞でしょうか?こちらで再確認出来れば良いんですが…。

このPRの検証と同時に、ちゃんと動く設定の勘所を押さえときたい感じです。

ビルドシステムはややこしいですよね。

自分がいつも cmake 使う時は generator 指定で VS のファイル生成してからそのファイルを開いてるんですが、最近のVSは cmake に対応してるみたいですね。ただ対応したばっかりなので多分出来ない事が多いだろうなと思ってます。全然使ってないので対応具合を把握してませんが。

@m-tmatma
Copy link
Member

Visual Studioのスタートアップ プロジェクトに設定出来るのは1つだけみたいですね。

使ったことはないですが、複数設定できるようです。
https://msdn.microsoft.com/ja-jp/library/ms165413.aspx

@m-tmatma
Copy link
Member

#378 ではスタートアッププロジェクトは設定してますが、
単体テスト向けの CMakeLists.txt では指定忘れてました。
GUI は使わなかったので。

@beru
Copy link
Contributor Author

beru commented Sep 10, 2018

使ったことはないですが、複数設定できるようです。
https://msdn.microsoft.com/ja-jp/library/ms165413.aspx

おおお、いけるんですか。。知らなかったです。

最近入った機能というわけでもなく昔からあるみたいですね。

https://blog.jhashimoto.net/entry/20111017/1318996125

@beru beru changed the title スタートアッププロジェクトの設定 単体テスト向けの CMakeLists.txt で Visual Studio のスタートアッププロジェクトの設定 Sep 10, 2018
@beru beru added the UnitTest label Sep 10, 2018
@beru
Copy link
Contributor Author

beru commented Sep 10, 2018

#378 ではスタートアッププロジェクトは設定してますが、
単体テスト向けの CMakeLists.txt では指定忘れてました。
GUI は使わなかったので。

bat ファイルが整備されているので有り難いです。コマンドプロンプト使わなくて済みました。

@m-tmatma m-tmatma added this to the next release milestone Sep 10, 2018
@m-tmatma m-tmatma merged commit f8a60f1 into sakura-editor:master Sep 10, 2018
@beru beru deleted the cmake_VS_STARTUP_PROJECT branch September 10, 2018 21:14
HoppingTappy pushed a commit to HoppingTappy/sakura that referenced this pull request Jun 11, 2019
単体テスト向けの CMakeLists.txt で Visual Studio のスタートアッププロジェクトの設定
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants