Skip to content

Conversation

@feliwir
Copy link

@feliwir feliwir commented Mar 17, 2023

  • Compile C/C++ sourcecode with CMake
  • Get git versioning setup
  • Build parts database as a custom target
  • Switch CI to CMake
  • Use CPack to bundle installers
  • Remove all qmake artifacts

@KjellMorgenstern
Copy link
Member

Sorry, we don't plan to switch to cmake right now. If you want to get your hands dirty on Fritzing sources, there are quite number of issues already triaged as bugs, though :-)

@feliwir
Copy link
Author

feliwir commented Mar 17, 2023

Sorry, we don't plan to switch to cmake right now. If you want to get your hands dirty on Fritzing sources, there are quite number of issues already triaged as bugs, though :-)

Yes, i somehow suspected that :)
However i plan some largers changes in my fork (e.g. modularization, Qt6 and more). I thought I'd do a draft PR in case you need wanted to use some of that work.

I'm used to CMake, so i don't want to stick with qmake for my personal well-being :)

@Kreijstal
Copy link

@feliwir your fork is a bit behind are you still working on cmake?

@sonarqubecloud
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
E Maintainability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@hasselmm
Copy link

Sorry, we don't plan to switch to cmake right now. If you want to get your hands dirty on Fritzing sources, there are quite number of issues already triaged as bugs, though :-)

Sure this is a wise decision? Fritzing lacks developers. A good way to find developers is being easily approachable for new developers. CMake is the defacto standard for building C++, and it is the official standard for building Qt6 applications. QMake on the other hand is an arcane, broken and most importantly deprecated build tool. The Qt company only keeps it alive to avoid breaking existing code bases of its commercial customers. Maybe it's time to reconsider this decision?

There surely are people out there, who are able and willing to port this project to CMake.

@Kreijstal
Copy link

if the will is there we can revive the pr @feliwir @hasselmm , yes, or at least a friendly fork that is more packageable

@KjellMorgenstern
Copy link
Member

Ok, f-word dropped 🚨 , I guess I need to add my reasoning.

"lack of developers" doesn't describe the problem. If you mean Qt/C++ developers that put in years of effort without pay, yes, who wouldn't like to have more of them ;-) When we speak about paid developers, well, the bottleneck here is the funding which I am raising.
If you have genuine interest and confidence in working on an existing enhancement or bug issues, note the plural, let's say #3742, but only know cmake ..; cmake --build . ; cmake --install , and struggle to set up QtCreator, please get in touch (PM). But, really, first try to set up QtCreator as described in the Wiki.

QMake is stable, and it won't get dropped even for Qt7. So we are talking about 5-10 years in the future. Assume it gets dropped with Qt7, still several years. QMake isn't bad, it is just that CMake now can do many things that QMake does. For new projects, of course, use CMake. But don't underestimate the effort it takes to migrate.

I don't know what else will happen until QMake is dropped. Maybe LLMs will directly generate binary code until then.

There are lots of things on the Fritzing wishlist that come before CMake: Like adding arbitrary font support, improve the simulator, improve SMT support, simply add parts, or improve the standard for future simplified Fritzing part creation.

So I prefer spending resources on these features. The build system just works fine and doesn't cause any issues. Especially, if the reason is for someone creating their own packaging. A fork would cut into Fritzing's funding (please first check the topic about Fritzing funding and development in the forum and other issues). Would that be friendly?

The next steps planned regarding the build system are migrating to Qt6.7 (or later if that goes smoothly) and support for universal binaries on macOS, which needs, or at least works better, with 6.7. These aren't what I consider the fun parts of the development, but they are important.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants