* Introduced ToxExt and CoreExt abstraction
* Along with interfaces for mocking and unit testing
* Add "supportedExtensions" concept to Friend
* Dispatch messages to CoreExt instead of Core when friend supports
extended messages
* Only split messages for core when extended messages are unavailable
* Offline message engine/History not altered. Currently only valid for
an existing session after extension negotiation has completed
This commit adds a new define called "GIT_DESCRIBE_EXACT" through cmake.
It is checked with a regex in "updatecheck.cpp" for a version number after the
check for new updates. If there is no version number,
a warning is output to log.
The reason for the new define is to avoid doing too much regex on
"GET_DESCRIBE", since "GIT_DESCRIBE_EXACT" will not contain a version number if
the code is not tagged.
Switch from `pkg_search_module` to `pkg_check_modules` to find .pc and
evaluate .pc files of dependencies. Now, in case of any errors, a clear
message is issued about what is wrong, making it obvious what to do.
As of c-toxcore-0.2.11, my system's toxcore.pc file contains this line:
```
Requires.private: libsodium opus vpx
```
Previously, with opus missing, cmake/Dependencies.cmake through an error
about toxcore not being found, but never actually told why (also it was
misleading, because opus was missing, not toxcore).
Before:
```
<...>
-- Checking for one of the modules 'toxcore'
-- TOXCORE not found
-- Checking for one of the modules 'toxav'
-- TOXAV not found
<...>
```
After:
```
<...>
-- Checking for module 'toxcore'
-- Package 'opus', required by 'toxcore', not found
-- TOXCORE not found
-- Checking for module 'toxav'
-- No package 'toxav' found
-- TOXAV not found
<...>
```
avoid Qt embedding timestamps into translations after copying .ts to .qm to work towards reproducible builds. Now reproducible locally as long as there is absolutely no change to environment.
PkgConfig use 'separate_arguments' for pkgconfig result, so output
converted to the list (in cmake it's semicolumnt separated values).
If we try to append CFLAGS_OTHER as is, it will provide error for
more then one cflag in '.pc' file
Fix#4175, fix#4457.
One part fixes#4280 (removing this flag giving qTox on Windows able to start properly), another part fixes my mistake in #4258 (strmiids still needed for
linking, but previous searching of this libstrmiids.a wasn't include, for example, '/mingw32/i686-w64-mingw32/lib'. So I just add this lib to $ALL_LIBRARIES,
because it exists in system by default).
Fixes bulding with cmake on Windows. strmiids is exists as a
libstrmiids.a static library, but cmake can't find it. Because of
useless of this search and successful building without it, I'm removed it.