Skip to content

HowToBuild

Kurata Sayuri edited this page Jan 15, 2022 · 26 revisions

ffftpのビルド方法

環境

  • Windows 8.1以降
    • .NET Framework 3.5
  • Visual Studio 2022 (except xp)
    • Workloads
      • Desktop development with C++
        • MSVC v143 - VS 2022 C++ x64/x86 build tools (latest)
        • Windows 11 SDK (10.0.22000.0)
    • Individual components
      • Git for Windows
      • MSBuild
    • Language packs
      • English
  • Visual Studio 2019 (xp only)
    • Workloads
      • Desktop development with C++
        • MSVC v142 - VS 2019 C++ x64/x86 build tools (v14.26)
        • Windows 10 SDK (10.0.19041.0)
    • Individual components
      • Git for Windows
      • MSBuild
    • Language packs
      • English
  • Boost.Regex
  • GSL: Guidelines Support Library (except xp)
  • HTML Help Workshop
  • Wix Toolset
    • Wix Toolset Visual Studio 2022 Extension (except xp)
    • Wix Toolset Visual Studio 2019 Extension (xp only)

Windowsについて

インストーラープロジェクトのビルドには.NET Framework 3.5が必要です。標準でインストールされていないので注意してください。ただし、.NET Framework 3.5が未インストールであってもビルドに支障ない場合もあるようです。

Visual Studioについて

C++20 / C++23の機能を使用するため、Visual Studio 2022最新版が必要です。Updateを適用し最新版を使用してください。MSVC v143 - VS 2022 C++ x64/x86 build toolsWindows 11 SDKは順次バージョンが上がるため、記載のものでなく最新のものを選択してください。Updateを適用し最新版を使用してください。大事なことなので二回言いました。

なお、xpブランチのビルドにはVisual Studio 2019の MSVC v142 - VS 2019 C++ x64/x86 build tools (v14.26) および Windows 10 SDK(10.0.19041.0) が必要です。理由はVisual Studio 2019のMSVC v142 - VS 2019 C++ x64/x86 build tools (v14.27)以降ではWindows XPで動作しないバイナリが生成されるためです。同様にWindows 10 SDK(10.0.20348.0)以降でもWindows XPで動作しないバイナリが生成されるためです。

Boost.Regexについて

正規表現エンジンとしてBoost.Regexを使用しています。これは標準ライブラリ<regex>パフォーマンス上の問題があるためです。

git submoduleによりソースツリーは統合されています。git clone --recursiveでクローンすることで、ビルド準備は完了します。

GSL: Guidelines Support Libraryについて

C++ Core Guidelinesに従うための支援ライブラリとしてGSL: Guidelines Support Libraryを使用しています。

git submoduleによりソースツリーは統合されています。git clone --recursiveでクローンすることで、ビルド準備は完了します。

HTML Help Workshopについて

ヘルプ(.chm)のビルドにHTML Help Workshopを使用しています。しかし、現在、MicrosoftではHTML Help Workshopの配布を停止しています。

Wix Toolsetについて

インストーラーのビルドにはWix Tootlsetを使用しています。依存関係の都合から、WiX Toolset build toolsはリポジトリ内のWiXディレクトリに配置してあります。そのため、ビルドには特別な手順は必要ありません。

ビルド方法

ffftpのリポジトリがC:\Path\to\ffftpと仮定します。適宜読み替えてください。Developper PowerShell for VS 2019 上で次のコマンドを実行します。

PS C:> git clone --recursive https://github.com/ffftp/ffftp.git C:/Path/to/ffftp
PS C:> cd C:\Path\to\ffftp
PS C:\Path\to\ffftp> MSBuild ffftp.sln /p:Configuration=Release /p:Platform=Win32
PS C:\Path\to\ffftp> MSBuild ffftp.sln /p:Configuration=Release /p:Platform=x64

コンパイルの後、インストーラーが作成されます。Releaseディレクトリにffftp-x86.msiffftp-x86.zipffftp-x64.msiffftp-x64.zipが生成されます。

開発

Visual Studioでffftp.slnを開いてください。

インストーラープロジェクトを参照するためには拡張機能のWix Toolset Visual Studio 2022 Extensionをインストールする必要があります。

文字列はstd::wstringへ移行完了しました。char*の文字コードはサーバやファイルなど入力次第であり、Windows標準のANSI(日本語ではShift-JIS)やUTF-8などの場合があります。注意して操作してください。