-
Notifications
You must be signed in to change notification settings - Fork 74
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
Problems building on OS X #25
Comments
I couldn't build on Mac OS Ventura (M2 Apple silicon) neither. I had the error :
Thus, I made a change on std::time_t currentTime = std::chrono::system_clock::to_time_t(
std::chrono::time_point_cast<std::chrono::system_clock::duration>(currentDateTime)
); Then, to be able to run the simulation, I also did the changes to But I pretty sure we can find a better fix. PS: I haven't investigate yet and I don't know what is the given infinitime firmware, but nothing seems to work. I can't quit (without a kill), can't touch anything... |
This comment was marked as duplicate.
This comment was marked as duplicate.
I'm having issues as well. I had to make the same change to DateTimeController.cpp as @adrienluitot. I've had to do the same SDL2 stuff. However, I am running into a different issue. I cannot even get the project to build. I get linker errors:
Running on macOS 12.7.4 intel silicon. I can see issue #144 is closed. OP has same linker issues. However, they fixed by using a VM (aka sidestepping the entire issue). So I think it's worth to keep this issue open. |
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?
The text was updated successfully, but these errors were encountered: