copperspice_cpp

joined 2 years ago
[–] [email protected] 1 points 1 year ago

@ono, Can you could let us know which existing libraries you are using. We know a few have already been migrated to CopperSpice and we are happy to review the process for adding other libraries.

[–] [email protected] 2 points 1 year ago (2 children)

@ono, In terms of using an existing library, if it is a C++ library this works great. If the library was written using Qt it will need to be migrated to CopperSpice. This has already been done for a few libraries.

Our CS team has experience with library migration and we are available to help with this process.

[–] [email protected] 2 points 1 year ago (4 children)

@ono, Thanks for your question. One of our main goals was to maintain compatibility with Qt user code. We have worked with a significant number of projects who migrated to CS and no one lost functionality. Most code will work without any modifications.

We have a parser (PepperMill) which you run one time to convert anything in your header files which used moc. For example, we change Q_OBJECT to CS_OBJECT(class_name).

Here is a link to the macros which are modified.

https://www.copperspice.com/docs/cs_overview/m_macros_metaobj.html

[–] [email protected] 1 points 1 year ago (6 children)

@ami @herzenschein @ono @kde, CopperSpice started as derivative work build includes everything up to Qt 5.6. Our team has redesigned major sections of the code base to provide real utf-8 strings, standardized containers, reduce UB, improved pointers, etc.

[–] [email protected] 1 points 1 year ago

@herzenschein @ono, Removing moc did not require losing the reflection or introspection. In fact we were able to add more compile checks. Moving to CMake was a breeze since we had no code generator dependencies.

[–] [email protected] 1 points 1 year ago

@ono @leopold, Verdigris was based on our work with CopperSpice. Qt refused to accept this code and the key developer moved on. If you look at the project it has not been touched in years and may not be supported anymore.