CopperSpice Overview  1.5.1
What is CopperSpice?

CopperSpice is a C++ library derived from the Qt framework. CopperSpice consists of several unique libraries including CsCore, CsGui, CsMultimedia, CsNetwork, CsSql, and many others.

The Meta Object Compiler (moc) is a code generator and does not support many aspects of modern C++ including templates, complex data types, static type checking, and relied heavily on string comparisons. Our ability to remove moc improved the run time performance, reduced the complexity of the build process, and allowed us to greatly improve the Signal/Slot delivery system.

With CopperSpice, all of the functionality moc provided has been designed directly into the core library using modern C++. The CopperSpice core library was refactored and obsolete code removed since the "bootstrap library" used to build moc and QMake are no longer required.

The following is a brief list of improvements CopperSpice provides

  • CopperSpice is a derivative of Qt 4.8.2
  • The Meta Object Compiler (moc) is obsolete and not part of CopperSpice
  • Reflection and meta data functionality is implemented natively
  • CopperSpice is written in modern C++
  • The libraries can be linked directly into any modern C++ application
  • A templated class can inherit from QObject
  • Complex data types can be used in the Property system and with Signals and Slots
  • CopperSpice includes several Qt 5 classes
  • Signal / Slot delivery system improved to provide cross thread delivery
  • Container classes refactored to leverage the appropriate Standard Library container
  • The CopperSpice libraries can be built using GNU Autotools or CMake
  • Your application can be built with any build system

Migrating to CopperSpice

PepperMill is a translation utility and is run one time on your Qt header files to migrate to CopperSpice. This utility will convert your application header files to standard C++ and change the syntax to work with CopperSpice.

We have made the process of converting to CopperSpice simple and straight forward. Simply convert your application header files one time using the PepperMill utility and then modify your Autotools or CMake build files.

For sample build files you can refer to the KitchenSink demo application or the build files used in the DoxyPress project.