2013年5月30日木曜日

Chromiumをビルドする(Visual C++ 2010 Express編)

2015/01/28 追記: ビルド方法が大幅に変わったので、新たに記事を書きました。


2014/05/27 追記

この方法はもう古くなってしまいました...。
Chromium 35以上では、toolchain + ninjaによるビルドがデフォルトとなりました。 この影響で、Visual Studio 2013より前のバージョンのソリューションファイルの生成ができなくなっています。
以下、参考のためそのまま残しておきます。


ChromiumをVisual C++ 2010 Expressでビルドする方法を、メモ程度に書きます。
※VC++を使うので、ビルド対象はWindows版です。念のため。

公式、かつ最新のビルド方法はhttp://www.chromium.org/developers/how-tos/build-instructions-windows へどうぞ(ただし、英語です)。 この記事とほとんど同じことが書かれています。

ビルド動作環境

Chromiumは巨大なプロジェクトであり、高性能なPCが求められます。 ビルドに必須な環境は、下記のとおりです。

  • CPU: マルチコアCPU推奨(シングルコアでは遅すぎる)。リンク時はシングルスレッド動作のため、周波数も高いほうがよい。
  • OS: Windows 7以上、かつx64であること(x86ではリンクに失敗する可能性あり)
  • メモリ: 4GB以上(並行ビルド数によっては、8GBでも使い切ります)
  • ディスク: NTFSフォーマットで60GB以上。SSDならより高速。

この必須環境さえあれば、簡単に環境構築ができるtoolchainなるものが登場しましたが、 この記事では、toolchainを使わずVisual C++ Express 2010とSDKを手動でインストールします。

この記事での前提事項

この記事では、以下のとおりにビルドするものとします。

  • Windows 7 x64 (エディションは何でもよい・・・と思う)
  • W:\Chromiumを基準とする
  • Visual C++ 2010 Express、各種SDKのインストール先はすべてデフォルトとする。
    (ヘルプやサンプルはインストールしなくてもよい)

環境構築

必要なソフトウェアを以下の順でインストールします。
順番は必ず守ってください。(特に1~4) インストール場所やオプションは、変えないことを前提とします。

  1. Visual C++ 2010 Express
  2. Microsoft Windows SDK for Windows 7 and .NET Framework 4
    "Windows Native Code Development" の "Visual C++ Compilers"にチェックが入っていることを必ず確認。
  3. Microsoft Visual Studio 2010 Service Pack 1
  4. Windows SDK 7.1 用 Microsoft Visual C++ 2010 Service Pack 1 コンパイラ更新プログラム
    ※SP1の適用でなくなってしまうx64コンパイラツールを復活させます。
  5. SDK for Windows 8
  6. DirectX SDK (June 2010)
    Error Code: S1023と出てインストールが失敗する場合は、"Microsoft Visual C++ 2010 Redistributable" (x86、x64両方)を削除してからやり直してください。
  7. Windows Driver Kit Version 7.1.0
    ISO形式なので、マウントするかCD-Rなどに焼いてからインストールしてください。
    インストールオプションは下図のチェックボックスを参考に。

続いて、SDKのパッチ当てと設定を行います。

  • Visual C++ 2010 Express
    デフォルトで使用するSDKを変更します。
    1. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.default.propsを管理者権限で開き、"v100"から"Windows7.1SDK"に変更します。
      変更後は、下図のようになります。
    2. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\x64\Microsoft.Cpp.x64.default.propsを管理者権限で開き、"v100"から"Windows7.1SDK"に変更します。
      変更後は、下図のようになります。
  • SDK for Windows 8
    C:\Program Files (x86)\Windows Kits\8.0\Include\winrt\asyncinfo.hを管理者権限で開き、66行目の"class"を削除します。
  • Windows Driver Kit
    環境変数を定義します。SystemPropertiesAdvanced.exeを実行して、システムのプロパティの詳細設定タブから、「環境変数」ボタンを押します。システム環境変数の「新規」ボタンを押して、変数名にWDK_DIR、変数値にC:\WinDDK\7600.16385.1を入力してOKを押します。
  • バージョン定義
    システム環境変数に、Visual Studioのバージョン定義を追加します。 変数名はGYP_MSVS_VERSION、変数値は2010eとします。

さらに、depot_toolsを入手・設定を行います。

  1. Install depot_toolsから、 depot_tools.zipをダウンロード
    なお、この記事では、cygwinはインストールしないこととします。
  2. depot_tools.zipをW:\Chromium以下に解凍
    Windows標準機能で解凍する場合、ファイルを右クリック→「すべて展開...」メニューで解凍してください。 隠しファイルが解凍されない可能性があるため、ファイルを開いてD&Dによる解凍はしないでください。
  3. 解凍したパスを環境変数PATHに追加
    PATHの末尾に";W:\Chromium\depot_tools"を追加します。

以上が環境構築です。
最後に、環境変数を確実に反映させるために、再起動してください。

ソースコードの入手

ここからは、コマンドプロンプト(cmd.exe)から操作します。

  1. cd /d W:\chromium
  2. gclient
    Git、Python、Subversionなど、ソースコードの取得に必要なツールをインストールするため、 gclientコマンドをオプションなしで一度実行する必要があります。
  3. gclient config [リポジトリのアドレス]
    [リポジトリのアドレス]は、Get the Code を参考にします。
    例1:https://src.chromium.org/chrome/trunk/src
    例2:https://src.chromium.org/chrome/releases/27.0.1453.94
  4. gclient sync

ビルド

W:\Chromium\src\buildに、all.slnがあるので、それを開きます。
開いてから、chromeプロジェクトを右クリックし、「ビルド」をクリックします。

あとは、ビルドが完了するまでひたすら待ちます。


以上が、ChromiumをVisual C++ 2010 Expressでビルドする上での最低限の手順です。
実は、少しだけビルドを早くする方法やビルドオプションがあるのですが、それはまた別記事で。