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>
New Functionality
- 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 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
- In the process of 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:
To use the CopperSpice libraries you will need a C++14 compiler and a C++14 standard library.
Uses CMake or Autotools for building binary files. Your project can be built with either CMake or Autotools. Refer to our CopperSpice Overview documentation, DoxyPress application, or our KitchenSink demo for sample build files.
Full class documentation for CopperSpice is available on the CopperSpice website:
www.copperspice.com/docs/cs_api/index.html
The CopperSpice Overview documentation includes information on how to build CopperSpice, how to set up a CopperSpice project, and how to migrate from Qt to CopperSpice.
www.copperspice.com/docs/cs_overview/index.html
YouTube channel videos about CopperSpice, DoxyPress, C++, and the other topics related to our work.
https://www.youtube.com/channel/UC-lNlWEq0kpMcThO-I81ZdQ
Links to technical presentations recorded at CppNow and CppCon:
www.copperspice.com/presentations.html
- Ansel Sermersheim
- Barbara Geller
- Robin Mills
- Ivailo Monev
- Adam Mensel
- Daniel Pfeifer
- Zbigniew Skowron
This library is released under the LGPL V2.1 license. For more information refer to the LICENSE files provided with this project.
- Website: www.copperspice.com
- Email: [email protected]