CopperSpice

CopperSpice consists of a set of libraries used to develop cross-platform software applications. It is an open source project released under the LGPL V2.1 license.

  • Meta-Object Compiler (moc)
    • The Meta-Object Compiler is no longer required for generating meta data
    • Since moc is no longer required it was removed
    • The functionality provided by moc was replaced with compile time templates
    • CopperSpice automatically generates meta data for processing Signals/ Slots and Introspection
    • A template class can now inherit from QObject with no restrictions on types
    • Complex data types can be used without restrictions, for example the following is valid in CopperSpice: QMap<QString, int>

  • Major Enhancements
    • CopperSpice includes several of the Qt 5 classes
    • CopperSpice makes extensive use of modern C++ features like variadic templates, constexpr, SFINAE, lambdas, atomics, tuple, etc
    • Reimplement container classes (QVector, QList, QLinkedList, QMap, QHash, etc) in CsCore leveraging the C++ standard library containers, iterators, and algorithms
    • Integration of CsSignal
      • Improved thread aware Signal/Slot delivery
      • Increased efficiency while maintaining the full Signal/Slot API
    • Integration of CsString
      • Improved storage of Unicode strings
      • Adding QString8 (UTF-8) and QString16 (UTF-16)

  • Building
    • The CopperSpice libraries can be built using CMake or GNU Autotools
    • Any application using CopperSpice can be built with CMake, GNU Autotools, or any other build system
    • CopperSpice can be linked directly into any standard C++ application

CopperSpice is a C++ library derived from the Qt framework. Our motivation for developing CopperSpice was to change the core design of the libraries leveraging modern C++ functionality.

CopperSpice consists of the following libraries:

CsCore, CsGui, CsMultimedia, CsNetwork, CsOpenGL, CsPhonon, CsScript, CsSql, CsSvg, CsWebKit, CsXml, and CsXmlPatterns

BSD Libraries

For more information refer to our presentations from CppNow and CppCon. Presentations

Converting to CopperSpice

The process of converting to CopperSpice is simple and quick. Simply convert your Qt application header files one time using our PepperMill utility. The Makefiles from our sample KitchenSink and Diamond Editor applications can be used as a guide to create your project files.

Getting Started

The CS Overview documentation includes how to build CopperSpice, set up a CS project, and how to migrate from Qt to CopperSpice.  CS Overview Documentation

Contacting the Developers

  • For a list of issues and feature requests click the following link  Tracking System
  • Join a discussion on our forum  Forum
  • Read or ask questions on our GitHub repository  Code
  • Email the development team: info [at] copperspice.com