ソースコードを取得し、ビルドするまでの手順 (Git使用)


以下、yyagiが使っていない方法をご紹介します。(yyagiは、Microsoft VisualStudio Community 2017 だけでなく、Git(ギット)クライアントとして SourceTree を使っています。)

なお、以下の説明に出てくるキャプチャ画像において、ライセンス認証前のWindows 10環境を使っています。 一連の動作確認を素のOS環境で実施し動作確認するためだけのために、有償でOS環境を準備するのはもったいないので。 悪しからずご承知おきくださいませ。


VisualStudio2017のダウンロードとインストール

Microsoft VisualStudio Community 2017 をダウンロードし、インストールします。

インストールにあたっては、以下の設定を行ってください。

VisualStudio 2017の初回起動

注意: VisualStudio2017の利用にあたっては、Microsoftアカウントが必要です。もしMicrosoftアカウントをお持ちでない場合は、 VisualStudio2017の初回起動時にMicrosoftアカウントの作成を案内されますので、指示に従ってアカウントを作成してください。

これで、VisualStudio2017が起動するようになります。

ソースコードの取得

VisualStudio2017の中にあるGitクライアントの機能を用いて、DTXManiaのソースコード一式をダウンロードします。

ここまで操作すると、ソースコードのダウンロードが始まります。ソースコードは5~600MB程度あるので、ダウンロードが完了するまでしばらくお待ちください。

DTXManiaソリューションを開く

ソースコードのダウンロードが完了したら、次にDTXManiaのソースコード(ソリューション)を開きます。

ここまでで、DTXManiaのソースコードを開くことができました。(DTXMania本体だけでなく、DTXCreatorやMidiInChecker2などのソースコードも含まれています)

ただし、現在開いているソースコードは「master」ブランチといって、「DTXMania本体の正式リリース版」のソースコードになっています。 そのため、「開発中の最新版」のソースコードに切り替えます。

ソースコードをビルドするための準備1 (デバッグで使うフォルダへの、スキンファイル等のコピー)

ここまでの操作で、最新版のソースコードを取得することができました。次に、ソースコードをビルド(コンパイル)するための準備を行います。

ソースコードをビルドするための準備2 (32/64ビット版のビルド切替等)

ソースコードのビルドと、デバッグ実行

ここまでで、ソースコードをビルドする準備がすべて整いました。 それでは早速、実際にDTXManiaのソースコードをビルドしてみましょう。

ビルドが成功したら、いよいよデバッグ実行です!

ビルドが成功して、自分がビルドしたDTXManiaを起動することに成功したならば、 あとは自由にソースコードを改造してみましょう!!

2回目以降のVisualStudio2017の起動について

2回目以降も、DTXMania.sln ファイルを開くことで、DTXManiaのソースコードをVisualStudio2017で開くことができます。 そこにたどり着くための方法ですが・・・

(以下昔の記載のコピペ。現在の環境向けの説明とはずいぶん異なる内容なので、無視してください)

ソースを一括ダウンロードするために&自分のローカルフォルダの管理下に置くために、 osdnのDTXManiaのリポジトリからチェックアウトして下さい。リポジトリのURLはこちら: https://svn.sourceforge.jp/svnroot/dtxmania/
httpsであることに注意。httpにすると、read onlyになりますが、開発メンバーでなくてもソースコードの取得ができます。(開発メンバーでないと、httpsを指定することと、後述するコミットができません。)
なお、チェックアウトでダウンロードされてくるソースファイル群は、数百MBあるので注意。


ソースコードのビルド方法

trunk/DTXManiaプロジェクト/DTXManiaソリューション.sln を、 VisualStdudio2013で開けば、DTXMania本体のソースコードを編集・ビルドすることができます。 (Release101以下は、VisualStudio2008(または、VisualC# 2008 Express)で開けます。新しいバージョンのVisualStudioを使って開くと、変換のダイアログが出て、色々とエラーが出ます)

同じように、trunk/DTXCreatorソリューション/DTXCreatorソリューション.sln を、VisualStudio2008(または、VisualC# 2008 Express)で開くと、DTXCreatorのソースコードを編集・ビルドできます。

Release098以降、dllをexeとは別フォルダに格納するように変更した関係で、FDK.dllに署名が必要となります。 署名のためには、事前にキーペアの生成が必要となります。以下いずれかの方法でキーペアを生成して、FDK.dllをビルド時に署名するように設定してください。

  • 方法1: すべてのプログラム-Microsoft Visual Studio 2008-Visual Studio Tools\Visual Studio 2008 コマンド プロンプト、として、VisualStudioの環境変数設定済みのDOS窓を開く。次に、sn.exe -k d:\slimdx_yyagi.snk などとして、キーペアを生成する。最後に、VisualStuio上で、FDKプロジェクトのプロパティの署名の「アセンブリの署名」にチェックを入れ、"参照" で先ほど生成したsnkファイルを指定する。現在のソリューションでは、FDK17プロジェクトの下にsnkファイルを置くようにしていますが、置き場所はどこでも結構です。(どうせFDK17プロジェクトのプロパティで設定しなおすでしょうから。)
  • 方法2: VisualStudioでDTXManiaソリューションまたはDTXCreatorソリューションを開き、FDK19のプロパティを開き、「署名」をクリックし、「アセンブリに署名する」をクリックし、「厳密な名前のキー ファイルを選択してください」の下のプルダウンメニューで<新規作成...>を選択し、「キーファイル」に適当なファイル名(なんとか.snk)を入力し、「キーファイルをパスワードで保護する」のチェックを外し、「署名アルゴリズム」にsha256RSAを選択して、OKをクリックする。

そして、最初にビルドする前に、「DTXManiaプロジェクト/bin/x86/Debug/ に、実行時フォルダ/ 以下の内容をすべてコピー」してください。 x86/Debug/ の下に dll フォルダがないとビルドに失敗しますし、dll フォルダの中身がないとビルド後の実行ができません。また、Debug/System/ 以下のファイルがないと、スキンが表示されません。
(DTXCreatorプロジェクト/bin/x86/Debug/ や、 DTXManiaプロジェクト/bin/x86/Release/、実行時フォルダ(DTXCreator)/ などの下も同様です。)

Bass.dll や、Bass.Net.dll 関連でエラーが出る場合は、おそらく「DTXManiaのソースコードが参照しているBass.Netのバージョン」と、「実際に使用しているBass.Netのバージョン」が一致していません。その場合は、まず http://bass.radio42.com/ から、最新のBass.Net をダウンロードし (サイトを開いて、DOWNLOADをクリックする)、次にこのzipの中にある Bass.Net.dll を 実行時フォルダ/dll/ にコピーし、それから FDK19 の参照設定にあるBass.Netを一旦削除して、参照設定を右クリックして「参照の追加」を選び、参照タブをクリックして、画面下の参照ボタンを押して、先ほどコピーした 実行時フォルダ/dll/Bass.Net.dll を参照してください。これで「DTXManiaのソースコードが参照しているBass.Netのバージョン」と、「実際に使用しているBass.Netのバージョン」が一致します。そして更に、実行時フォルダ/dll/ にある、Bass.dll のバージョンを、Bass.Net のバージョンと合わせるようにしてください。具体的には、最新の bass.dll を http://www.un4seen.com/ からダウンロードして (左のWelcomeの下のBASSをクリックしてBASS関連のページを開き、一番上のウインドウの旗アイコンのところをクリックしてダウンロードする)、ダウンロードしたzipの中にある bass.dll を、実行時フォルダ/dll/ に上書きコピーしてください。

SlimDXのビルドをする人はほとんどいないと思いますが、もしどうしても必要であれば、SlimDXのビルド方法(備忘録)を参照ください。

DTXViewerのソースはbranches/111222(DTXViewer023 with #26977) にあります。ですが、ビルドするのは大変です(汗;;

  • ビルドには、VisualStudio2010 (または、VisualC++ 2010 Express) が必要。
  • DirectX8.1 SDKが必要。(DirectX 9.0 SDK Update (October 2004)には、これが含まれていることを確認しました)
  • jpeglibやlibpngなど、個々にビルドを済ませたうえで、最後にDTXViewerをビルド・リンクする必要がある。
  • その他諸々、チケット#26977を参照。

---

Release100系と、Release099系の、ソースコードの所在

  • Release100系は、trunk/ 以下のソースを使います。
  • Release099系は、branch/140113(DTXMania098 with 28821 DTXVmode)/ 以下のソースを使っています。(branchの一つとして保守開発を継続しています。少々トリッキーなやり方ではありますが。)

コミット等、Subversionソフトの基本操作について

「SVNコミット(Commit)」すると、そのフォルダ以下にある自分の修正を、osdn.jpのサーバにアップロードします。 これは、開発メンバーでないとできません。初回のコミット時に、開発メンバーとして登録したユーザー名とパスワードの確認があります。

コミットにはコメントをつけることができます。自分の修正内容について、コメントをつけて下さい。(つけないと他人から修正内容が分からない。)

コミットの結果、他の人の修正と「競合(conflict)」することがありますが、その場合は「競合の編集」をして、問題を確認・解決した後に、「競合の解消」をしてください。 (とはいえ、大抵は競合までには至らず、「コミット前に更新して下さい」程度で解決できると思います。)

なお、最低限、自分でビルドができることを確認してからコミットして下さい。

「SVN更新(Update)」すると、そのフォルダ以下を最新の情報に更新してくれます。
(要は、osdn.jpに登録された、他人が修正したコードを自分のローカルフォルダにダウンロードします。) うっかり自分のローカルのファイルを削除してしまっても、更新すればosdn.jpからダウンロードして復活できます。

自分の修正がぐちゃぐちゃになってしまっても、「変更の取り消し(Revert)」をすると、osdn.jpから修正前のファイルをダウンロードしてきて、自分の修正を無かったことにできます。


trunkとtags, branchesというフォルダがありますが・・・

trunk: いわゆる最新版がここに入ります。軽微な修正や、バグ修正なんかは、ここのフォルダ以下のファイルを直接修正してコミットいただければよいです。

tags: 一般向けにリリースした、区切りの良いタイミングでのソースのsnapshotです。リリース時にtrunkの内容をそのままtagsの下に「名前を変えてコピー」して作ります。(リポジトリブラウザーを使えば簡単にできます)

branches: 新機能の試作など、trunkを使わずに開発を進めたいとき(他の人の邪魔になるような修正が入りそうなとき)に、trunkの内容をbranchesの下に「名前を変えてコピー」して株分けして、そちらで(trunkの方は触らずに)開発を進めるようなときに使います。 なお、最後branchでの開発が終わったら、trunkに「マージ」することで、修正内容を丸々trunkに取り込むことができます。(マージのやり方は適当に調べていただければ出てくると思います。)


ブランチの作り方

まず、ローカルでtrunkのコピーをbranchに作るのは、止めて下さい。リポジトリ(Subversionシステムが持っている履歴データ)に、どのリビジョンの trunkが株分けされたのか?という情報が残らないからです。 (TortoiseSVNをお使いでしたら、右クリックメニューにあるリビジョングラフの機能を使うと、ある程度株分け具合が視覚化されます。ご確認下さい。)

というわけで、ブランチ作成は以下いずれかの方法で行って下さい。

1) trunkフォルダを右クリックして、右クリックメニューからTortoiseSVN-SVNブランチ/タグの作成を実行。 (メニューのコピー元の作業コピー/URLが~~~/trunk であることを確認して、宛先パスを/branches/(自分でブランチ名を指定) とする。ログメッセージにbranch作成の旨を記載しOKをクリック。そうするとリポジトリ内に現時点でのtrunkのコピーとしてのbranchが作成されるので、これを SVN更新 でローカルに取り込めば作業完了。

2) 右クリックメニューにある SVNリポジトリブラウザーで、左のtrunkを左のbranchに右ドラックする。メニューが出るので「ここにコピーして名前を変更」を選び、自分でブランチ名を指定する。またログメッセージの入力を要求されるので、branch作成の旨を記載。そうするとリポジトリ内に現時点でのtrunkのコピーとしてのbranchが作成されるので、これを SVN更新 でローカルに取り込めば作業完了。

いずれの場合も、まずbranchを作ってから改造作業に着手という流れになります。もしbranch作成前にtrunkで改造してしまった場合は、以下のようにすることで 対応できます。

1) 改造したファイル群のバックアップをローカルのどこかに取っておく
(改造したファイルの一覧は、コミットしかけて途中で止めればすぐに分かります)

2) 右クリックメニューの、TortoiseSVN-変更の取り消し などでローカルのtrunkを改造前の状態に戻す

3) 先のbranch作成手順1)2)いずれかを実行する

4) バックアップしておいたファイルを、3)で作ったローカルのbranchに上書きコピーする

5) 必要に応じてbranchをコミットする