Skip to content

Conversation

@kobake
Copy link
Member

@kobake kobake commented Jun 30, 2018

#148

@yoshinrt

git コマンドが利用できない条件でビルドすると .rc でエラーになるようです.

これの修正です。

ビルド結果例

ver

@kobake kobake changed the title Git情報がなくてもビルドできるようにする Git情報がなくてもビルドできるようにする (Close #148) Jun 30, 2018
@m-tmatma m-tmatma added this to the next release milestone Jun 30, 2018
@m-tmatma m-tmatma added the 🐛bug🦋 ■バグ修正(Something isn't working) label Jun 30, 2018
@m-tmatma
Copy link
Member

Win32/x64 Release, Debug でビルドを確認しました。
起動確認は x64 Release のみです。

---- Make githash.h ----
NOTE: No .git directory
SHORT_COMMITID:
COMMITID:
GIT_URL:
APPVEYOR_URL          :
APPVEYOR_REPO_NAME    :
APPVEYOR_ACCOUNT_NAME :
APPVEYOR_PROJECT_SLUG :
APPVEYOR_BUILD_VERSION:
APPVEYOR_BUILD_NUMBER :

no-git

m-tmatma
m-tmatma previously approved these changes Jun 30, 2018
@m-tmatma
Copy link
Member

appveyor 終わったらマージしてください。

@m-tmatma
Copy link
Member

おっと appveyor がコケている。

@kobake
Copy link
Member Author

kobake commented Jun 30, 2018

..\sakura_core\sakura_rc.rc(2821): error RC2104: undefined keyword or key name: RESOURCE_VERSION_STRING 

うーん、ちょっと謎ですね。調べます。

それとは別件の問題として、VER_GITHASH 定数名が CDlgAbout.cpp のものと被ってたのでそこも対応します。

@kobake
Copy link
Member Author

kobake commented Jun 30, 2018

推測ですが、
.rc のエンコーディングが SJIS なので、
#include "version.h" をしたときに

version.h の以下のコメント部の日本語文字列の影響でその次の行まで含めてコメント行と認識された可能性があります。

// e.g. "2.3.2.0 UNICODE 64bit"                  … Git 情報無い場合の例
#define RESOURCE_VERSION_STRING(_VersionString) _VersionString VER_GIT_SHORTHASH " " VER_CHARSET " " VER_PLATFORM SPACE_WHEN_DEBUG VER_CONFIG ALPHA_VERSION_STR_WITH_SPACE

現在できる一番簡単な対策としてはコメント行の後ろに ANSI 文字挿入する等があります。次コミットでその対応積みます。

@kobake
Copy link
Member Author

kobake commented Jun 30, 2018

コミット追加により approve 状態消えたので、お手数ですが再レビューお願いします。
AppVeyor ビルドは見た感じちゃんと進むようになったみたいです。

@m-tmatma
Copy link
Member

先程のコミットに対して、なぜ必要なのかの説明を
コメントとして、書いた方がいいと思います。

そうすれば、次回同じエラーが発生するのを防げるし、
発生してもすぐにわかります。

@kobake
Copy link
Member Author

kobake commented Jun 30, 2018

だいたい現象としては以下のような感じでした。

以下のファイルがあるとして。

  • a.h … こちらのエンコーディングはUTF-8。
  • b.rc … こちらはSJIS。a.h をインクルードしている。

a.h 内で以下のような記述があると、

// これはコメント例
#define HOGEHOGE "aaa"

例\r\n もしくは 例\n が文字コードの組み合わせにより正しく改行があるとみなされず、以下のようなヘッダ記述であるように誤認識される。

// これはコメント例 #define HOGEHOGE "aaa"

結果、定数 HOGEHOGE は b.rc から認識できない。

対策としては、コメント行の末尾には極力 ANSI 文字を埋め込むようにする。
今回は // を埋め込んだ。

@m-tmatma
Copy link
Member

↑ ソースコードにです。

@kobake
Copy link
Member Author

kobake commented Jun 30, 2018

うーん、これピンポイントでソースコードにコメント書いても大事な注記としては気づかれにくい気が。
書くとしたら Wiki かなと思ってますがどうですか。

@m-tmatma
Copy link
Member

そうですね。ここ以外の箇所で発生したら意味ないですね。

@m-tmatma m-tmatma merged commit 404aac6 into sakura-editor:master Jun 30, 2018
@kobake kobake deleted the fix-non-git-build branch June 30, 2018 05:03
@kobake
Copy link
Member Author

kobake commented Jun 30, 2018

以下WikiページにTipsを書き残しました。
https://github.com/sakura-editor/sakura/wiki/50.CodingTips

@ds14050 ds14050 added the 🐛bug🦋 ■バグ修正(Something isn't working) label Sep 18, 2018
HoppingTappy pushed a commit to HoppingTappy/sakura that referenced this pull request Jun 11, 2019
Git情報がなくてもビルドできるようにする (Close sakura-editor#148)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🐛bug🦋 ■バグ修正(Something isn't working)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants