CL/cl2.hpp, which the OpenCL support is based upon, is not always
included with OpenCL on some platforms, e.g. Mac, or not readily
available as a package. This work adds a CMake module specifically for
finding cl2.hpp, as installed by OpenCL-CLHPP project.
If not found, but standard OpenCL lib and headers are, the vendored
cl2.hpp in external/opencl-clhpp is used, as it needs no compilation.
- Only the cl2.hpp, license and README are vendored from OpenCL-CLHPP.
- Fix up referenced includes in other CMake targets, to ensure the
includes for OpenCL are specifically added (previously, they were
sometimes found in existing include directories of other dependencies).
- Fixup for standard FindOpenCL module not assinging proper framework
headers directory for Mac.
CMake kept picking up the binary from /usr/bin which belongs to Qt4 installation.
Here we require CMake to use the binary from Qt5 installation that is being used.
* 0vars.cmake, FindSIP: Update to save new sip_module_dir variable
sip4 has changed sip_mod_dir to sip_module_dir.
Store the variable for later usage
* Use only new MODULE_DIR sip variable
25ba36180c causes
build failures on Ubuntu 16.04 and 18.04 with gcc
{{{
/usr/bin/c++ -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -I/usr/include/Qca-qt5/QtCrypto -fPIE -std=gnu++11 -o CMakeFiles/cmTC_3b936.dir/qcaossl.cpp.o -c /home/even/qgis/QGIS/build/CMakeFiles/CMakeTmp/qcaossl.cpp
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qchar.h:37:0,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h:41,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/QString:1,
from /usr/include/Qca-qt5/QtCrypto/qca_core.h:36,
from /usr/include/Qca-qt5/QtCrypto/qca.h:36,
from /usr/include/Qca-qt5/QtCrypto/QtCrypto:1,
from /home/even/qgis/QGIS/build/CMakeFiles/CMakeTmp/qcaossl.cpp:2:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:1067:4: error: #error "You must build your code with position independent code if Qt was built with -reduce-relocations. " "Compile your code with -fPIC (-fPIE is not enough)."
# error "You must build your code with position independent code if Qt was built with -reduce-relocations. "\
^
}}}
qtglobal.h doesn't like -fPIC and -fPIE together
See https://github.com/qgis/QGIS/pull/6093#issuecomment-393518711
This pull request is a subset of #6490
This adds a new library for creation of applications based on Qt Quick
framework.
It contains reusable QML / Qt Quick components based on QGIS core
library.
The initial work introduces MapCanvas
To enable compilation of the library, use WITH_QUICK=TRUE
Further documentation of the library is located in doc/qgsquick.dox
For background information see the associated QEP:
qgis/QGIS-Enhancement-Proposals#109
The initial implementation is largely based on the work of Matthias Kuhn
and Marco Bernasocchi on QField probject - kudos to them for the great
job!
Introducting MDAL, QgsMeshLayer, mesh data providers (mesh_memory, mdal)
to read and visualize raw meshes: vertices and faces. Support dragging
2dm files from browser on canvas to visualize 2dm meshes.
Support for QgsMeshLayer in Python API.
On OpenBSD, there's no libgdal.so symlink, only a versioned library (ie
libgdal.so.X.Y where X.Y changes over time so is never constant)
Using cmake's FIND_LIBRARY allows to let cmake find the library.
Without this, the build would fail on OpenBSD:
ninja: error: '/usr/local/lib/libgdal.so', needed by 'output/lib/libqgis_core.so.18.0', missing and no known rule to make it
* detect SIP version to add DefaultDocstringSignature directive
SIP doesn't handle any kind of preprocessing, so there's no better solution than configuring the SIP files from CMake.
SIP 4.19.7+ supports %DefaultDocstringSignature to prepend auto-generated Python signature to existing Docstrings
See description of QgsAuthCertUtils::pkcs8PrivateKey.
This fix may be needed on other platforms (untested at this point),
because Qt5 QSslkey class *still* does not directly support creation
using non-PKCS1 PEM- or DER-encoded data, though QCA, whose qca-ossl
plugin is linked to OpenSSL, does support PKCS1 and PKCS8.
On some OSX macport installation, GNU commands may be used in favor
of native commands and 'make install' fail with
'ln: invalid option -- 'h'"
As BSD ln support the GNU -n option as an equivalent of the -h option
it shoud be preferred over the specific BSD option.