Problems building on OS X
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- 説明が足りない
- 活発さ
- 停滞
- 技術スタック
- cmake, cpp, macos
- 領域
- build-system, desktop
調査の方向性
Alarmcontroller.cpp と、issue に記載されている SDL の検出変更から始め、続いて未変更のビルドと OS X での Main Thread 例外を再現します。SDL イベントループ、tick_thread、lv_tick_inc の呼び出しを追跡して、イベントが失敗する理由を特定します。シミュレーターが OS X 上で、報告されたクラッシュなしに、イベントが機能した状態でビルドおよび実行できれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Have anyone managed to get InfiniSim running on OS X? I've made a small attempt, but haven't had much success. I did get it to show the start screen, but no events are working (maybe due to that I had to rewrite some code).
Summary of making it compile:
Change to using https://github.com/trenki2/SDL2Test/blob/master/cmake/FindSDL2.cmake to find SDL. (Installed with the downloadable dmg-file with development libraries from SDL homepage https://www.libsdl.org/download-2.0.php)
Then I had to change some code in the Alarmcontroller.cpp:
auto now = std::chrono::system_clock::now();
alarmTime = now;
time_t ttAlarmTime = std::chrono::system_clock::to_time_t(now);
Then I had to remove the call:
// SDL_CreateThread(tick_thread, "tick", NULL);
And modify the while loop to force the UI to be visible:
SDL_Event e;
bool quit = false;
while(!quit) {
SDL_PollEvent(&e);
if (e.type == SDL_QUIT){
quit = true;
}
// SDL_Delay(LV_DISP_DEF_REFR_PERIOD);
// lv_tick_inc(LV_DISP_DEF_REFR_PERIOD); // Crashed when called here or in tick_thread.
fw.handle_keys(); // key event polling
fw.handle_touch_and_button();
fw.refresh();
usleep(LV_DISP_DEF_REFR_PERIOD * 1000);
}
If I run it with unmodified code it crashes with: Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'nextEventMatchingMask should only be called from the Main Thread!'
Maybe this can be of help if someone else tries to make it work on a Mac?
- 主要言語
- C++
- スター
- 203
- フォーク
- 99
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
InfiniTimeOrg/InfiniSim のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
InfiniTimeOrg/InfiniSim#202 · コメント 1 件 ·
-
bug
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
InfiniTimeOrg/InfiniSim#189 · コメント 3 件 ·
-
enhancement
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
InfiniTimeOrg/InfiniSim#162 · コメント 1 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
InfiniTimeOrg/InfiniSim#160 · コメント 3 件 · リアクション 1 件 ·
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
InfiniTimeOrg/InfiniSim#128 · コメント 1 件 ·
InfiniTimeOrg/InfiniSim の issue をすべて見る
似ている issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信
-
(S1 - Need confirmation)
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
CleverRaven/Cataclysm-DDA#89182 ·
メンテナーはふだん 1 日以内に返信
-
ai_p2
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
ClickHouse/ClickHouse#126833 ·
メンテナーはふだん 1 日以内に返信
-
clang:static analyzer
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
llvm/llvm-project#233598 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100