Go to file
Stephan Beyer 00574ef8b4 Make sanitizer options more fine-grained
The SANITIZE_ADDRESS option of our CMake configuration activates the
AddressSanitizer (and UBSan in a non-working way) for the whole project
(although, by the way, its documentation pretends that it is only enabled
for tests).

This commit introduces new options SANITIZE_LEAK, SANITIZE_MEMORY,
SANITIZE_UNDEFINED, SANITIZE_THREAD.  Each of these options (including
SANITIZE_ADDRESS) enables only the corresponding sanitizer.

Moreover, we mark all sanitizer options as advanced options, because these
options are only interesting for developers.

Note that some sanitizers are conflicting, that is, not all options can
be enabled simultaneously.  Also, not all sanitizers are available for
all compilers and versions.  We, however, do not check for this, instead
we let the compiler throw its errors in such cases.

The explicit usage of the Google Linker is removed, because it is not
necessary and can lead to problems with clang.

The commit can be considered a rewrite of cmake/modules/SanitizerFlags.cmake.

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
2020-05-19 10:57:02 +02:00
.github Finish adding tags to the the exemptLabels list for the stale bot. 2019-09-19 14:47:40 +02:00
.tx [tx-robot] updated from transifex 2020-05-19 03:24:08 +00:00
admin Do not build for Xenial anymore. 2020-05-08 19:47:43 +02:00
binary@09f12de312 Update submodules for Qt 5.12.5 (qtmacgoodies) 2019-10-19 05:04:41 +02:00
cmake Make sanitizer options more fine-grained 2020-05-19 10:57:02 +02:00
doc Fix git merge hiccup 2020-03-02 08:05:37 +01:00
man Change man page names and contents for nextcloud 2018-11-16 16:57:15 +01:00
shell_integration Fix leak in FileUtil::IsChildFile 2020-05-12 14:32:34 +02:00
src Don't silently kill debug messages 2020-05-12 17:33:13 +02:00
test Updater: Fix Tests build (failed with BUILD_UPDATER=NO) 2020-03-10 22:10:45 +01:00
theme further resource cleanup: remove theme/settings@2x.png 2020-03-01 06:51:00 +01:00
translations [tx-robot] updated from transifex 2020-05-19 03:24:08 +00:00
.clang-format Add .clang-format style 2017-05-17 12:26:27 +02:00
.drone.yml Drone: Remove CI builds for Qt 5.7 and 5.8 2020-05-07 01:17:36 +02:00
.git-blame-ignore-revs Reformatting: Add .git-blame-ignore-revs 2017-05-17 12:31:49 +02:00
.gitattributes git: fix entry in .gitattributes to not export binary dir. 2014-09-22 11:24:24 +02:00
.gitignore Updated .gitignore to integrate unwanted files when working with VSC or VS2019 2019-09-03 10:59:21 +02:00
.gitmodules Remove submodule qtmacgoodies and the MacSettingsDialog class 2019-12-09 21:37:21 +01:00
.tag Export repo revision indicator 2012-10-12 14:44:21 +02:00
CMakeLists.txt Make sanitizer options more fine-grained 2020-05-19 10:57:02 +02:00
CONTRIBUTING.md Changes to be committed: 2019-01-29 16:59:44 +01:00
COPYING Correct COPYING file from FSF website, rpmlint found an old address 2011-11-22 22:45:14 +01:00
COPYING.documentation Add doc cmake targets (HTML, PDF, QtHelp, CHM, man) 2012-11-25 00:38:47 +01:00
CPackOptions.cmake.in OWNCLOUD.cmake => NEXTCLOUD.cmake 2017-11-20 14:12:52 +01:00
ChangeLog Update ChangeLog with 2.6 series. 2020-05-04 17:45:13 +02:00
NEXTCLOUD.cmake Updater: Add CMake option BUILD_UPDATER to make the updater optional 2020-03-09 02:34:55 +01:00
NextcloudCPack.cmake Mac Application Icon 2018-09-05 11:57:26 +02:00
README.md Simplify compile instructions. 2019-04-21 17:13:20 +02:00
VERSION.cmake Bump version year to 2020 2020-01-18 17:11:44 +01:00
appveyor.ini Enable appveyor builds 2018-01-17 16:21:09 +01:00
appveyor.yml Enable tests in appveyor builds 2018-01-17 16:25:03 +01:00
config.h.in Created wrapper variable LINUX_APPLICATION_ID to clean up code 2019-09-30 09:45:41 +02:00
mirall.desktop.in Use the correct icon name variable in mirall.desktop.in 2018-09-10 14:54:24 +02:00
resources.qrc Merge branch 'master' into qml-singleton-style and fix merge conflict 2020-03-01 06:47:46 +01:00
sync-exclude.lst issue1216: added sync-exclude entry for emacs recovery files 2019-05-22 08:52:37 +02:00
theme.qrc add missing resource include for add.svg 2020-01-18 21:03:32 +01:00
version.h.in Updater: Rudimentary support for beta channel 2017-10-05 22:01:38 +02:00

README.md

Nextcloud Desktop Client

The 💻 Nextcloud Desktop Client is a tool to synchronize files from Nextcloud Server with your computer.

Desktop Client on Mac OS]

💙 🎉 Contributing

🛠️ How to compile the desktop client

🏗️ System requirements includes OpenSSL 1.1.x, QtKeychain, Qt 5.x.x and zlib.

📝 Step by step instructions

Clone the repo and create build directory
$ git clone https://github.com/nextcloud/desktop.git
$ cd desktop
$ mkdir build
$ cd build
Compile and install

⚠️ For development reasons it is better to install the client on user space instead on the global system. Mixing up libs/dll's of different version can lead to undefined behavior and crashes:

  • You could use the cmake flag CMAKE_INSTALL_PREFIX as ~/.local/ in a Linux system. If you want to install system wide you could use /usr/local or /opt/nextcloud/.

  • On Windows 10 $USERPROFILE refers to C:\Users\<USERNAME>.

Linux & Mac OS
$ cmake .. -DCMAKE_INSTALL_PREFIX=~/nextcloud-desktop-client -DCMAKE_BUILD_TYPE=Debug -DNO_SHIBBOLETH=1
$ make install
Windows
$ cmake -G "Visual Studio 15 2017 Win64" .. -DCMAKE_INSTALL_PREFIX=$USERPROFILE\nextcloud-desktop-client -DCMAKE_BUILD_TYPE=Debug -DNO_SHIBBOLETH=1
$ cmake --build . --config Debug --target install

More detailed instructions can be found at the Desktop Client Wiki.

📥 Where to find binaries to download

🔆 Daily builds

🚀 Releases

💣 Reporting issues

  • If you find any bugs or have any suggestion for improvement, please file an issue at https://github.com/nextcloud/client/issues. Do not contact the authors directly by mail, as this increases the chance of your report being lost. 💥

😃 🏆 Pull requests

📡 Contact us

If you want to contact us, e.g. before starting a more complex feature, for questions you can join us at #nextcloud-client.

✌️ Code of conduct

The Nextcloud community has core values that are shared between all members during conferences, hackweeks and on all interactions in online platforms including Github and Forums. If you contribute, participate or interact with this community, please respect our shared values. 😌

📝 Source code

The Nextcloud Desktop Client is developed in Git. Since Git makes it easy to fork and improve the source code and to adapt it to your need, many copies can be found on the Internet, in particular on GitHub. However, the authoritative repository maintained by the developers is located at https://github.com/nextcloud/desktop.

📜 License

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.