Skip to content
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

Development and Build Support for Native Windows #101

Open
kintel opened this issue Feb 10, 2025 · 0 comments
Open

Development and Build Support for Native Windows #101

kintel opened this issue Feb 10, 2025 · 0 comments

Comments

@kintel
Copy link
Member

kintel commented Feb 10, 2025

Outline

OpenSCAD is multi-platform desktop application, with official support for Windows, macOS and Linux, and unoffical support for various other Unix-like OSes like FreeBSD.

While OpenSCAD does support Windows, Windows development and build setup is a bit suboptimal:

Goal of this project is to improve Windows support for native Windows development.

Details

  • Adjust OpenSCAD source code as needed to build OpenSCAD using MSVC
  • Adjust the CMake build system as needed to support MSVC
  • Find a way of managing building (and packaging if needed) 3rd party dependencies. OpenSCAD depends on a number of 3rd party packages (e.g. Qt, QScintilla2, CGAL, Manifold, GMP, MPFR, boost, OpenCSG, GLEW, Eigen, glib2, fontconfig, freetype2, harfbuzz, libzip, Bison, Flex, double-conversion). Not all of these have great Windows build support.
  • Integrate library building/packaging into our Continuous Integration framework (e.g. GitHub Actions or CircleCI).
  • Build OpenSCAD on MSVC + run tests natively for every PR, as we do for other build environments. This to make sure contributions don't fall out of maintenance.
  • Establish support for debugging OpenSCAD in the MSVC debugger, and documentation on how to set that up, if necessary
  • Write/update documentation on how to establish a native WIndows development environment
  • Consider switching the official OpenSCAD Windows build to use MSVC.

Prior work: openscad/openscad#4976

Expected Outcome

A native MSVC build environment for OpenSCAD is reasonable easy to set up, and such an environment is continuously integrated.

Project Properties

Skills

  • Good understanding of the Windows OS and native components (DLLs, executables) on a low enough level to be able to debug odd behaviors.
  • Experience using MSVC and native Windows development for C++ projects
  • Good understanding of how 3rd party libraries are built and distributed.
  • Experience with or interest in acquiring skills using CMake and writing custom CMake configs and macros
  • Experience with GitHub CI or CircleCI is a bonus

Difficulty

medium

Size

long (350h)

Additional Information

  • Potential mentor(s): Marius Kintel (IRC: kintel), Torsten Paul (IRC: teepee)
    • Note: None of the mentors have relevant Windows skills, but have excellent understanding on how all the relevant technologies work and how they are integrated with OpenSCAD. It's important that the candidate is able to acquire any necessary Windows-specific skills independently.
  • Organization website: https://www.openscad.org/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants