This adds a description as well as the homepage to the CMake settings.
Further it would also now use the numbering cheme as supposed to in
CMake, this way other people could now pin a specific version if
taskwarrior is included in another project.
Documentation from CMake is https://cmake.org/cmake/help/latest/command/project.html
* update build instructions
Usage of "modern" CMake syntax and using specific out of source build.
Further add example on how to build in parallel, build a specific target
and how to change the compiler.
This closes#3236.
* Disable return-type-c-linkage warning on Clang.
This is emitted by the compiler when it can't tell if the incomplete
type being returned is a C++ type, which might not have a C-compatible
layout. In `taskchampion.h`, the types are not C++ types so this is not
an issue and the warning is unnecessary.
* Use an if instead
Fancy generator expressions appear to not work.
* Try some different CMake syntax
This removes use of gnutls and the TLS implementation, which is no
longer needed (task synchronization is handled via Taskchampion, which
uses `reqwest`, which handles TLS via other Rust dependencies). This
incidentally removes the following config options:
* `debug.tls`
* `taskd.ca`
* `taskd.certificate`
* `taskd.ciphers`
* `taskd.credentials`
* `taskd.key`
* `taskd.server`
* `taskd.trust`
This uses CMake to build a simple Rust library (in `src/tc/rust`) that
just re-exports everything from the `taskchampion-lib` crate.
The C++ wrappers then wrap this into C++ objects with proper lifecycle
maintenance, in the `tc` namespace.
The C++ wrappers are incomplete, and missing methods are tagged with
"TODO". These will be added as needed.
This allows us to conveniently review PRs for libshared using
make LIBPR=62 review
and taskwarrior PRs that require libshared PRs as well using
make PR=2189 LIBPR=63 review
Some Darwin users (for example, users on pre-OS X 10.7 systems) use
FSF GCC releases instead of Clang; hardcoding the -stdlib=libc++ flag
causes the build to fail for them. Instead, pass this whenever Clang
is used.
- Make cmake complain and abort the build process if libgnutls is not
available. In order to build Taskwarrior without "sync" support,
or to build it on a system with libgnutls missing, the new cmake
flag "-DENABLE_SYNC=OFF" can be used.