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

環境変数 SKIP_CREATE_GITHASH が 1 にセットしている場合、githash.h の生成をスキップする #319

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
- [Visual Studio Community 2017](#visual-studio-community-2017)
- [Visual Studio Install options required](#visual-studio-install-options-required)
- [How to build](#how-to-build)
- [githash.h の更新のスキップ](#githashh-の更新のスキップ)
- [CI Build (AppVeyor)](#ci-build-appveyor)
- [ビルドの仕組み](#ビルドの仕組み)
- [ビルド成果物を利用する上での注意事項](#ビルド成果物を利用する上での注意事項)
Expand Down Expand Up @@ -42,6 +43,29 @@ More information: https://github.com/sakura-editor/sakura/issues/6
## How to build
Visual Studio Community 2017 で `sakura.sln` を開いてビルド。

### githash.h の更新のスキップ

sakura editor ではビルド時に git の commit hash 等の情報を githash.h というファイルに出力します。
ビルド時に commit hash 等を生成することでビルド済みのバイナリがどの commit hash を元にビルドされたか
簡単に判断できて便利なのですが、

バイナリが変化しないリファクタリングをしたときでも、commit hash 等の変更が原因でバイナリ一致しなくなります。
これだと検証が面倒になるので、ローカルビルドで githash.h が変化しない手段を提供します。

コマンドラインで環境変数 ```SKIP_CREATE_GITHASH``` を 1 に設定することにより commit hash の
更新処理をスキップすることができます。githash.h が存在しない場合には、この環境変数が設定されていても
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
```

## CI Build (AppVeyor)

### ビルドの仕組み
Expand Down
15 changes: 15 additions & 0 deletions sakura/githash.bat
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,21 @@ if "%APPVEYOR_BUILD_URL_VALID%" == "1" (
set GITHASH_H=%OUT_DIR%\githash.h
set GITHASH_H_TMP=%GITHASH_H%.tmp

@rem set SKIP_CREATE_GITHASH=1 to disable creation of githash.h
@rem check if skip creation of %GITHASH_H%
set VALID_CREATE_GITHASH=1
if "%SKIP_CREATE_GITHASH%" == "1" (
set VALID_CREATE_GITHASH=0
)
if not exist "%GITHASH_H%" (
set VALID_CREATE_GITHASH=1
)

if "%VALID_CREATE_GITHASH%" == "0" (
@echo skip creation of %GITHASH_H%
exit /b 0
)

call :output_githash > %GITHASH_H_TMP%

fc %GITHASH_H% %GITHASH_H_TMP% 1>nul 2>&1
Expand Down