Because a message we queue from the foreground may cause the background to complete, exit, and tear down the AsyncTask, we have to block queue processing until we've finished our call to AsyncTask::send(). Broadening the scope of a mutex is scary, but I audited the code of our four implementations of AsyncTask and I don't see any way this could cause a deadlock.
Mapbox Qt SDK
Developing
This is the foundation for the Mapbox GL plugin available since Qt 5.9. Use the Qt bugtracker for bugs related to the plugin and this GitHub repository for bugs related to Mapbox GL Native.
Linux
For Linux (Ubuntu) desktop, together with these build instructions, you also need:
sudo apt-get install qt5-default
macOS
For macOS desktop, you can install Qt 5 via Homebrew:
brew install qt5
Since Homebrew doesn't add Qt to the path, you'll have to do that manually before running any Make target:
export PATH=/usr/local/opt/qt5/bin:$PATH
We provide the following build targets for our Qt SDK:
Build instructions
Qt library
make qt-lib to build the qmapboxgl shared library. Public API headers
can be found in platform/qt/include folder.
QMapboxGL example application
make qt-app or make run-qt-app to run the application at the end of
build.