-
Notifications
You must be signed in to change notification settings - Fork 39
Require C++20 for the Windows plugin and Logcat crash fix #190
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
Conversation
Introduces the zipDirectoryPosix method to ensure archive entries use POSIX-style paths. Updates archive creation to use this method for better cross-platform compatibility.
Changed calls to encoder.addFile and encoder.close to be awaited, ensuring proper handling of asynchronous file operations during package creation.
CI workflow now pins the flet dependency to version 0.28.3 for all platforms. Updated .gitignore for macOS build artifacts, enabled GPU validation in Xcode scheme, and added secure restorable state support in AppDelegate. Dependency versions were updated in pubspec.lock and Podfile.lock, including upgrades to serious_python packages and other transitive dependencies.
Added target_compile_features to require C++20 for the plugin. This ensures the code is compiled with C++20 features and compatibility.
Replaces backslashes with forward slashes in the WINDIR environment variable and updates DLL paths to use the normalized variable. This ensures consistent path formatting for bundled system libraries.
Configured ctypes argument and return types for liblog.__android_log_write to ensure correct interaction with the native Android logging library.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request updates the serious-python project to require C++20 for the Windows plugin and introduces several improvements for cross-platform compatibility and development tooling.
Changes:
- Added C++20 requirement for Windows plugin CMakeLists.txt
- Improved Windows path handling by normalizing backslashes to forward slashes and using proper System32 capitalization
- Replaced zipDirectory with new zipDirectoryPosix method to ensure POSIX-compliant paths in archives for cross-platform compatibility
- Pinned flet dependency to version 0.28.3 across all CI workflows for reproducible builds
- Updated macOS project configuration with secure state restoration support and GPU validation
- Added Swift and Xcode build directories to .gitignore
Reviewed changes
Copilot reviewed 7 out of 10 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/serious_python_windows/windows/CMakeLists.txt | Added C++20 requirement and improved Windows path handling with variable normalization |
| src/serious_python/example/flet_example/pubspec.lock | Updated dependency versions (transitive dependencies from flet 0.28.3) |
| src/serious_python/example/flet_example/macos/Runner/AppDelegate.swift | Added applicationSupportsSecureRestorableState for security best practices |
| src/serious_python/example/flet_example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme | Enabled GPU validation mode for development |
| src/serious_python/example/flet_example/macos/Podfile.lock | Updated pod dependencies and checksums (device_info_plus, file_picker, screen_retriever_macos) |
| src/serious_python/example/flet_example/app/app.zip.hash | Build artifact updated from new zip method |
| src/serious_python/example/flet_example/.gitignore | Added .build/ and .swiftpm/ directories |
| src/serious_python/bin/package_command.dart | Implemented zipDirectoryPosix method for cross-platform path compatibility |
| .github/workflows/ci.yml | Pinned flet to 0.28.3 for reproducible builds across all test platforms |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| # application-level CMakeLists.txt. This can be removed for plugins that want | ||
| # full control over build settings. | ||
| apply_standard_settings(${PLUGIN_NAME}) | ||
| target_compile_features(${PLUGIN_NAME} PRIVATE cxx_std_20) |
Copilot
AI
Jan 31, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The C++20 requirement appears to be added to support the #include header (line 23 of serious_python_windows_plugin.cpp), which is a C++20 feature. However, std::format doesn't appear to be used anywhere in the code. If the header is not needed, consider removing it to avoid unnecessarily raising the minimum C++ standard requirement. This would improve compatibility with older development environments and reduce potential build issues for users.
| target_compile_features(${PLUGIN_NAME} PRIVATE cxx_std_20) | |
| target_compile_features(${PLUGIN_NAME} PRIVATE cxx_std_17) |
Release 0.9.9 for all serious_python packages. Adds zipDirectoryPosix for POSIX-compliant app archives on Windows, enforces C++20 standard for plugin build, normalizes WINDIR path for bundled DLLs in CMake, and fixes Logcat logging crash on some Android devices. Updates pubspecs and build files to reflect the new version.
No description provided.