QEverCloud  6.1.0
Unofficial Evernote Cloud API for Qt
QEverCloud

.1.0_README

Unofficial Evernote Cloud API for Qt

Travis CI (Linux, OS X): Build Status

AppVeyor CI (Windows): Build status

What's this

This library presents the complete Evernote SDK for Qt. All the functionality that is described on Evernote site is implemented and ready to use. In particular OAuth authentication is implemented.

Read doxygen generated documentation for detailed info.

The documentation can also be generated in the form of a .qch file which you can register with your copy of Qt Creator to have context-sensitive help. See below for more details.

How to contribute

See contribution guide for detailed info.

Downloads

Prebuilt versions of the library can be downloaded from the following locations:

How to build

QEverCloud uses CMake build system which can be used as simply as follows (on Unix platforms):

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=<...> ../
make
make install

The library can be built and shipped either as a static library or a shared library. Dll export/import symbols necessary for Windows platform are supported.

QEverCloud requires the compiler to support certain elements of C++17 standard. CMake automatically checks whether the compiler is capable enough of building QEverCloud so if the pre-build configuration step was successful, the build step should be successful as well. Known capable compilers are g++ 5.4 or later and Visual Studio 2017 or later.

QEverCloud depends on the following Qt components:

  • Qt5Core
  • Qt5Widgets
  • Qt5Network

If the library is built with OAuth support, more dependencies are required:

  • Qt5WebKit and Qt5WebKitWidgets for Qt < 5.6
  • Qt5WebEngineCore and Qt5WebEngineWidgets - for Qt >= 5.6

By default CMake prefers QtWebEngine over QtWebKit if both are available for Qt >= 5.6 but it is possible to choose Qt5WebKit over Qt5WebEngine using CMake option USE_QT5_WEBKIT.

It is possible to build the library without OAuth support and thus eliminate the dependency on QtWebKit or QtWebEngine using CMake option BUILD_WITH_OAUTH_SUPPORT=NO.

If Qt5's Qt5Test module is found during the pre-build configuration step, the unit tests are enabled and can be run with make test and more verbose make check commands.

The minimal Qt version required to build the library is Qt 5.5.

Other available CMake configurations options:

BUILD_DOCUMENTATION - when ON, attempts to find Doxygen and in case of success adds doc target so the documentation can be built using make doc command after the pre-build configuration step. By default this option is on.

BUILD_QCH_DOCUMENTATION - when ON, passes instructions on to Doxygen to build the documentation in qch format. This option only has any meaning if BUILD_DOCUMENTATION option is on. By default this option is off.

BUILD_SHARED - when ON, CMake configures the build for the shared library. By default this option is on.

BUILD_WITH_Q_NAMESPACE - when ON, Q_NAMESPACE and Q_ENUM_NS macros are used to add introspection capabilities to enumerations within qevercloud namespace. Qt >= 5.8 is required to enable this option. By default this option is enabled.

If BUILD_SHARED is ON, make install installs CMake module necessary for applications using CMake's find_package command to find the installation of QEverCloud.

It is possible to build the library with enabled sanitizers using additional CMake options:

  • -DSANITIZE_ADDRESS=ON to enable address sanitizer
  • -DSANITIZE_MEMORY=ON to enable memory sanitizer
  • -DSANITIZE_THREAD=ON to enable thread sanitizer
  • -DSANITIZE_UNDEFINED=ON to enable undefined behaviour sanitizer

Include files for applications using the library

Two "cumulative" headers - QEverCloud.h or QEverCloudOAuth.h - include everything needed for the general and OAuth functionality correspondingly. More "fine-grained" headers can also be used if needed.

Related projects

  • QEverCloudGenerator repository hosts code generating parser of Evernote Thrift IDL files. This parser is used to autogenerate a portion of QEverCloud's headers and sources.
  • libquentier is a library for creating feature rich full sync Evernote clients built on top of QEverCloud
  • Quentier is an open source desktop note taking app capable of working as Evernote client built on top of libquentier and QEverCloud