CopperSpice Overview
|
CopperSpice is a set of individual libraries which can be used to develop cross platform software applications in C++. It is a totally open source project released under the LGPL V2.1 license and was initially derived from the Qt framework. Over the last several years CopperSpice has completely diverged, with a goal of providing a first class GUI library to unite the C++ community.
Our motivation for developing CopperSpice was to change the fundamental design and turn the existing framework into a set of libraries for C++ developers. We are accomplishing this by leveraging modern C++ functionality, new technology, and modern tooling. CopperSpice currently requires C++17 or newer.
You can use CopperSpice with any existing tool chain such as GCC, clang, or MSVC. A C++ program using the CopperSpice libraries can be developed using any editor such as VI, emacs, or Diamond and built using CMake from a shell command line. For an integrated environment Visual Studio or QtCreator can be used for development, building, testing, and deployment.
CopperSpice consists of the following libraries which can be linked into any existing C++ application.
There are also open source BSD licensed libraries which are used by CopperSpice and available as stand alone libraries for anyone developing a C++ application. Documentation for these libraries can be found on our website.
To use the CopperSpice libraries a C++17 compiler and a C++17 standard library are required. CopperSpice CMake build files are provided with the source distribution. We recommend your projects should use CMake for simplicity.
For additional information about building from source, refer to our CopperSpice Overview Documentation or our KitchenSink demo application for sample CMake project files.
The CopperSpice libraries are built using the CMake build system.
Reflection / Meta Object Compiler
CS_SLOT_1(Public, void actionAbout(QMap<QString, int>) CS_SLOT_2(actionAbout)
Extensive use of modern C++ functionality
Reimplemented all container classes
Key enhancements
Integration of CsSignal
Integration of CsString
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 alter the source to use CopperSpice syntax. This mostly affects signals, slots, properties, enums, and flags.
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 build files to use CMake.
For sample build files you can refer to the KitchenSink demo application or the build files used in the DoxyPress project.
For more information refer to PepperMill and Migration Notes.
Full class documentation is available on the CopperSpice website or our downloaded page.
On line: CopperSpice API Documentation
Download: CopperSpice API Documentation
Our channel contains videos about C++ programming, rendering 3D Graphics, the CopperSpice libraries, and documenting with DoxyPress. Please subscribe to our YouTube channel so you will be notified when new videos are uploaded.
https://www.youtube.com/copperspice
Links to technical presentations recorded at CppNow and CppCon. There are also several slide decks from talks given at multiple C++ user groups in the United States, Amsterdam, Munich, and London.
www.copperspice.com/presentations.html
The CopperSpice libraries are released under the LGPL V2.1 license. The open source libraries CsPaint, CsSignal, CsString, and CsLibGuarded are released under the BSD license. For more information refer to the LICENSE files provided with each project.