Update .gitignore to not conflict with new build system
Added @pospeselr and myself to AUTHORS.md
Ripped out config.tests
Ripped out qmake based build system
Debian packaging:
We can now generate source packages properly!
Updated old debian/copyright file to comply with new specification
Removed all icons except 48x48 and .svg
48x48 is left as an icon for the menu bar IIRC
Scalable is used for everything else
No other icons are needed
Moved all icons out of the old directories, as they don't particulary
belong there. They exist now in src/ricochet-refresh/resources/*
Said icons are now installed by cmake in the install stage of the build
Removed redundant packaging/ directory
That said, RBM packaging now has to be implemented again :/
It's on the TODO list :)
Migrated everything to use CMake
All the common parts are in the src/cmake directory
This includes things like LTO for a target, compiler flags (i.e. enable
all warnings) etc
This directory also contains toolchain files, for ease of use with
ricochet-build
Sanitizers are available, and require a configure time switch to be set
It integrates very nicely with GUI/TUI interfaces for CMake as well
Available sanitizers include:
Clang/GCC:
Thread sanitizer
UB sanitizer
Leak sanitizer
Address sanitizer
Memory sanitizer is NOT supported for GCC
MSVC
Address sanitizer
TODO: I did check, but documentation was lacking. I'm not completely
sure if ASan is the only sanitizer supported by MSVC, but I'm fairly
sure
Compilers have all reasonable warnings set, except for some that flood the
output due to protobuf's/qt's generated files
(Nearly) all warnings removed
Nearly because there's some variance in the warnings I get from different
compilers. On my system, no warnings are thrown - however, in
ricochet-build, due to a variety of compilers being used for differnet
platforms, there are a considerable amount.
Also there's warnings thrown due to deprecation notices in protobuf, and
my protobuf is out of date. These will be fixed soon ish
safe_cast template implemented as we use a lot of demotion casts for QT, ie
size_t -> int. This template will check for overflow before casting, and
crash if it will.
Fixed a lot of instances of variable shadowing
Implemented catch2 framework for easy test writing.
And also removed the old testing framework
Replaced some interesting logic in tego_ui/utils/Settings.cpp where a normal
iterator was created to the end of a container, and then iterated in
reverse. This has been replaced with a reverse iterator
Added the NSHighResolutionCapable attribute for macOS to support
HiDPI/retina
Converted the scalable svg icon from an encoded png wrapped in an svg, to an
actual svg file. This was previously making the icon useless on linux
systems
Summary of changes: