InfiniTimeOrg / InfiniTimeOrg/InfiniSim
Problems building on OS X
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 203
- Forks
- 97
- PR merge metrics
- No merged PRs in 30d
Description
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?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with Alarmcontroller.cpp and the SDL discovery change described in the issue, then reproduce the unmodified build and the Main Thread exception on OS X. Trace the SDL event loop, tick_thread, and lv_tick_inc calls to determine why events fail. Done means the simulator builds and runs on OS X with working events without the reported crash.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp, macos
- Domain
- build-system, desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100