Skip to content

Latest commit

 

History

History
319 lines (225 loc) · 12 KB

File metadata and controls

319 lines (225 loc) · 12 KB

ビルド方法

必要なツール

サクラエディタ本体のビルド

C++20をサポートするC++コンパイラーが必要です。

Visual Studio Installerで使用するVisual Studioの「構成のインポート」から、リポジトリ直下の.vsconfigを選択し、不足しているコンポーネントを追加してください。

補助ツールとして以下が必須です。

ツール名 exe名 説明
HTML Help Workshop hhc.exe Visual Studio同梱のもの
CMake cmake.exe Visual Studio同梱のもので可
PowerShell 7 pwsh.exe Windows標準とは別に用意するのでPowerShell 7の準備を参照してください。
Python python.exe バージョンや開発用ファイルの条件はPythonの準備を参照してください。
uv uv.exe ビルド時のCMake設定で必要です。uvの準備を参照してください。
7-Zip 7z.exe 外部依存ファイルの解凍に使用します。
Locale Emulator LEProc.exe 日本語環境以外でHTMLヘルプをビルドする場合に利用します。
Auto HotKey AutoHotKey.exe 日本語環境以外でHTMLヘルプをビルドする場合にソースに腹持ちしたLocale Emulatorを展開する際に利用します。

PowerShell 7の準備

Windows標準のWindows PowerShell(powershell.exe)とは別に、PowerShell 7(pwsh.exe)が必要です。 例えば、次のコマンドで導入できます。

winget install --id Microsoft.PowerShell --exact --source winget

導入後はVisual Studioとターミナルを起動し直し、新しいターミナルで確認してください。

pwsh --version

Pythonの準備

Python 3.14以降が必要です。 ビルド対象に合わせて、x64には64bit版、Win32には32bit版を導入してください。 開発用ヘッダー(Python.hなど)とpython3.dllも必要です。 例えば、x64ビルド用には次のコマンドで導入できます。

winget install --id Python.Python.3.14 --exact --architecture x64

Pythonマクロのテストを実行する場合は、python3.dllがあるPythonのインストールフォルダーをPATHに追加してください。

PATHの変更後はVisual Studioとターミナルを起動し直してください。

uvの準備

uvはテストを実行しない場合でも、ビルド時のCMake設定で必要です。 例えば、次のコマンドで導入できます。

winget install --id astral-sh.uv --exact --source winget

導入後はVisual Studioとターミナルを起動し直し、新しいターミナルで確認してください。

uv --version

インストーラのビルド

インストーラをビルドする場合のみ必要です。

choco install InnoSetup -y

詳細は インストーラビルドの仕組み を参照してください。

ビルド手順

ソースコードの取得とvcpkgの準備

このリポジトリでは、vcpkgや外部ライブラリをGitサブモジュールとして管理しています。 GitHubの「Source code (zip)」などを展開しただけではサブモジュールが揃わないため、Gitにより取得してください。 新しくcloneする場合は、作業用フォルダーで次のコマンドを実行します。

git clone --recurse-submodules https://github.com/sakura-editor/sakura.git

既に通常のgit cloneで取得済みの場合は、sakura.slnがあるフォルダーで次のコマンドを実行してください。

git submodule update --init --recursive

サブモジュールを取得すると、Visual Studioまたはbuild-sln.batによる初回ビルド時にvcpkgが自動で初期化され、必要な外部ライブラリが取得・ビルドされます。 通常はbootstrap-vcpkg.batを手動実行する必要はありません。 うまくいかない場合、sakura.slnがあるフォルダーで以下を試してください。

.\tools\vcpkg\bootstrap-vcpkg.bat

実行ファイルのみ

GUI でビルド

Visual Studio で sakura.sln を開いてビルドします。

コマンドラインでビルド

build-sln.bat <Platform> <Configuration>

例: x64 の Release ビルド

build-sln.bat x64 Release

Visual Studio 2019を指定してビルド

set ARG_VSVERSION=16
build-sln.bat Win32 Release

参考: MSBuildの検索についてARG_VSVERSION の詳細を説明しています。

すべてビルド

実行ファイル、ヘルプファイル、インストーラをすべてビルドします。

build-all.bat <Platform> <Configuration>

例: Win32 の Release ビルド

build-all.bat Win32 Release

開発者向け情報

テスト実行時の注意

  • Pythonマクロのテストには、Pythonの準備に記載したPATHの設定も必要です。

  • Documents配下では、パスの簡易表示によってCSakuraEnvironmentTest.ExpandParameter_mixedが失敗する場合があります。 期待値のフルパスに対し、実際の値が「マイドキュメント」で始まる場合は、Documents配下以外の作業フォルダーで確認してください。

ビルドで使用する環境変数

ビルドで使用する環境変数 を参照してください。

ビルドに使用されるバッチファイル

ビルドに使用されるバッチファイル を参照してください。

デバッグ方法

githash.h の更新をスキップ

ビルド時に git の commit hash を githash.h に出力します。これによりバイナリが commit hash から特定できますが、バイナリが変化しないリファクタリングでもバイナリが異なってしまいます。

検証を容易にするため、環境変数 SKIP_CREATE_GITHASH1 に設定することで commit hash の更新をスキップできます。

注意: githash.h が存在しない場合は、この環境変数に関係なく生成されます。

実行例:

set SKIP_CREATE_GITHASH=1
build-sln.bat Win32 Release
build-sln.bat Win32 Debug
build-sln.bat x64 Release
build-sln.bat x64 Debug

PowerShellによるZIPファイル処理の強制

通常、7z.exe が利用可能な場合は自動的に使用されます(高速)。デバッグ目的で PowerShellスクリプト を強制的に使用する場合:

set FORCE_POWERSHELL_ZIP=1
build-sln.bat Win32 Release

CIビルドのスキップ

ドキュメント修正など、ビルドが不要な変更の場合、コミットメッセージに [ci skip] または [skip ci] を含めることでCIビルドをスキップできます。

注意: PRマージ時は実行されます。

参考:

MinGWビルド (実験的)

警告: 生成されるバイナリは正しく動作しません。

MinGWでのビルド方法

MinGW w64のインストール を完了後、以下の方法でビルドできます。

MINGW64コンソールで以下を実行。

cmake -S . -B build/MinGW -DCMAKE_BUILD_TYPE=Debug -DBUILD_PLATFORM=MinGW
cmake --build build/MinGW
ctest --test-dir build/MinGW --output-on-failure

または、コマンドプロンプトで以下を実行。

build-gnu.bat MinGW Debug
build-gnu.bat MinGW Release

参考情報

Chocolatey関連

Chocolateyのインストール

  1. PowerShell管理者コンソールを開く:

    • Windowsタスクバーの検索窓に powershell と入力
    • Windows PowerShell を右クリックして「管理者として実行」
  2. 以下のコマンドを実行:

    Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
  3. インストール確認:

    choco

詳細: Chocolatey公式サイト

Msys2関連

Msys2のインストール

Chocolatey をインストール後、PowerShell管理者コンソールで実行:

choco install msys2 --params "/InstallDir:C:\msys64"

Msys2コンソールを開く方法

C:\msys64\msys2.exe を実行します。

MinGW w64関連

MinGW w64のインストール

  1. Chocolatey をインストール
  2. Msys2 をインストール
  3. Msys2コンソール を開く
  4. pacmanパッケージを最新化:
    pacman -Syuu
  5. MinGW-w64をインストール:
    pacman -S --noconfirm mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-make mingw-w64-x86_64-7zip